Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从可信数据库拒绝模拟_Sql_Sql Server_Database_Tsql - Fatal编程技术网

Sql 从可信数据库拒绝模拟

Sql 从可信数据库拒绝模拟,sql,sql-server,database,tsql,Sql,Sql Server,Database,Tsql,我使用EXECUTE-AS允许特权最低的用户作为系统管理员运行一些SQL存储过程。我知道我需要源数据库(运行存储过程的数据库)上的trustry=ON,以便在我服务器上的其他数据库上模拟sysadmin。但是,即使已授予模拟且Trusty=ON,我在尝试以模拟用户身份接触其他数据库时仍会出现以下错误: The server principal [least_privileged user] is not able to access the database XXX under the

我使用EXECUTE-AS允许特权最低的用户作为系统管理员运行一些SQL存储过程。我知道我需要源数据库(运行存储过程的数据库)上的trustry=ON,以便在我服务器上的其他数据库上模拟sysadmin。但是,即使已授予模拟且Trusty=ON,我在尝试以模拟用户身份接触其他数据库时仍会出现以下错误:

The server principal [least_privileged user] is not able to access the database XXX under the     current security context.
(是的,我知道模块签名是更安全的选择。我不想走这条路。)

有人能帮我吗?

  • 使用
    作为所有者执行
  • 确保过程位于
    dbo
    架构中
  • 确保数据库所有者对实例具有系统管理员权限。我 您已经注意到,SQL登录在这方面比其他登录更有效 从窗口
  • 检查数据库的
    trustry=on

这样,您不需要额外的模拟授权,但这是一种不太安全的解决方案。不过,它可以工作。

存储过程EXECUTE AS子句允许您模拟数据库用户,而不是登录名。您可以将该用户添加到另一个数据库以防止错误。您到底在做什么,需要系统管理员角色成员身份?