我正在使用SQL Server 2008 Management Studio。当前登录帐户属于计算机本地管理员组。我在SQL Server 2008中使用Windows集成安全性模式。
我的问题是,登录到SQL Server Management Studio之后,我在“安全性/登录”下选择我的登录名,然后选择“服务器角色”选项卡,然后选择最后一项-sysadmin,使我自己属于此组/角色,但是它说我没有足够的权限。任何想法有什么问题吗?我认为本地管理员应该可以执行任何操作。:-)
我正在使用SQL Server 2008 Management Studio。当前登录帐户属于计算机本地管理员组。我在SQL Server 2008中使用Windows集成安全性模式。
我的问题是,登录到SQL Server Management Studio之后,我在“安全性/登录”下选择我的登录名,然后选择“服务器角色”选项卡,然后选择最后一项-sysadmin,使我自己属于此组/角色,但是它说我没有足够的权限。任何想法有什么问题吗?我认为本地管理员应该可以执行任何操作。:-)
Answers:
您尝试设置权限的会话登录名必须具有权限。
因此,您使用的登录名是本地管理员?这意味着本地管理员组没有足够的权限。
GUI也将运行此sp_addsrvrolemember。虽然这说
需要新成员要添加到的角色的成员身份。
因此,本地管理员组不是sysadmin的成员。
编辑:
解决方法:使用具有权限的登录名。您可以使用sp_helpsrvrolemember找到一个
在另一本很好的文章《故障排除:锁定系统管理员时连接到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的情况),并根据需要重新分配对特定数据库的权限。
默认情况下,SQL将组BUILTIN \ Administrators添加到sysadmin角色,这意味着任何本地NT管理员都自动成为SQL sysadmin。在Vista上,由于存在UAC,因此必须以“管理员身份”模式运行才能享受此特权。
全新安装后,我仔细考虑了同一问题,直到在SQL Server 2008上注册了服务器,然后一切正常