【问题标题】:Teamcity NTLM Authentication change - admin user lost in transitionTeamcity NTLM 身份验证更改 - 管理员用户在转换中丢失
【发布时间】:2011-06-22 13:54:14
【问题描述】:

在现有安装中,我已将 teamcity 从使用基本身份验证切换到使用 NTLM。

这很好用,只是管理员用户没有相应的 NT 帐户,因此不适用于 NTLM 配置。 (很容易回滚,所以不是压力)。

我的问题是 - 手动将用户设置为管理员的命令是什么 - 即修改数据库?

(像这样:TeamCity forgotten admin password - where to look?)但是将用户的角色更改为全局系统管理员。

编辑 - 我们正在使用 HSQLDB。

【问题讨论】:

    标签: teamcity ntlm role manual


    【解决方案1】:

    您可以尝试this from the TeamCity documentation,但它可能不适用于 NTLM。

    您使用什么数据库来安装 TeamCity?如果您使用的是 SQL Server 后端,那么您可以查看 user_roles 表,您需要将 role_id 设置为 SYSTEM_ADMIN,项目 id 为 NULL,并从 users 表中找到 user_id(用户需要登录队城)。该方法与其他存储后端类似,但只需重新启动可能更容易。

    【讨论】:

    • 我们使用 HSLDB - 默认
    • 出色的答案 - 几乎正是我想要的 - 除了它不适用于 NTLM。
    【解决方案2】:

    原来是这个过程:

    1. 登录teamcity服务器
    2. 停止 teamcity Web 服务器并在这台机器上构建服务器服务
    3. 从 teamcity 首选项目录...\TeamcityPrefs\system 运行以下命令 java -cp ...\TeamCity\webapps\ROOT\WEB-INF\lib\hsqldb.jar org.hsqldb.util.DatabaseManager
    4. 设置连接地址为"jdbc:hsqldb:file:buildServer",用户名"SA",密码""
    5. 获取要更新的用户的userid:select * from users u where u.username = 'myuser'
    6. 为该用户插入管理员角色:insert into user_roles (user_id, role_id) values (42, 'SYSTEM_ADMIN')
    7. 关闭 HSQLDB 管理器
    8. 启动teamcity

    【讨论】:

    • 有用的评论。如果它对其他人有帮助,我很难找到 TeamcityPrefs 文件夹。它是其中包含“buildserver.data”的文件夹。在我的机器上这是 C:\TeamCity\webapps\ROOT\WEB-INF\lib\hsqldb.jar
    【解决方案3】:

    运行 HSQLDB 数据库管理器需要 X 显示 - 实际上使用 SqlTool 更快更简单:

    1. 在运行 TeamCity 的用户的主目录中创建一个 sqltool.rc

      urlid 团队城市
      url jdbc:hsqldb:file:buildserver
      用户名 sa
      密码

    2. 在您的 TeamCity 数据目录中,cd 到系统并运行:

      java -cp PATH-TO/webapps/TeamCity-6.5.5/WEB-INF/lib/hsqldb.jar org.hsqldb.util.SqlTool teamcity

    3. 在 SQL 提示符下,运行上面由 hawkeye 给出的补救操作。

    4. 请记住在进行更改后提交

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 2011-11-30
      • 1970-01-01
      • 2016-04-19
      • 2011-05-19
      • 1970-01-01
      相关资源
      最近更新 更多