SQL Server中访问跨架构关联视图需具备哪些架构权限?
SQL Server视图访问权限问题解答
- 访问
global.reg_salesprod_v1视图时,仅需要拥有该视图的SELECT权限(以及global架构的访问权限),不需要直接持有rpo、rpt架构或其下属表的权限。 - 背后的核心机制是SQL Server的所有权链:当视图和它引用的所有底层表属于同一个数据库所有者时,数据库会自动跳过对底层表的权限校验,只校验用户对视图本身的访问权限。只要
global.reg_salesprod_v1、global.tableA、rpo.tableb、rpt.tablec这几个对象的所有者为同一账号,就会触发这个规则。 - 特殊情况:如果视图和某张底层表的所有者不同,所有权链会在此处中断,此时用户除了视图的权限外,还需要拥有这张表的SELECT权限(以及对应架构的访问权限)。
内容的提问来源于stack exchange,提问作者Angel D'souza
相关产品推荐
相关产品推荐

