无法将用户添加到 SQL Server 中的 sysadmin 角色

无法将用户添加到 SQL Server 中的 sysadmin 角色

我正在使用 SQL Server 2008 Management Studio。当前登录帐户属于计算机本地管理员组。我在 SQL Server 2008 中使用 Windows 集成安全模式。

我的问题是,登录 SQL Server Management Studio 后,我在“安全/登录”下选择我的登录名,然后选择“服务器角色”选项卡,然后选择最后一项 - sysadmin 以使自己属于该组/角色,但它说我没有足够的权限。有什么想法吗?我认为本地管理员应该可以做任何事情。:-)

答案1

您尝试设置权限的会话的登录名必须具有权限。

那么,您使用的登录名是本地管理员?这意味着本地管理员组没有足够的权限。

GUI 也将运行它示例:.尽管这说

要求拥有要添加新成员的角色的成员资格。

因此,本地管理员组不是 sysadmin 的成员。

编辑:

解决方法:使用具有权限的登录名。您可以使用以下方法找到一个sp_helpsrvrolemember

答案2

在一篇原本很好的文章中故障排除:在系统管理员被锁定时连接到 SQL Server作者告诉我们,要重新获得对 SQL Server 的控制权,我们所要做的就是

“使用 -m 或 -f 选项以单用户模式启动 SQL Server 实例。然后,计算机本地管理员组的任何成员都可以作为 sysadmin 固定服务器角色的成员连接到 SQL Server 实例。”

不幸的是,以单用户模式启动意味着什么并不是一件直观的事情。另外,至少根据我的经验,我计算机本地管理员组的成员身份并未授予我的“用户”帐户系统管理员身份。

这个故事开始于为了解决非 DC 服务器在我的域中的成员资格问题(更换 ISP 的结果),我将 DC 从 2008 重建为 Windows Server 2008 R2。这解决了几个小问题,但没有解决错误服务器的成员资格问题。我采用了 ServerFault 中建议的修复方法才得以解决(在我的情况下,只需重置 winsock 和 tcpip 即可)。

SQL Server 2008 位于第二台服务器上,现在是域的成员。问题就在这里。正如有人在 ServerFault 上指出的那样,在安装 Server 2008 时,通常会选择“让当前用户成为系统管理员”。通常也不会考虑其他任何人。因为该单一用户身份是不再存在的域的域成员,所以没有人有权限管理 SQL Server。

我以安装 Sql Server 时存在的本地服务器管理员身份登录,尽管这允许我访问 Management Studio,但我很快发现 BUILTIN\Administrators 只有“公共”服务器角色。

经过大量的研究和实验,我偶然发现了一篇文章,详细介绍了单用户登录http://technet.microsoft.com/en-us/library/ms180965.aspx

C:\>cd \Program Files\Microsoft SQL Server\MSSQL10_50.1\MSSQL\Binn 
C:\...>sqlservr.exe -m

要准备执行此步骤,您必须关闭 SQL Server(在大多数情况下默认运行)。使用 SQL 配置管理器停止“Sql Server”。

然后,在命令提示符中,导航到该程序文件位置(或您机器上的等效位置),并发出“sqlservr.exe -m”命令。如果您看到命令提示符中记录了一连串活动,则表示您成功了。如果无法启动,则您可能已经在运行 SQL Server。将其关闭。

允许单用户实例附加其数据库。当日志活动停止后,打开 Management Studio。您将自动进入单用户模式,因此您代表的任何帐户都将是系统管理员。使用该权限调整安全登录和服务器角色。

就我而言,我必须在新域中重新创建域帐户,然后在 SQL Server 中删除它们的同名帐户,并重建它们(由于 SID/GUID 的情况),并根据需要为特定数据库重新分配权限。

答案3

SQL Server 2008 不再将 BUILTIN\Administrators 添加为 sysadmin 固定服务器角色的成员

确实如此,但在这种情况下,您可以通过在单用户模式(紧急模式)下启动 SQL Server 服务来从该情况中恢复,并且任何本地管理员都可以登录。

微软

答案4

默认情况下,SQL Server 2008 不再将 BUILTIN\Administrators 添加为 sysadmin 固定服务器角色的成员。当您浏览安装程序时,它会询问哪个或哪些帐户应具有 sysadmin 权限。有一个按钮基本上是“让我成为 sysadmin”,它将添加执行安装的用户的帐户作为 sysadmin。

如果他们没有添加任何其他用户作为系统管理员,那么只有该用户当前是系统管理员。您需要让该人登录 SQL Server 并授予 DBA 系统管理员权限。

相关内容