来自可信赖的数据库的模拟被拒绝

时间:2014-08-25 20:17:23

标签: sql sql-server database tsql

我正在使用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.

(是的,我知道模块签名是更安全的选择。我不打算走那条路。)

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

  • 使用execute as owner
  • 确保该过程位于dbo架构中。
  • 确保数据库所有者对该实例具有sysadmin权限。一世 已经注意到SQL登录比这更好地用于此目的 来自Windows。
  • 检查trustworthy=on数据库。

通过这种方式,您不需要额外的模拟授权,但这是一种方式安全性较低的解决方案。但它会起作用。