系统信息架构视图(Transact-SQL)

Applies to:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

信息架构视图是 SQL Server 用于获取元数据的几种方法之一。 信息架构视图提供与系统无关的内部 SQL Server 元数据视图。 信息架构视图使应用程序能够正常运行,尽管对基础系统表进行了重大更改。 SQL Server 中包含的信息架构视图符合 ISO 标准定义 INFORMATION_SCHEMA

Important

对破坏向后兼容性的信息架构视图进行了一些更改。 有关特定视图的文章中介绍了这些更改。

引用当前服务器时,SQL Server 支持由三部分构成的命名约定。 ISO 标准也支持三部分命名约定。 但是,两种命名约定中使用的名称并不相同。 信息架构视图是在名为 <a0/a0> 的特殊架构中定义的。 此架构包含在每个数据库中。 每个信息架构视图包含特定数据库中存储的所有数据对象的元数据。 下表显示了 SQL Server 名称和 SQL 标准名称之间的关系。

SQL Server 名称 对应的 SQL 标准等价名称
Database Catalog
Schema Schema
Object Object
用户定义的数据类型 Domain

此名称映射约定适用于以下 SQL Server ISO 兼容视图。

此外,某些视图还包含对其他类的数据(如字符数据或二进制数据)的引用。

引用信息架构视图时,必须使用包含 INFORMATION_SCHEMA 架构名称的限定名。 For example:

USE AdventureWorks2022;
GO

SELECT TABLE_CATALOG,
       TABLE_SCHEMA,
       TABLE_NAME,
       COLUMN_NAME,
       COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Product';

Permissions

信息架构视图中元数据的可见性仅限于用户拥有或向其授予某些权限的安全对象。 有关详细信息,请参阅 Metadata Visibility Configuration

信息架构视图在服务器范围内定义,因此无法在用户数据库的上下文中被拒绝。 若要 REVOKEDENY 访问 (SELECT), master 必须使用数据库。 默认情况下,公共角色对所有信息架构视图具有 SELECT-权限,但内容受限于元数据可见性规则。

不能拒绝访问 Azure SQL 数据库中的信息架构视图。