SQL Server中的跨数据库授权

时间:2017-11-20 10:11:19

标签: sql-server database access-rights

我在数据库A中有一个存储过程X.

除其他事项外,

更新数据库B中的表Y

我已将X上的执行授予User1,但是当User1调用X时,它会收到以下错误:

The UPDATE permission was denied on the object 'Y', database 'B', schema 'dbo'.

如何正确授予User1更新权限?我不想直接将表Y的插入/更新/删除权限授予User1

1 个答案:

答案 0 :(得分:2)

如果所有对象都拥有相同的所有者(dbo)并且数据库所有者是相同的,那么您只需要启用跨数据库所有权链,即您应该为两个数据库执行

ALTER DATABASE A SET DB_CHAINING ON;  
ALTER DATABASE B SET DB_CHAINING ON;

链接:Enabling Cross-Database Access in SQL Server

User1应该映射到第二个数据库。