sys.databases (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric の SQL 分析エンドポイントMicrosoft Fabric のウェアハウス

SQL Serverのインスタンスに、データベースごとに 1 行のデータを保持します。

データベースが設定されていない ONLINE場合、または AUTO_CLOSE データベース ON が閉じられている場合は、一部の列の値を NULL指定できます。 データベースが OFFLINE である場合、対応する行は、権限の低いユーザーに対して表示されません。 データベースが OFFLINE である場合、対応する行を表示するには、ユーザーが少なくともサーバー レベルの ALTER ANY DATABASE アクセス許可、または master データベースの CREATE DATABASE アクセス許可を持っている必要があります。

列名 データ型 説明
name sysname データベースの名前。SQL Server のインスタンス内または Azure SQL Database 論理サーバー内で一意です。
database_id int データベースの ID。SQL Server のインスタンス内で一意です。

Azure SQL Database では、値は論理サーバー内で一意であり、列のsys.database_service_objectivesdatabase_id結合できますが、列が存在する他のdatabase_idシステム ビューには参加できません。 詳細については、「DB_ID」を参照してください。
source_database_id int NULL 以外 = このデータベース スナップショットのソース データベースの ID です。
NULL = データベース スナップショットではありません。
owner_sid varbinary(85) サーバーに登録したデータベースの外部所有者の SID (セキュリティ識別子) です。 データベースを所有できるユーザーの詳細については、「ALTER AUTHORIZATION」の 「データベースに対する ALTER AUTHORIZATION」セクションを参照してください。
create_date datetime データベースの作成または名前の変更を行った日付です。 tempdb では、この値はサーバーが再起動されるたびに変わります。 create_dateは、Azure SQL Database で名前変更操作を実行しても変更されません。
compatibility_level tinyint 動作に互換性のある SQL Server のバージョンに対応する整数です。

70 - SQL Server 7.0 から SQL Server 2008 (10.0.x)

80 - SQL Server 2000 (8.x) から SQL Server 2008 R2 (10.50.x)

90 - SQL Server 2008 (10.0.x) から SQL Server 2012 (11.x)

100 - SQL Server 2008 (10.0.x) 以降のバージョンと Azure SQL Database

110 - SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database

120 - SQL Server 2014 (12.x) 以降のバージョンと Azure SQL Database

130 - SQL Server 2016 (13.x) 以降のバージョンと Azure SQL Database

140 - SQL Server 2017 (14.x) 以降のバージョンと Azure SQL Database

150 - SQL Server 2019 (15.x) 以降のバージョンと Azure SQL Database

160 - SQL Server 2022 (16.x) 以降のバージョンと Azure SQL Database
collation_name sysname データベースの照合順序です。 データベースの既定の照合順序として機能します。
NULL = データベースがオンラインではないか、AUTO_CLOSE が ON に設定されており、データベースが閉じられています。
user_access tinyint ユーザー アクセス設定です。
0 = MULTI_USER が指定されています。
1 = SINGLE_USER が指定されています。
2 = RESTRICTED_USER が指定されています。
user_access_desc nvarchar(60) ユーザー アクセス設定の説明です。
is_read_only bit 1 = データベースは READ_ONLY です。
0 = データベースは READ_WRITE です。
is_auto_close_on bit 1 = AUTO_CLOSE は ON です。
0 = AUTO_CLOSE は OFF です。
is_auto_shrink_on bit 1 = AUTO_SHRINK は ON です。
0 = AUTO_SHRINK は OFF です。
状態 tinyint Value
0 = ONLINE
1 = RESTORING
2 = RECOVERING 1
3 = RECOVERY_PENDING 1
4 = SUSPECT
5 = EMERGENCY 1
6 = OFFLINE 1
7 = COPYING 2
10 = OFFLINE_SECONDARY 2

注: Always On データベースの場合、sys.dm_hadr_database_replica_statesdatabase_state または database_state_desc 列のクエリを実行します。

1適用対象: SQL Server 2008 (10.0.x) 以降のバージョンと Azure SQL Database
2適用対象: Azure SQL Database のアクティブ geo レプリケーション
state_desc nvarchar(60) データベースの状態の説明。 状態を確認します。
is_in_standby bit データベースは、復元ログに対し、読み取り専用です。
is_cleanly_shutdown bit 1 = データベースはクリーンにシャットダウンされ、起動時に復旧処理は必要ありません。
0 = データベースはクリーンにシャットダウンされなかったため、起動時に復旧処理が必要です
is_supplemental_logging_enabled bit 1 = SUPPLEMENTAL_LOGGING は ON です。
0 = SUPPLEMENTAL_LOGGING は OFF です。
snapshot_isolation_state tinyint ALLOW_SNAPSHOT_ISOLATION オプションで設定された、許可されているスナップショット分離トランザクションの状態:
0 = スナップショット分離の状態は OFF です (既定)。 スナップショット分離は許可されていません。
1 = スナップショット分離の状態は ON です。 スナップショット分離は許可されています。
2 = スナップショット分離状態が OFF 状態に遷移しています。 すべてのトランザクションで、その変更がバージョン管理されます。 スナップショット分離を使って新しいトランザクションを開始できません。 ALTER DATABASE が実行されたときにアクティブだったすべてのトランザクションが完了するまで、データベースは OFF に移行中の状態となります。
3 = スナップショット分離状態が ON 状態に遷移しています。 新しいトランザクションの変更はバージョン管理されます。 スナップショット分離状態が 1 (ON) になるまで、トランザクションではスナップショット分離を使用できません。 ALTER DATABASE が実行されたときにアクティブだったすべての更新が完了するまで、データベースは ON 状態に遷移中のままです。
snapshot_isolation_state_desc nvarchar(60) ALLOW_SNAPSHOT_ISOLATION オプションで設定された、許可されているスナップショット分離トランザクションの状態の説明。
is_read_committed_snapshot_on bit 1 = READ_COMMITTED_SNAPSHOT オプションは ON です。 READ COMMITTED 分離レベルでの読み取り操作は、スナップショット スキャンに基づいており、ロックを取得しません。
0 = READ_COMMITTED_SNAPSHOT オプションは OFF です (既定)。 読み取りコミットされた分離レベルでの読み取り操作では、共有ロックが使用されます。
recovery_model tinyint 選択される復旧モデルです。
1 = FULL
2 = BULK_LOGGED
3 = SIMPLE
recovery_model_desc nvarchar(60) 選択された復旧モデルの説明。
page_verify_option tinyint PAGE_VERIFY オプションの設定です。
0 = NONE
1 = TORN_PAGE_DETECTION
2 = CHECKSUM
page_verify_option_desc nvarchar(60) PAGE_VERIFY オプション設定の説明。
is_auto_create_stats_on bit 1 = AUTO_CREATE_STATISTICS は ON です。
0 = AUTO_CREATE_STATISTICS は OFF です。
is_auto_create_stats_incremental_on bit 自動統計の増分オプションの既定の設定を示します。
0 = 統計の自動生成は増分ではありません
1 = 可能な場合、統計の自動生成は増分です

適用対象: SQL Server 2014 (12.x) 以降のバージョン。
is_auto_update_stats_on bit 1 = AUTO_UPDATE_STATISTICS は ON です。
0 = AUTO_UPDATE_STATISTICS は OFF です。
is_auto_update_stats_async_on bit 1 = AUTO_UPDATE_STATISTICS_ASYNC は ON です。
0 = AUTO_UPDATE_STATISTICS_ASYNC は OFF です。
is_ansi_null_default_on bit 1 = ANSI_NULL_DEFAULT は ON です。
0 = ANSI_NULL_DEFAULT は OFF です。
is_ansi_nulls_on bit 1 = ANSI_NULLS は ON です。
0 = ANSI_NULLS は OFF です。
is_ansi_padding_on bit 1 = ANSI_PADDING は ON です。
0 = ANSI_PADDING は OFF です。
is_ansi_warnings_on bit 1 = ANSI_WARNINGS は ON です。
0 = ANSI_WARNINGS は OFF です。
is_arithabort_on bit 1 = ARITHABORT は ON です。
0 = ARITHABORT は OFF です。
is_concat_null_yields_null_on bit 1 = CONCAT_NULL_YIELDS_NULL は ON です。
0 = CONCAT_NULL_YIELDS_NULL は OFF です。
is_numeric_roundabort_on bit 1 = NUMERIC_ROUNDABORT は ON です。
0 = NUMERIC_ROUNDABORT は OFF です。
is_quoted_identifier_on bit 1 = QUOTED_IDENTIFIER は ON です。
0 = QUOTED_IDENTIFIER は OFF です。
is_recursive_triggers_on bit 1 = RECURSIVE_TRIGGERS は ON です。
0 = RECURSIVE_TRIGGERS は OFF です。
is_cursor_close_on_commit_on bit 1 = CURSOR_CLOSE_ON_COMMIT は ON です。
0 = CURSOR_CLOSE_ON_COMMIT は OFF です。
is_local_cursor_default bit 1 = CURSOR_DEFAULT はローカルです。
0 = CURSOR_DEFAULT はグローバルです。
is_fulltext_enabled bit 1 = データベースに対してフルテキストが有効です。
0 = データベースに対してフルテキストが無効です。
is_trustworthy_on bit 1 = データベースは信頼できるものとしてマークされています。
0 = データベースは信頼できるものとしてマークされていません
既定では、復元された、またはアタッチされたデータベースの Trustworthy は有効になっていません。
is_db_chaining_on bit 1 = 複数データベースの組み合わせ所有権は ON です。
0 = 複数データベースの組み合わせ所有権は OFF です。
is_parameterization_forced bit 1 = パラメーター化は FORCED です。
0 = パラメーター化は SIMPLE です。
is_master_key_encrypted_by_server bit 1 = データベースは暗号化されたマスター キーを保有しています。
0 = データベースは暗号化されたマスター キーを保有していません
is_query_store_on bit 1 = このデータベースに対してクエリ ストアは有効になっています。 sys.database_query_store_options を確認して、クエリ ストアの状態を表示します。
0 = クエリ ストアが有効になっていません

適用対象: SQL Server 2016 (13.x) 以降のバージョン。
is_published bit 1 = データベースは、トランザクション レプリケーション トポロジまたはスナップショット レプリケーション トポロジにおけるパブリケーション データベースです。
0 = パブリケーション データベースではありません
is_subscribed bit この列は使用されません。 データベースのサブスクライバーの状態に関係なく、常に 0 を返します。
is_merge_published bit 1 = データベースは、マージ レプリケーション トポロジにおけるパブリケーション データベースです。
0 = マージ レプリケーション トポロジにおけるパブリケーション データベースではありません
is_distributor bit 1 = データベースは、レプリケーション トポロジにおけるディストリビューション データベースです。
0 = レプリケーション トポロジにおけるディストリビューション データベースではありません
is_sync_with_backup bit 1 = データベースはバックアップとのレプリケーション同期用に設定されています。
0 = バックアップとのレプリケーション同期用に設定されていません
service_broker_guid uniqueidentifier このデータベースの Service Broker の識別子です。 ルーティング テーブルでターゲットの broker_instance として使用されます。
is_broker_enabled bit 1 = このデータベースのブローカーは現在メッセージを送受信中です。
0 = このデータベースでは、すべての送信メッセージは転送キューにとどまり、受信メッセージはキューに配置されません。
既定では、復元されたデータベースまたはアタッチされたデータベースでは、ブローカーは無効になります。 ただし、フェールオーバー後にブローカーが有効になるデータベース ミラーリングは例外です。
log_reuse_wait tinyint トランザクション ログ領域の再利用は、前回のチェックポイントの時点で、次のいずれかで現在待機中です。 これらの値の詳細については、トランザクション ログを参照してください

Value

0 = なし
1 = チェックポイント (データベースにメモリ最適化データ ファイル グループがある場合、log_reuse_wait 列は checkpoint または xtp_checkpoint を示します) 1
2 = ログ バックアップ 1
3 = アクティブなバックアップまたは復元 1
4 = アクティブなトランザクション 1
5 = データベース ミラーリング 1
6 = レプリケーション 1
7 = データベース スナップショットの作成 1
8 = ログ スキャン
9 = Always On 可用性グループのセカンダリ レプリカによって、このデータベースのトランザクション ログ レコードが対応するセカンダリ データベースに適用中です。 2
9 = その他 (一時的) 3
10 = 内部使用のみ 2
11 = 内部使用のみ 2
12 = 内部使用のみ 2
13 = 最も古いページ 2
14 = その他 2
16 = XTP_CHECKPOINT (データベースにメモリ最適化データ ファイル グループがある場合、log_reuse_wait 列は checkpoint または xtp_checkpoint を示します) 4
17 = Accelerated Database Recovery の使用時の sLog スキャン 5

1適用対象: SQL Server 2008 (10.0.x) 以降のバージョン
2適用対象: SQL Server 2012 (11.x) 以降のバージョン
3適用対象: SQL Server 2008 R2 (10.50.x) 以前のバージョン
4適用対象: SQL Server 2014 (12.x) 以降のバージョン
5適用対象: SQL Server 2019 (15.x) 以降のバージョン
log_reuse_wait_desc nvarchar(60) 前回のチェックポイントの時点で現在待機中の、トランザクション ログ領域の再利用の理由の説明です。 指定できる値
NOTHING
CHECKPOINT
LOG_BACKUP
ACTIVE_BACKUP_OR_RESTORE
ACTIVE_TRANSACTION
DATABASE_MIRRORING
レプリケーション
DATABASE_SNAPSHOT_CREATION
LOG_SCAN
AVAILABILITY_REPLICA
OLDEST_PAGE
XTP_CHECKPOINT
SLOG_SCAN
is_date_correlation_on bit 1 = DATE_CORRELATION_OPTIMIZATION は ON です。
0 = DATE_CORRELATION_OPTIMIZATION は OFF です。
is_cdc_enabled bit 1 = データベースで変更データ キャプチャが有効になっています。 詳細については、「sys.sp_cdc_enable_db (Transact-SQL)」を参照してください。
is_encrypted bit データベースが暗号化されているかどうかを示します (ALTER DATABASE SET ENCRYPTION 句を使用して最後に設定された状態を反映します)。 値は、次のいずれかです。
1 = 暗号化
0 = 暗号化されていない
データベース暗号化の詳細については、「Transparent Data Encryption (TDE)」を参照してください
データベースで暗号化解除の処理が実行中の場合、is_encryptedは値 0 を示します。 データベースの暗号化処理の状態を確認するには、sys.dm_database_encryption_keys 動的管理ビューを使用します。
is_honor_broker_priority_on bit データベースが会話の優先順位を尊重するかどうかを示します (ALTER DATABASE SET HONOR_BROKER_PRIORITY 句を使用して最後に設定された状態を反映します)。 値は、次のいずれかです。
1 = HONOR_BROKER_PRIORITY は ON です。
0 = HONOR_BROKER_PRIORITY は OFF です。
既定では、復元されたデータベースまたはアタッチされたデータベースのブローカー優先順位はオフになっています。
replica_id uniqueidentifier データベースが参加している可用性グループ (存在する場合) のローカル Always On 可用性グループの可用性レプリカの一意識別子。
NULL = データベースは可用性グループの可用性レプリカの一部ではありません。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
group_database_id uniqueidentifier データベースが参加している Always On 可用性グループ (存在する場合) 内のデータベースの一意識別子です。 group_database_id は、プライマリ レプリカ上のこのデータベースと、データベースが可用性グループに参加しているすべてのセカンダリ レプリカ上のデータベースで同じです。
NULL = データベースは、どの可用性グループの可用性レプリカの一部でもありません。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
resource_pool_id int このデータベースにマップされるリソース プールの ID。 このリソース プールは、このデータベース内のメモリ最適化テーブルで使用できる合計メモリを制御します。

適用対象: SQL Server 2014 (12.x) 以降のバージョン
default_language_lcid smallint 包含データベースの既定の言語のローカル ID (LCID) を示します。

注: の既定の 言語を構成する (サーバー構成オプション)sp_configureとして機能します。 非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
default_language_name nvarchar(128) 包含データベースの既定の言語を示します。
非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
default_fulltext_language_lcid int 包含データベースの既定のフルテキスト言語のローカル ID (LCID) を示します。

注: デフォルト として機能します デフォルトのフルテキスト言語を設定して下さい(サーバ設定オプション)sp_configure. 非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
default_fulltext_language_name nvarchar(128) 包含データベースの既定のフルテキスト言語を示します。
非包含データベースの場合、この値は null です。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
is_nested_triggers_on bit 包含データベースで入れ子になったトリガーが許可されるかどうかを示します。
0 = 入れ子になったトリガーは許可されません
1 = 入れ子になったトリガーは許可されます。

注: 入れ子になったトリガーの構成 (サーバー構成オプション)sp_configureとして機能します。 非包含データベースの場合、この値は null です。 詳しくは、「sys.configurations (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
is_transform_noise_words_on bit 包含データベースでノイズ ワードを変換する必要があるかどうかを示します。
0 = ノイズ ワードは変換する必要がありません。
1 = ノイズ ワードは変換する必要があります。

注:[ノイズ ワード変換] サーバー構成オプションを構成するsp_configure として機能します。 非包含データベースの場合、この値は null です。 詳しくは、「sys.configurations (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 (11.x) 以降のバージョン
two_digit_year_cutoff smallint 2 桁の数字を 4 桁の西暦として解釈する場合の区切りの年を表す 1753 ~ 9999 の範囲の数値を示します。

注: 2 桁の年の カットオフを設定する (サーバー構成オプション)sp_configureとして機能します。 非包含データベースの場合、この値は null です。 詳しくは、「sys.configurations (Transact-SQL)」を参照してください。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
containment tinyint (null 値以外) データベースの包含状態を示します。
0 = データベースの包含がオフ。 適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
1 = データベースが部分包含に含まれています 適用対象: SQL Server 2012 (11.x) 以降のバージョン
containment_desc nvarchar(60) (null 値以外) データベースの包含状態を示します。
NONE = 従来のデータベース (包含なし)
PARTIAL = 部分的包含データベース

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
target_recovery_time_in_seconds int データベースの推定復旧時間 (秒) です。 NULL 値は許可されます。

適用対象: SQL Server 2012 (11.x) 以降のバージョンと Azure SQL Database
delayed_durability int 遅延持続性の設定:
0 = DISABLED
1 = ALLOWED
2 = FORCED
詳しくは、「トランザクションの持続性の制御」をご覧ください。

適用対象: SQL Server 2014 (12.x) 以降のバージョンと Azure SQL Database。
delayed_durability_desc nvarchar(60) 遅延持続性の設定:
DISABLED
ALLOWED
FORCED

適用対象: SQL Server 2014 (12.x) 以降のバージョンと Azure SQL Database。
is_memory_optimized_elevate_to_snapshot_on bit セッション設定 TRANSACTION ISOLATION LEVEL が低い分離レベル (READ COMMITTED または READ UNCOMMITTED) に設定されている場合は、SNAPSHOT 分離を使用してメモリ最適化テーブルにアクセスします。
1 = 最小分離レベルは SNAPSHOT です。
0 = 分離レベルは昇格されません。
is_federation_member bit データベースがフェデレーションのメンバーであるかどうかを示します。

適用対象: Azure SQL データベース
is_remote_data_archive_enabled bit データベースが拡張されているかどうかを示します。
0 = データベースは Stretch 対応ではありません。
1 = データベースは Stretch 対応です。

適用対象: SQL Server 2016 (13.x) 以降のバージョン
詳細については、「Stretch Database」を参照してください。
is_mixed_page_allocation_on bit データベース内のテーブルとインデックスが、混合エクステントから初期ページを割り当てることができるかどうかを示します。
0 = データベース内のテーブルとインデックスは、初期ページを常に均一なエクステントから割り当てます。
1 = データベース内のテーブルとインデックスは、初期ページを混合エクステントから割り当てることができます。
詳細については、「ALTER DATABASE の SET オプション (Transact-SQL)」の「SET MIXED_PAGE_ALLOCATION」オプションを参照してください。

適用対象: SQL Server 2016 (13.x) 以降のバージョン
is_temporal_history_retention_enabled bit テンポラル アイテム保持ポリシーのクリーンアップ タスクが有効かどうかを示します。

1 = テンポラル保持が有効
0 = テンポラル保持が無効

適用対象: SQL Server 2017 (14.x) 以降のバージョンと Azure SQL Database
catalog_collation_type int カタログ照合順序の設定:
0 = DATABASE_DEFAULT
2 = SQL_Latin_1_General_CP1_CI_AS

適用対象: Azure SQL データベース
catalog_collation_type_desc nvarchar(60) カタログ照合順序の設定:
COLLATE
SQL_Latin_1_General_CP1_CI_AS

適用対象: Azure SQL データベース
physical_database_name nvarchar(128) SQL Server の場合、データベースの物理名。 Azure SQL Database の場合、ユーザー データベースに対応する現在の物理データベースの一意識別子。 データベース サービス レベルの目標を変更するか、データベースを復元すると、この値が変更されます。

適用対象: SQL Server 2019 (15.x) 以降のバージョンと Azure SQL Database
is_result_set_caching_on bit 結果セットのキャッシュが有効かどうかを示します。
1 = 結果セットのキャッシュは有効
0 = 結果セットのキャッシュは無効

適用対象: Azure Synapse Analytics Gen2。 この機能はすべてのリージョンにロールアウトされますが、お使いのインスタンスにデプロイされるバージョンを確認してください。また、機能の可用性については、最新の Azure Synapse リリースノートおよび Gen2 のアップグレード スケジュールを確認してください。
is_accelerated_database_recovery_on bit 高速データベース復旧 (ADR) が有効かどうかを示します。
1 = ADR は有効
0 = ADR は無効

適用対象: SQL Server 2019 (15.x) 以降のバージョンと Azure SQL Database
is_tempdb_spill_to_remote_store bit リモート ストアへの tempdb スピルが有効かどうかを示します。
1 = 有効
0 = 無効

適用対象: Azure Synapse Analytics Gen2。 この機能はすべてのリージョンにロールアウトされますが、お使いのインスタンスにデプロイされるバージョンを確認してください。また、機能の可用性については、最新の Azure Synapse リリースノートおよび Gen2 のアップグレード スケジュールを確認してください。
is_stale_page_detection_on bit 古いページ検出が有効かどうかを示します。
1 = 古いページ検出は有効
0 = 古いページ検出は無効

適用対象: Azure Synapse Analytics Gen2。 この機能はすべてのリージョンにロールアウトされますが、お使いのインスタンスにデプロイされるバージョンを確認してください。また、機能の可用性については、最新の Azure Synapse リリースノートおよび Gen2 のアップグレード スケジュールを確認してください。
is_memory_optimized_enabled bit ハイブリッド バッファー プールなどの特定のメモリ内機能がデータベースに対して有効になっているかどうかを示します。 インメモリ OLTP の概要と使用シナリオ可用性または構成状態は反映されません。
1 = メモリ最適化機能は有効
0 = メモリ最適化機能は無効

適用対象: SQL Server 2019 (15.x) 以降のバージョンと Azure SQL Database
is_data_retention_on bit Azure Edge データベースに対してデータ保有期間有効かどうかを示します。

適用対象: Azure SQL Edge
is_ledger_on bit 台帳データベースを示します。これは、すべてのユーザー テーブルが台帳テーブルであるデータベースです (すべての顧客データベースは改ざんが明らかになります)。

適用対象: SQL Server 2022 (16.x) 以降のバージョン、および Azure SQL Database
is_change_feed_enabled bit 現在のデータベースが Azure Synapse Link for SQL に対して 有効になっているかどうかを示します

適用対象: SQL Server 2022 (16.x) 以降のバージョン、および Azure SQL Database

アクセス許可

sys.databases の呼び出し元がデータベースの所有者ではなく、データベースが master でも tempdb でもない場合、対応する行を表示するには、master データベースで、ALTER ANY DATABASE または VIEW ANY DATABASE のサーバーレベルのアクセス許可、あるいは、CREATE DATABASE のアクセス許可が最小限必要です。 呼び出し元が接続しているデータベースは常に sys.databases で確認できます。

重要

既定では、パブリック ロールにはVIEW ANY DATABASE アクセス許可があり、すべてのログインでデータベース情報を表示できます。 ログインでデータベースが検出されるのを阻止するには、public から VIEW ANY DATABASE アクセス許可を REVOKE するか、または、個々のログインに対して VIEW ANY DATABASE アクセス許可を DENY します。

解説

Azure SQL Database では、master データベースとユーザー データベースでこのビューを使用できます。 master データベースでは、master データベースとサーバー上のすべてのユーザー データベースに関する情報がこのビューに返されます。 ユーザー データベースでは、このビューは現在のデータベースと master データベースに関する情報のみを返します。

新しいデータベースが作成される Azure SQL Database サーバー サーバーの master データベースの sys.databases ビューを使用します。 データベースのコピーが開始された後で、コピー先サーバーの master データベースから sys.databasessys.dm_database_copies のビューに対してクエリを実行して、コピーの進行状況に関する詳細を取得できます。

A. sys.databases ビューに対してクエリを実行する

次の例では、sys.databases ビューで使用できる列をいくつか返します。

SELECT name, user_access_desc, is_read_only, state_desc, recovery_model_desc
FROM sys.databases;

B. SQL Database で、コピーの状態を確認する

次の例では、sys.databases ビューと sys.dm_database_copies ビューに対してクエリを実行し、データベースのコピー操作に関する情報を返します。

適用対象: Azure SQL データベース

-- Execute from the master database.
SELECT a.name, a.state_desc, b.start_date, b.modify_date, b.percent_complete
FROM sys.databases AS a
INNER JOIN sys.dm_database_copies AS b ON a.database_id = b.database_id
WHERE a.state = 7;

C. SQL Database でテンポラル保持ポリシーの状態を確認する

次の例では、sys.databases ビューに対してクエリを実行し、テンポラ保持のクリーンアップ タスクが有効かどうかに関する情報を返します。 既定では、復元操作後のテンポラル保持は無効になっています。 これを明示的に有効にするには、ALTER DATABASE を使用します。

適用対象: Azure SQL データベース

-- Execute from the master database.
SELECT a.name, a.is_temporal_history_retention_enabled
FROM sys.databases AS a;