我需要帮助来处理我的数据库中的权限问题。
这是场景:
1 数据库
4 架构:
在schemaD 中,我有一个名为viewABC的视图,它从在schemaA、schemaB 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的显式访问权限,查询执行就会返回错误。 …