Microsoft SQL Server データベースのユーザー要件
Databricks への取り込みに使用する予定の Microsoft SQL Server データベース ユーザーに付与する権限について説明します。
Databricks では、Databricks 取り込みにのみ使用されるデータベース ユーザーを作成することをお勧めします。
データベース権限の付与
このセクションの表は、データベースのバリエーションに応じて、データベース・ユーザーが持つ必要がある権限をリストしています。これらの権限は、チェンジデータキャプチャ (CDC) と変更追跡のどちらを使用する場合でも必要です。 表には、各権限を付与するコマンドも示されています。
Azure 以外のデータベース
必要な権限 | コマンドを実行する場所 | 付与するコマンド |
|---|---|---|
| マスターデータベース | マスター データベースで次の T-SQL コマンドを実行します。 ```sql GRANT VIEW ANY DATABASE TO DATABASE_USER; |
master データベース内の次のシステムテーブルとビューへの読み取りアクセス。
| マスターデータベース | master データベースで次の T-SQL コマンドを実行します。 ```sql GRANT SELECT ON object::sys.databases to DATABASE_USER; GRANT SELECT ON object::sys.schemas to DATABASE_USER; GRANT SELECT ON object::sys.tables to DATABASE_USER; GRANT SELECT ON object::sys.columns to DATABASE_USER; GRANT SELECT ON object::sys.key_constraints to DATABASE_USER; GRANT SELECT ON object::sys.foreign_keys to DATABASE_USER; GRANT SELECT ON object::sys.check_constraints to DATABASE_USER; GRANT SELECT ON object::sys.default_constraints to DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_tables to DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_databases to DATABASE_USER; GRANT SELECT ON object::sys.objects to DATABASE_USER; GRANT SELECT ON object::sys.views to DATABASE_USER; GRANT SELECT ON object::sys.triggers to DATABASE_USER; |
master データベース内の次のシステムストアドプロシージャに対する実行権限:
| マスターデータベース | 取り込むデータベースで次の T-SQL コマンドを実行します。 ```sql GRANT EXECUTE ON object::sp_tables to DATABASE_USER; GRANT EXECUTE ON object::sp_columns_100 to DATABASE_USER; GRANT EXECUTE ON object::sp_pkeys to DATABASE_USER; GRANT EXECUTE ON object::sp_statistics_100 to DATABASE_USER; |
| 取り込むデータベース | 取り込むデータベース上で次の T-SQL コマンドを実行します。 ```sql USE DATABASE_NAME GRANT VIEW DATABASE PERFORMANCE STATE to DATABASE_USER; |
| 取り込むデータベース | 取り込むスキーマとテーブルごとに次の T-SQL コマンドを実行します。 ```sql GRANT SELECT ON schema::SCHEMA_NAME to DATABASE_USER; GRANT SELECT ON object::TABLE_NAME to DATABASE_USER; |
| 取り込むデータベース | 取り込むデータベースで次の T-SQL コマンドを実行します。 ```sql USE DATABASE_NAME GRANT SELECT ON object::sys.indexes to DATABASE_USER; GRANT SELECT ON object::sys.index_columns to DATABASE_USER; GRANT SELECT ON object::sys.columns to DATABASE_USER; GRANT SELECT ON object::sys.tables to DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns to DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes to DATABASE_USER; |
Azure SQL データベース
権限 | コマンドを実行する場所 | コマンド |
|---|---|---|
ユーザーがマスターにアクセスできるように、マスター データベース内の次のサーバー ロールのメンバーシップ:
| マスターデータベース | マスター データベースで次の T-SQL コマンドを実行します。 ```sql ALTER ROLE ##MS_DatabaseConnector## ADD MEMBER DATABASE_USER; |
取り込むデータベース内の次のシステムテーブルとビューへの読み取りアクセス:
| 取り込むデータベース | 取り込むデータベースで次の T-SQL コマンドを実行します。 ```sql GRANT SELECT ON object::sys.schemas TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.key_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.foreign_keys TO DATABASE_USER; GRANT SELECT ON object::sys.check_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.default_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_tables TO DATABASE_USER; GRANT SELECT ON object::sys.objects TO DATABASE_USER; GRANT SELECT ON object::sys.triggers TO DATABASE_USER; GRANT SELECT ON object::sys.indexes TO DATABASE_USER; GRANT SELECT ON object::sys.index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes TO DATABASE_USER; GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER; GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER; |
| 取り込むデータベース | 取り込むデータベース上で次の T-SQL コマンドを実行します。 ```sql GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER; |
Azure SQL Managed Instance
権限 | コマンドを実行する場所 | コマンド |
|---|---|---|
取り込むデータベース内の次のシステムテーブルとビューへの読み取りアクセス:
| 取り込むデータベース | 取り込むデータベースで次の T-SQL コマンドを実行します。 ```sql GRANT SELECT ON object::sys.schemas TO DATABASE_USER; GRANT SELECT ON object::sys.tables TO DATABASE_USER; GRANT SELECT ON object::sys.columns TO DATABASE_USER; GRANT SELECT ON object::sys.key_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.foreign_keys TO DATABASE_USER; GRANT SELECT ON object::sys.check_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.default_constraints TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_tables TO DATABASE_USER; GRANT SELECT ON object::sys.objects TO DATABASE_USER; GRANT SELECT ON object::sys.triggers TO DATABASE_USER; GRANT SELECT ON object::sys.indexes TO DATABASE_USER; GRANT SELECT ON object::sys.index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_index_columns TO DATABASE_USER; GRANT SELECT ON object::sys.fulltext_indexes TO DATABASE_USER; GRANT SELECT ON schema::SCHEMA_NAME TO DATABASE_USER; GRANT SELECT ON object::TABLE_NAME TO DATABASE_USER; |
データベースへの表示および読み取りアクセス:
| マスターデータベース | master データベースで次の T-SQL コマンドを実行します。 ```sql GRANT VIEW ANY DATABASE TO DATABASE_USER; GRANT SELECT ON sys.databases TO DATABASE_USER; GRANT SELECT ON object::sys.change_tracking_databases TO DATABASE_USER; |
次のシステムストアドプロシージャに対する実行権限:
| マスターデータベース | master データベースで次の T-SQL コマンドを実行します。 ```sql GRANT EXECUTE ON object::sp_tables TO DATABASE_USER; GRANT EXECUTE ON object::sp_columns_100 TO DATABASE_USER; GRANT EXECUTE ON object::sp_pkeys TO DATABASE_USER; GRANT EXECUTE ON object::sp_statistics_100 TO DATABASE_USER; |
| 取り込むデータベース | 取り込むデータベース上で次の T-SQL コマンドを実行します。 ```sql USE DATABASE_NAME GRANT VIEW DATABASE PERFORMANCE STATE TO DATABASE_USER; |
チェンジデータキャプチャ (CDC) 権限の要件
CDC が有効になっている場合は、DDL サポート オブジェクトに対する追加の権限が必要です。「ユーティリティ オブジェクト スクリプトを使用して SQL Server の取り込みを準備する」を参照してください。
変更追跡の権限要件
変更追跡が有効になっている場合は、DDL サポート オブジェクトに対する追加の権限が必要です。「ユーティリティ オブジェクト スクリプトを使用して SQL Server の取り込みを準備する」を参照してください。