如何在没有 SYSADMIN 权限的情况下更改链接服务器上的数据库?

如何在没有 SYSADMIN 权限的情况下更改链接服务器上的数据库?

我的要求是用户执行改变不能系统管理员(它可以拥有除系统管理员以外的所有其他权限)。

我正在从本地服务器运行查询,该查询应该修改远程服务器

EXEC ('ALTER DATABASE REMOTEDB MODIFY FILEGROUP ftfg_REMOTEDB NAME=ftfg_REMOTEDB') at [REMOTESERVER]

一旦我为用户添加 sysadmin 权限,此查询就会有效,但如果没有权限,就会出现以下错误:

The server principal "USERWITHOUTSYSADMIN" is not able to access the database "REMOTEDB" under the current security context.

我使用的是 SQL Serve 2008。

请帮忙!

答案1

错误消息指向 EXECUTE AS 模拟上下文问题,请参阅使用 EXECUTE AS 扩展数据库模拟。您的堆栈中是否有任何 EXECUTE AS,是否有任何使用此子句的过程,您是否处于激活的上下文中,或者您是否在会话中发出了 EXECUTE AS?更实际地说,您是否可以在SELECT * FROM sys.login_token调用远程链接服务器时在完全相同的上下文/会话中发布执行的结果?

相关内容