小编Eme*_* JS的帖子

SQL Server - 如何授予 SELECT 权限以访问来自不同所有者的架构中的数据?

我需要帮助来处理我的数据库中的权限问题。

这是场景:

1 数据库

4 架构

  • 架构A ; 所有者dbo
  • 架构B;所有者所有者X
  • 架构C ; 所有者所有者X
  • 架构D ; 所有者所有者X

schemaD 中,我有一个名为viewABC的视图,它从在schemaAschemaB e schemaC上分配的表和视图中获取信息。

用户用户X拥有SELECT权限viewABC

使用以下命令我授予权限:

GRANT SELECT ON schemaD.viewABC TO userX;
Run Code Online (Sandbox Code Playgroud)

userX尝试SELECT对视图执行 a时,可以这样:

SELECT * FROM schemaD.viewABC;
Run Code Online (Sandbox Code Playgroud)

我们得到错误:

对象“tableA”、数据库“MyDatabase”、架构“schemaA”的 SELECT 权限被拒绝。

我确实理解发生错误是因为tableA位于不同的架构上,具有不同的所有者(dbo 而不是 ownerX),并且 SQLServer 应用 userX权限来授予或拒绝访问权限。一旦userX 没有对 tableA显式访问权限,查询执行就会返回错误。 …

sql-server sql-server-2012

6
推荐指数
1
解决办法
9万
查看次数

标签 统计

sql-server ×1

sql-server-2012 ×1