我的要求是执行alter CAN NOT 的用户 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上。
请帮助!
答案 0 :(得分:0)
将EXEC命令放在存储过程中,并将该过程的执行权授予用户。它不会阻止系统管理员执行它,但它也允许其他人执行它。非常非常小心!
答案 1 :(得分:0)
您是否可以允许用户冒充具有相应权限的人?
EXEC ('ALTER DATABASE REMOTEDB MODIFY FILEGROUP ftfg_REMOTEDB NAME=ftfg_REMOTEDB')
AS USER = 'UserWithAppropriatePermissions'
AT [REMOTESERVER]
答案 2 :(得分:0)
经过大量研究:这是不可能的:(