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


9

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

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


Answers:


6

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

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

GUI也将运行此sp_addsrvrolemember。虽然这说

需要新成员要添加到的角色的成员身份。

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

编辑:

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


您对解决我的问题有什么建议?
2009年

不知道是否有任何解决方法或解决方案,而无需再次重新安装所有SQL Server 2008!:-(
George2,2009年

“使用具有权限的登录名”-如何获得具有足够权限的登录名列表?
2009年

谢谢,我发现从EXEC sp_helpsrvrolemember'sysadmin'列出的唯一成员称为sa,它是Windows用户吗?我无法从Windows用户列表中找到这样的用户。有任何想法吗?
2009年

1
这是保留的SQL登录名,而不是Windows用户。在我的测试SQL 2008安装中,列出了安装SQL Server的帐户。
gbn

4

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

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

不幸的是,以单用户模式启动意味着什么不是一个直观的问题。另外,至少以我的经验,我计算机本地管理员组的成员资格并未授予“用户”帐户sysadmin的身份。

这个故事从解决非DC服务器在我域中的成员身份问题(更改ISP的结果)开始,我从2008年将DC重建到Windows Server 2008 R2中。这解决了几个小问题,但没有解决错误服务器的成员资格问题。为此,需要使用ServerFault中建议的修复程序(就我而言,这是重置winsock和tcpip的问题)。

SQL Server 2008驻留在第二台服务器上,现在是域的成员。这是问题所在。正如有人指出ServerFault一样,在安装Server 2008时通常会推送“让当前用户成为sysadmin”。常见的做法是不考虑其他任何人。由于该单一用户身份是不再存在的域的域成员,因此没有人有权管理Sql Server。

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

经过大量的研究和实验,我偶然发现了一篇介绍单用户登录细节的文章http://technet.microsoft.com/zh-cn/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。您将自动进入单用户模式,因此您代表的任何帐户都将是sysadmin。使用该功能来调整安全性登录名和服务器角色。

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


还有另一种设置参数的方式:打开服务,管理器,选择服务,然后从右键单击菜单中选择属性。在常规选项卡中,有一个“开始参数”编辑。在此处输入所需的参数。然后使用该页面中的“开始”按钮启动服务,仅当从“属性”对话框启动服务时,在那里设置的参数不是永久有效的。
ldsandon

3

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

没错,但是在这种情况下,您可以从这种情况中恢复,以单用户模式(紧急模式)启动SQL Server服务,并且任何本地管理员都可以登录。

参见MSDN


2

默认情况下,SQL将组BUILTIN \ Administrators添加到sysadmin角色,这意味着任何本地NT管理员都自动成为SQL sysadmin。在Vista上,由于存在UAC,因此必须以“管理员身份”模式运行才能享受此特权。

  • 如果您使用的是Vista,请以“以管理员身份”运行客户端工具(SSMS),然后尝试将自己添加为系统管理员。
  • 如果BUILTIN \ Administrators组意外从sysadmin角色中删除,则必须使用另一个sysadmin登录名登录。如果没有其他系统管理员登录名,则必须使用SQL身份验证以sa身份登录,并使用在设置过程中设置的sa密码。以sysadmin成员身份登录后,广告BUILTIN \ Admisnitrators返回sysadmin角色。如果禁用了SQL登录,那么恭喜您,您将自己锁定在SQL安装之外。
  • 如果BUILTIN \ Administrators组被有意地从sysadmin角色中删除(根据KB932881),则您正在尝试侵入您没有权限的系统。

嗨,雷木斯(Remus),我很困惑,在安装过程中,我没有为sa设置任何密码,是否有默认密码?
2009年

另一个困惑是,从运行存储过程sp_helpsrvrolemember来查找所有sysadmin角色用户,仅列出了sa,而本地计算机管理员组中没有其他用户,为什么有什么想法?
2009年

没有sa的默认密码。如果启用了混合身份验证,则会在设置过程中设置sa的密码。如果需要,您将不得不要求数据库管理员授予您访问权限。
Remus Rusanu 2009年

“如果禁用了SQL登录,那么祝贺您,您将自己锁定在SQL安装之外。” 在这种情况下,请参阅下面的Jordi答案以单用户模式启动SQL Server。
Michiel van Oosterhout 2010年

1

默认情况下,SQL Server 2008不再将BUILTIN \ Administrators添加为sysadmin固定服务器角色的成员。当您通过安装程序时,它将询问哪些帐户应具有sysadmin权限。有一个按钮,基本上说“让我成为系统管理员”,它将把进行安装的用户的帐户添加为系统管理员。

如果他们没有将其他用户添加为sysadmins,则只有该用户当前是sysamdin。您需要让该人登录SQL Server并授予DBA sysadmin权限。


0

全新安装后,我仔细考虑了同一问题,直到在SQL Server 2008上注册了服务器,然后一切正常

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.