Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
情報スキーマ ビューは、SQL Server がメタデータを取得するために提供するいくつかの方法の 1 つです。 情報スキーマ ビューは、SQL Server メタデータの内部のシステム テーブルに依存しないビューを提供します。 情報スキーマ ビューを使用すると、基になるシステム テーブルに大幅な変更が加えられましたが、アプリケーションは正常に動作できます。 SQL Server に含まれる情報スキーマ ビューは、 INFORMATION_SCHEMA
の ISO 標準定義に準拠しています。
Important
旧バージョンとの互換性を損なう情報スキーマ ビューにいくつかの変更が加えられました。 これらの変更については、特定のビューの記事で説明します。
SQL Server では、現在のサーバーを参照するときに、3 部構成の名前付け規則がサポートされます。 ISO 標準も、3 つの要素で構成される名前付け規則をサポートします。 しかし、両方の名前付け規則で使用される名前は同じではありません。 情報スキーマ ビューは、 INFORMATION_SCHEMA
という名前の特別なスキーマで定義されます。 このスキーマは、各データベースに含まれます。 各情報スキーマ ビューには、その特定のデータベースに格納されているすべてのデータ オブジェクトのメタデータが含まれています。 次の表に、SQL Server 名と SQL 標準名の関係を示します。
SQL Server 名 | この同等の SQL 標準名にマップされます |
---|---|
Database | Catalog |
Schema | Schema |
Object | Object |
ユーザー定義データ型 | Domain |
この名前マッピング規則は、次の SQL Server ISO 互換ビューに適用されます。
- CHECK_CONSTRAINTS
- COLUMN_DOMAIN_USAGE
- COLUMN_PRIVILEGES
- COLUMNS
- CONSTRAINT_COLUMN_USAGE
- CONSTRAINT_TABLE_USAGE
- DOMAIN_CONSTRAINTS
- DOMAINS
- KEY_COLUMN_USAGE
- PARAMETERS
- REFERENTIAL_CONSTRAINTS
- ROUTINE_COLUMNS
- ROUTINES
- SCHEMATA
- TABLE_CONSTRAINTS
- TABLE_PRIVILEGES
- TABLES
- VIEW_COLUMN_USAGE
- VIEW_TABLE_USAGE
- VIEWS
また、いくつかのビューは、文字データやバイナリ データなど、別のクラスのデータへの参照を含んでいます。
情報スキーマ ビューを参照する場合は、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」を参照してください。
情報スキーマ ビューはサーバー全体で定義されているため、ユーザー データベースのコンテキスト内では拒否できません。 アクセス (SELECT
) をREVOKE
またはDENY
するには、master
データベースを使用する必要があります。 既定では、パブリック ロールにはすべての情報スキーマ ビューに対する SELECT
アクセス許可がありますが、コンテンツはメタデータの表示ルールによって制限されます。
Azure SQL Database の情報スキーマ ビューへのアクセスを拒否することはできません。