2

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

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

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

(像这样:TeamCity 忘记了管理员密码 - 去哪里看?)但是将用户的角色更改为全局系统管理员。

编辑 - 我们正在使用 HSQLDB。

4

3 回答 3

3

原来这是这个过程:

  1. 登录到teamcity服务器
  2. 停止 teamcity Web 服务器并在此机器上构建服务器服务
  3. 从 teamcity prefs 目录...\TeamcityPrefs\system运行以下命令 java -cp ...\TeamCity\webapps\ROOT\WEB-INF\lib\hsqldb.jar org.hsqldb.util.DatabaseManager
  4. "jdbc:hsqldb:file:buildServer"使用用户名"SA"和密码设置连接 url""
  5. 获取要更新的用户的用户 ID:select * from users u where u.username = 'myuser'
  6. 为该用户插入管理员角色:insert into user_roles (user_id, role_id) values (42, 'SYSTEM_ADMIN')
  7. 关闭 HSQLDB 管理器
  8. 启动团队城市
于 2011-03-01T22:41:21.567 回答
1

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

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

    urlid teamcity
    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 给出的 remdial 操作。

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

于 2011-11-14T12:39:31.190 回答
0

您可以从 TeamCity 文档中尝试此操作,但它可能不适用于 NTLM。

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

于 2011-02-07T18:04:01.053 回答