gpt4 book ai didi

sql-server - 如何将 Windows 用户添加到 SQL Server 2012 中的 sysadmin 服务器角色?

转载 作者:行者123 更新时间:2023-12-02 20:29:03 25 4
gpt4 key购买 nike

我有一个在 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

我这里有两个问题:

  1. 当我运行此处显示的脚本时,对 IS_SRVROLEMEMBER 的调用按预期返回 0,但即使domain\currentsysadmin 登录名是 sysadmin 的成员,对 ALTER SERVER ROLE 的调用也会返回:

    消息 15151,第 16 级,状态 1,第 8 行无法更改服务器角色“sysadmin”,因为它不存在或您没有权限。

  2. 当我在没有 EXECUTE AS 语句的 SA 上下文中运行此命令时,ALTER SERVER ROLE 语句似乎运行成功,但是当我检查 domain\futuresysadmin 登录名时,它仍然不是 sysadmin 的成员角色

如何将domain\futuresystem登录名添加到sysadmin服务器角色?

最佳答案

使用sp_addsrvrolemember:

EXEC master..sp_addsrvrolemember @loginame = N'domain\futuresysadmin', @rolename = N'sysadmin'

更新:用户上下文切换不会继承任何服务器角色,例如 sysadmin。在阅读文档时:“不尊重用户 token 中或通过角色成员身份显式授予身份的服务器级权限。”当您切换用户上下文时,您的用户不再有权将 sysadmin 授予其他用户。

关于sql-server - 如何将 Windows 用户添加到 SQL Server 2012 中的 sysadmin 服务器角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13806649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com