为啥 SQL Server 不允许我启用混合身份验证模式,以便我可以使用 sa 用户将角色分配给其他用户?

Posted

技术标签:

【中文标题】为啥 SQL Server 不允许我启用混合身份验证模式,以便我可以使用 sa 用户将角色分配给其他用户?【英文标题】:Why doesn't SQL Server allow me to enable the mixed authentication mode so I can use the sa user to assign roles to the other users?为什么 SQL Server 不允许我启用混合身份验证模式,以便我可以使用 sa 用户将角色分配给其他用户? 【发布时间】:2020-09-18 18:13:10 【问题描述】:

我正在尝试在服务器上安装 TFS,但它需要具有用户 SYSADMIN 角色,该角色只能使用 sa 用户登录名分配。

我正在使用 SQL Server 2014 Express。要启用sa 用户,我尝试启用混合模式身份验证,但出现此错误:

对象“xp_instance_regwrite”、数据库“mssqlsystemresource”、架构“sys”的执行权限被拒绝。 (Microsoft SQL Server,错误:229)

我该如何解决这个问题?

更新:

问题是我是 Windows 用户并使用 Windows 身份验证登录。因此,使用该用户我无法为自己或其他用户分配任何角色。

【问题讨论】:

“只能使用 sa 用户登录来分配。” 这不是真的,任何拥有sysadmin 服务器角色的人都可以分配。跨度> @Larnu 嗨,问题是我是 Windows 用户并使用 Windows 身份验证登录。因此,使用该用户我无法为自己或其他用户分配任何角色。 那么您需要与拥有适当权限的人交谈。您的权限受到限制是有原因的;如果您不需要 sysadmin 特权,则不应拥有它们。与您的 DBA 讨论设置所需的登录名和权限。 【参考方案1】:

您可以为 Azure DevOps Server/TFS 使用现有的 SQL Server 安装。为此,您需要 SQL Server 管理员授予的管理凭据。您必须是 SQL Server 中 sysadmin 服务器角色的成员才能安装和配置 Azure DevOps Server/TFS。因此,您需要联系 SQL Server 管理员并授予您的帐户适当的权限以安装 Azure DevOps Server/TFS。

如果您想重新安装 SQL Server,可以参考以下链接:

https://docs.microsoft.com/en-us/azure/devops/server/install/sql-server/install-sql-server?view=azure-devops

【讨论】:

我们没有 dba,所以我必须分配,我该怎么做? 为了解决您的访问问题,我们建议您以单用户模式启动 SQL Server 实例。此模式可防止在您尝试重新获得访问权限时发生其他连接。从这里,您可以连接到您的 SQL Server 实例并将您的登录名添加到 sysadmin 服务器角色。检查此链接:docs.microsoft.com/en-us/sql/database-engine/configure-windows/…. 请告诉我们您的结果。如果还是无法访问sql server,则需要重新安装实例。

以上是关于为啥 SQL Server 不允许我启用混合身份验证模式,以便我可以使用 sa 用户将角色分配给其他用户?的主要内容,如果未能解决你的问题,请参考以下文章

为啥sql server身份验证失败

如何解决sql server18456错误

sql server 2008 windows验证改混合登陆中SqlServer身份验证用户名密码

SQL Server2008如何连接远程的服务器

sql server 2008 怎么让其他ip地址访问

为啥在较新版本的 Keycloak 中不允许使用身份验证流程中的脚本