システム情報 スキーマ ビュー (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance
情報スキーマ ビューは、SQL Server がメタデータを取得するために提供するいくつかの方法の 1 つです。 情報スキーマ ビューは、SQL Server メタデータの内部のシステム テーブルに依存しないビューを提供します。 基になるシステム テーブルに大きな変更が加えられても、情報スキーマ ビューによって、アプリケーションは正しく動作できます。 SQL Server に含まれる情報スキーマ ビューは、INFORMATION_SCHEMAの ISO 標準定義に準拠しています。
重要
情報スキーマ ビューに対しては、旧バージョンとの互換性を維持できない変更がいくつか加えられています。 これらの変更については、特定のビューのトピックで説明します。
SQL Server では、現在のサーバーを参照するときに、3 部構成の名前付け規則がサポートされます。 ISO 標準も、3 つの要素で構成される名前付け規則をサポートします。 しかし、両方の名前付け規則で使用される名前は同じではありません。 情報スキーマ ビューは、INFORMATION_SCHEMA という特殊スキーマで定義されます。 このスキーマは、各データベースに含まれます。 各情報スキーマ ビューには、その特定のデータベースに格納されているすべてのデータ オブジェクトのメタデータが含まれています。 次の表に、SQL Server 名と SQL 標準名の関係を示します。
SQL Server 名 | この同等の SQL 標準名にマップされます |
---|---|
データベース | カタログ |
[スキーマ] | [スキーマ] |
Object | Object |
ユーザー定義データ型 | [ドメイン] |
この名前マッピング規則は、次の SQL Server ISO 互換ビューに適用されます。
また、いくつかのビューは、文字データやバイナリ データなど、別のクラスのデータへの参照を含んでいます。
情報スキーマ ビューを参照する場合は、INFORMATION_SCHEMA
スキーマ名を含む修飾名を使用する必要があります。 次に例を示します。
SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT
FROM AdventureWorks2022.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'Product';
アクセス許可
情報スキーマ ビューでのメタデータの可視性は、ユーザーが所有しているか、ユーザーに何らかのアクセス許可が付与されているセキュリティ保護可能なリソースに限定されます。 詳細については、「 Metadata Visibility Configuration」を参照してください。
Note
情報スキーマ ビューはサーバー全体で定義されているため、ユーザー データベースのコンテキスト内では拒否できません。 REVOKE または DENY アクセス (SELECT) を行うには、マスター データベースを使用する必要があります。 既定では、パブリック ロールにはすべての情報スキーマ ビューに対する SELECT アクセス許可がありますが、コンテンツはメタデータの表示ルールによって制限されます。