VIEW DEFINITION 权限

使用 VIEW DEFINITION 权限,用户能够看到被授予权限的安全对象的元数据。但是,VIEW DEFINITION 权限不会授予对安全对象本身的访问权限。例如,仅被授予对表的 VIEW DEFINITION 权限的用户可以查看与 sys.objects 目录视图中的表有关的元数据。但是,如果没有 SELECT 或 CONTROL 之类的其他权限,用户无法从表中读取数据。有关查看元数据的详细信息,请参阅 GRANT (Transact-SQL)

可以在下列级别上授予 VIEW DEFINITION 权限:

  • 服务器作用域

  • 数据库作用域

  • 架构作用域

  • 单独实体

服务器作用域

在此作用域内授予的 VIEW ANY DEFINITION 权限,可有效地取消被授权者基于权限的元数据访问权限。这意味着被授权者可以查看 SQL Server 实例中的所有元数据,但在数据库作用域、架构作用域内或针对单独实体(例如表)拒绝被授权者的 VIEW DEFINITION 权限或 CONTROL 权限时除外。有关用于此作用域内该权限所使用语法的信息,请参阅 GRANT (Transact-SQL)

注意注意

在服务器作用域内,该权限名称为 VIEW ANY DEFINITION,但在其他作用域内,该权限名称为 VIEW DEFINITION。

数据库作用域

在此作用域内授予的 VIEW DEFINITION 权限可有效地取消指定数据库中被授权者基于权限的元数据访问权限。这意味着被授权者可以查看执行 GRANT 语句的数据库上下文中的所有元数据,除非在架构作用域内或针对单独实体(例如表)拒绝被授权者的 VIEW DEFINITION 或 CONTROL 权限。有关用于此作用域内该权限所使用语法的信息,请参阅 GRANT (Transact-SQL)

架构作用域

使用在此作用域内授予的 VIEW DEFINITION 权限,被授权者可以查看指定架构中包含的所有对象的所有元数据,除非拒绝被授权者对架构中单独实体的 VIEW DEFINITION 或 CONTROL 权限。有关在此作用域内该权限所使用语法的信息,请参阅 GRANT 架构权限 (Transact-SQL)

单独实体

使用针对单独实体授予的 VIEW DEFINITION 权限,被授权者可以查看指定实体的元数据。有关用于单独实体的此权限的语法的信息,请参阅 GRANT 对象权限 (Transact-SQL)

可以为安全对象(例如表)的用户授予 VIEW DEFINITION 权限。这使用户可以查看表的元数据以及与表相关的任何子组件,例如触发器、约束和索引。