我正在使用EXECUTE AS来允许最少权限的用户以sysadmin身份运行某些SQL存储过程。我知道我需要在源数据库(运行存储过程的数据库)上使用TRUSTWORTHY = ON才能模拟我服务器上其他数据库的sysadmin。但是,即使授予模拟和TRUSTWORTHY = ON,在尝试以模拟用户身份触摸其他数据库时仍会出现以下错误:
The server principal [least_privileged user] is not able to access the database XXX under the current security context.
(是的,我知道模块签名是更安全的选择。我不打算走那条路。)
任何人都可以帮助我吗?
答案 0 :(得分:0)
execute as owner
。dbo
架构中。trustworthy=on
数据库。通过这种方式,您不需要额外的模拟授权,但这是一种方式安全性较低的解决方案。但它会起作用。