我有一个在 Windows 用户上下文中执行的 Powershell 脚本。此用户登录 SQL 2012 实例,该实例是 sysadmin 服务器角色的成员。
我希望脚本将 SQL 实例(也有相应的 Windows 用户)上的另一个登录名添加到 sysadmin 服务器角色。
要在 Management Studio(作为 SA 连接)中尝试此操作,我使用以下脚本:
execute as user = 'domain\currentsysadmin'
IF IS_SRVROLEMEMBER('sysadmin', 'domain\futuresysadmin') != 1
ALTER SERVER ROLE [sysadmin] ADD MEMBER [domain\futuresysadmin]
revert
我这里有两个问题:
当我运行此处显示的脚本时,对 IS_SRVROLEMEMBER 的调用按预期返回 0,但即使 domain\currentsysadmin 登录是 sysadmin 的成员,对 ALTER SERVER ROLE 的调用也会返回:
消息 15151,级别 16,状态 1,第 8 行无法更改服务器角色“sysadmin”,因为它不存在或您没有权限。
当我在没有 EXECUTE AS 语句的 SA 上下文中运行它时,ALTER SERVER ROLE 语句似乎运行成功,但是当我检查 domain\futuresysadmin 登录时,它仍然不是 sysadmin 角色的成员
如何将域\futuresystem 登录添加到 sysadmin 服务器角色?