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

Teamcity NTLM身份验证更改-管理员用户在转换过程中丢失,teamcity,ntlm,role,manual,Teamcity,Ntlm,Role,Manual,我已经在teamcity中使用基本身份验证,在现有安装上使用NTLM 这可以正常工作,除了管理员用户没有相应的NT帐户,因此无法使用NTLM配置。(很容易回滚,因此这不是压力) 我的问题是-手动将用户设置为admin的命令是什么-即修改数据库 (如下:)但将用户角色更改为全局系统管理员 编辑-我们正在使用HSQLDB。您可以尝试,但它可能无法与NTLM一起使用 您在TeamCity安装中使用的数据库是什么?如果您使用的是SQL Server后端,那么您可以查看user_roles表,您需要将ro

我已经在teamcity中使用基本身份验证,在现有安装上使用NTLM

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

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

(如下:)但将用户角色更改为全局系统管理员

编辑-我们正在使用HSQLDB。

您可以尝试,但它可能无法与NTLM一起使用


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

事实证明,这是一个过程:

  • 登录teamcity服务器
  • 停止teamcity web服务器并在此计算机上构建服务器服务
  • 从teamcity prefs目录
    …\TeamcityPrefs\system
    运行以下命令
    java-cp…\TeamCity\webapps\ROOT\WEB-INF\lib\hsqldb.jar org.hsqldb.util.DatabaseManager
  • 将连接url设置为“jdbc:hsqldb:file:buildServer”,用户名为“SA”,密码为“code>”
  • 获取要更新的用户的用户名:
    select*from users u,其中u.username='myuser'
  • 插入该用户的管理员角色:
    插入用户角色(用户id,角色id)值(42,“系统管理员”)
  • 关闭HSQLDB管理器
  • 启动团队城市

  • 运行HSQLDB数据库管理器需要X显示—实际上,使用SqlTool要快得多,也简单得多:

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

    urlid teamcity
    url jdbc:hsqldb:file:buildserver
    用户名sa
    密码

  • 在TeamCity数据目录中,将cd刻录到系统并运行:

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

  • 在SQL提示符下,运行上面hawkeye给出的remdial操作

  • 请记住在进行更改后提交


  • 我们使用的是HSLDB——默认的绝妙答案——几乎正是我想要的——除了它不适用于NTLM。有用的评论。如果这对其他人有帮助,我很难找到TeamcityPrefs文件夹。它是包含“buildserver.data”的文件夹。在我的计算机上,这是C:\TeamCity\webapps\ROOT\WEB-INF\lib\hsqldb.jar