我在本地机器上安装了 SQL Server 2008 R2。但是,由于权利(或缺乏),我无法创建新数据库。
“创建数据库权限被拒绝”
所以,我尝试将管理员权限分配给我当前的登录
“用户无权执行此操作。”
我还尝试创建一个具有管理员权限但没有运气的新登录名。 如何授予自己管理员权限以便创建数据库? 我可以重新安装,但我不想这样做。
原文由 SkonJeet 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在本地机器上安装了 SQL Server 2008 R2。但是,由于权利(或缺乏),我无法创建新数据库。
“创建数据库权限被拒绝”
所以,我尝试将管理员权限分配给我当前的登录
“用户无权执行此操作。”
我还尝试创建一个具有管理员权限但没有运气的新登录名。 如何授予自己管理员权限以便创建数据库? 我可以重新安装,但我不想这样做。
原文由 SkonJeet 发布,翻译遵循 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 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
804 阅读
是的 - 安装 SQL Server 时,您似乎忘记将自己添加到 sysadmin 角色。如果您是计算机上的本地管理员, 这篇博 文可以帮助您使用 SQLCMD 将您的帐户加入 SQL Server sysadmin 组,而无需重新安装。如果你问我,这在 SQL Server 中有点安全漏洞,但在这种情况下它会帮助你。