【发布时间】:2014-08-25 20:17:22
【问题描述】:
我正在使用 EXECUTE AS 来允许最低权限用户以系统管理员身份运行一些 SQL 存储过程。我知道我需要在源数据库(运行存储过程的数据库)上使用 TRUSTWORTHY=ON 才能在我的服务器上的其他数据库上模拟系统管理员。但是,即使授予了模拟并且 TRUSTWORTHY=ON,在尝试以模拟用户身份访问其他数据库时,我仍然会收到以下错误:
The server principal [least_privileged user] is not able to access the database XXX under the current security context.
(是的,我知道模块签名是更安全的选择。我不想走那条路。)
谁能帮帮我?
【问题讨论】:
-
存储过程 EXECUTE AS 子句允许您模拟数据库用户,而不是登录。您可以将用户添加到其他数据库以防止错误。您到底在做什么需要系统管理员角色成员身份?
标签: sql sql-server database tsql