SQL 服务器中的跨数据库授权
Cross Database Grants in SQL Server
我在数据库 A 中有一个存储过程 X。
X,除其他外,更新数据库 B 中的 tableY
我已将 X 上的执行授权给 User1,但是当 User1 调用 X 时出现以下错误:
The UPDATE permission was denied on the object 'Y', database 'B', schema 'dbo'.
如何正确授予User1更新权限?我不想直接将 table Y 上的 Insert/Update/Delete 权限授予 User1
如果您的所有对象都具有相同的所有者 (dbo) 并且数据库所有者相同,您所需要的只是启用跨数据库所有权链,即您应该为两个数据库都做
ALTER DATABASE A SET DB_CHAINING ON;
ALTER DATABASE B SET DB_CHAINING ON;
Link: Enabling Cross-Database Access in SQL Server.
User1 应该映射到第二个数据库。
我在数据库 A 中有一个存储过程 X。
X,除其他外,更新数据库 B 中的 tableY
我已将 X 上的执行授权给 User1,但是当 User1 调用 X 时出现以下错误:
The UPDATE permission was denied on the object 'Y', database 'B', schema 'dbo'.
如何正确授予User1更新权限?我不想直接将 table Y 上的 Insert/Update/Delete 权限授予 User1
如果您的所有对象都具有相同的所有者 (dbo) 并且数据库所有者相同,您所需要的只是启用跨数据库所有权链,即您应该为两个数据库都做
ALTER DATABASE A SET DB_CHAINING ON;
ALTER DATABASE B SET DB_CHAINING ON;
Link: Enabling Cross-Database Access in SQL Server.
User1 应该映射到第二个数据库。