由非管理员用户执行sp_setnetname

时间:2019-06-27 10:43:18

标签: sql-server sql-server-2016

我需要更改链接服务器的IP。我使用过程sp_setnetname。 我以user1服务器角色登录public。 尝试运行以下代码:

    EXECUTE AS USER = 'user2';
    EXEC ('sp_setnetname ''LinkedServerName'', ''' + 'SomeIp' + '''')
    REVERT;

其中user2具有sysadmin服务器角色。但我收到错误消息:

Cannot execute as the database principal because the principal "user2" does not exist, this type of principal cannot be impersonated, or you do not have permission.

请帮助我解决此错误,或找到其他方法来由非管理员用户更改链接服务器的ip。

1 个答案:

答案 0 :(得分:0)

好的,我这样解决问题:

  1. 登录User1仍然具有公共服务器角色。
  2. 登录User1仍映射到数据库用户User1。
  3. 添加登录用户1权限Alter any linked server

我希望对我这样的人有帮助。

P.S。谢谢@Jeroen Mostert的想法。