Teamcity NTLM 身份验证更改 - 管理员用户在转换过程中丢失

发布于 2024-10-15 23:20:34 字数 350 浏览 8 评论 0原文

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

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

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

(如下所示:TeamCity 忘记了管理员密码 - 在哪里查找?)而是将用户的角色更改为全局系统管理员。

编辑 - 我们正在使用 HSQLDB。

I've switched in teamcity from using basic authentication to using NTLM, on an existing installation.

This works fine, except that the admin user didn't have a corresponding NT account, and so doesn't work on the NTLM configuration. (It is easy to roll back, so it is not a stress).

My question is - what is the command to set a user to admin manually - ie modifying the database?

(like this: TeamCity forgotten admin password - where to look?) but changing the role of a user to global system administrator.

Edit - we're using HSQLDB.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

沐歌 2024-10-22 23:20:35

您可以尝试TeamCity 文档中的方法 但它可能不适用于 NTLM。

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

You could try this from the TeamCity documentation but it may not work with NTLM.

What database are you using for the TeamCity installation? If you're using the SQL Server backend then you can look in the user_roles table, you would need to set the role_id to SYSTEM_ADMIN with a NULL for project id and find the user_id from the users table (the user will need to have logged into TeamCity). The approach would be similar for other storage backends but it may be easier to simply restart.

陌若浮生 2024-10-22 23:20:34

结果是这样的过程:

  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. 将连接 URL 设置为 "jdbc:hsqldb:file :buildServer",用户名 "SA" 和密码 ""
  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. 启动 teamcity

Turns out this is the process:

  1. Log onto the teamcity server
  2. Stop teamcity web server and build server services on this machine
  3. From the teamcity prefs directory ...\TeamcityPrefs\system run the following command
    java -cp ...\TeamCity\webapps\ROOT\WEB-INF\lib\hsqldb.jar org.hsqldb.util.DatabaseManager
  4. Set the connection url to "jdbc:hsqldb:file:buildServer" with username "SA" and password ""
  5. Get the userid of the user you want to update: select * from users u where u.username = 'myuser'
  6. Insert an admin role for that user: insert into user_roles (user_id, role_id) values (42, 'SYSTEM_ADMIN')
  7. Close the HSQLDB manager
  8. Start teamcity
栖竹 2024-10-22 23:20:34

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

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

    urlid teamcity
    url jdbc:hsqldb:文件: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 操作。< /p>

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

Running HSQLDB Database Manager requires an X display - it's actually a lot quicker and simpler to use SqlTool instead:

  1. Create an sqltool.rc in the home directory of the user running TeamCity

    urlid teamcity
    url jdbc:hsqldb:file:buildserver
    username sa
    password

  2. in your TeamCity datadirectory, cd to system and run:

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

  3. At the SQL prompt, run the remdial action above given by hawkeye.

  4. Remember to commit after making your changes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文