如何授予自己对本地 SQL Server 实例的管理员访问权限?

新手上路,请多包涵

我在本地机器上安装了 SQL Server 2008 R2。但是,由于权利(或缺乏),我无法创建新数据库。

“创建数据库权限被拒绝”

所以,我尝试将管理员权限分配给我当前的登录

“用户无权执行此操作。”

我还尝试创建一个具有管理员权限但没有运气的新登录名。 如何授予自己管理员权限以便创建数据库? 我可以重新安装,但我不想这样做。

原文由 SkonJeet 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 483
2 个回答

是的 - 安装 SQL Server 时,您似乎忘记将自己添加到 sysadmin 角色。如果您是计算机上的本地管理员, 这篇博 文可以帮助您使用 SQLCMD 将您的帐户加入 SQL Server sysadmin 组,而无需重新安装。如果你问我,这在 SQL Server 中有点安全漏洞,但在这种情况下它会帮助你。

原文由 Brian Knight 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您要添加域用户,此脚本将为您节省一些时间。

 --
-- 1) CREATE LOGIN domain\USERNAME
--
DECLARE @domain VARCHAR(MAX);
DECLARE @template VARCHAR(MAX)
DECLARE @sql VARCHAR(MAX)

SET @domain = DEFAULT_DOMAIN();
SET @template = 'CREATE LOGIN "{domain}\USERNAME" FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]'
SET @sql = REPLACE(@template, '{domain}', @domain)

EXECUTE (@sql)

--
-- 2) GRANT SYSADMIN server level permission on domain\USERNAME
--
DECLARE @domain VARCHAR(MAX);
DECLARE @template VARCHAR(MAX)
DECLARE @sql VARCHAR(MAX)

SET @domain = DEFAULT_DOMAIN();
SET @template = 'EXEC sp_addsrvrolemember @loginame = N''{domain}\USERNAME '', @rolename = N''sysadmin'''
SET @sql = REPLACE(@template, '{domain}', @domain)

EXECUTE (@sql)

只需将“USERNAME”替换为您自己的用户名即可。您不必输入域,因为它会使用 DEFAULT_DOMAIN() 动态地计算出来。有趣的事实:您还可以使用它在不同域的多个数据库中快速添加相同的用户。使用 SSMS 的“在多个数据库上运行查询”功能运行此命令。

原文由 tinker 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进