对于 SQL Server 2012 及更高版本,如SQL Server 安装中的新增功能所述:
BUILTIN\administrators和本地系统( NT AUTHORITY\SYSTEM ) 不会在 sysadmin 固定服务器角色中自动配置。
就我而言,这已经成为一个问题:我有一个 WiX 安装程序,它使用Custom Action
C++ 代码来设置数据库数据(创建数据库、视图、过程、数据等)。Custom Action
以 user 身份运行NT AUTHORITY\SYSTEM
,但此帐户没有执行CREATE DATABASE
脚本的权限。
安装软件时赋予sysadmin
角色是否正确NT AUTHORITY\SYSTEM
?或者也许有更好的解决方案?
如果正确,是否可以找到正确的用户名NT AUTHORITY\SYSTEM
?我需要这个名字才能更改权限*。在不同的语言环境中,此名称是不同的,例如,NT AUTHORITY\SYSTEM
或NT AUTHORITY\???????
。
添加NT AUTHORITY\SYSTEM
到sysadmin
角色:
IF NOT EXISTS
(
SELECT name
FROM master.sys.server_principals
WHERE IS_SRVROLEMEMBER ('sysadmin', name) = 1
AND name LIKE 'NT AUTHORITY\SYSTEM'
)
EXEC …
Run Code Online (Sandbox Code Playgroud)