メインコンテンツまでスキップ

SQL Server データベースのユーザー特権の要件

備考

プレビュー

Microsoft SQL Server コネクタは、ゲート パブリック プレビュー段階です。プレビューに参加するには、Databricks アカウント チームにお問い合わせください。

この記事では、SQL Server Databricksを使用して に取り込むために使用する予定の データベースLakeFlow Connect ユーザーに付与する必要がある特権について説明します。

Databricks では、Databricks インジェストにのみ使用されるデータベース ユーザーを作成することをお勧めします。

一般的な特権要件

このデータベース・ユーザーは、ソース・データベースでのデータ変更の追跡に使用する方法に関係なく、次の権限を持っている必要があります。

権限

master データベース 上の次のシステムテーブルとビューへの読み取りアクセス。

  • sys.databases
  • sys.schemas
  • sys.tables
  • sys.columns
  • sys.key_constraints
  • sys.foreign_keys
  • sys.check_constraints
  • sys.default_constraints
  • sys.change_tracking_tables
  • sys.change_tracking_databases
  • sys.objects
  • sys.triggers

取り込むデータベース に対する次のシステム・ストアド・プロシージャに対する権限を実行します。

  • sp_tables
  • sp_columns_100
  • sp_pkeys
  • sp_statistics_100

SELECT 取り込むスキーマとテーブル。

取り込むデータベース に対する次のSELECT権限。

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 Database アクセスは、異なる方法で管理されます。データベースへのアクセス権をユーザーに付与するには、次のロールを割り当てます。

  • db_datareader: ユーザーは、すべてのユーザーテーブルからデータを読み取ることができます。
  • db_datawriter: ユーザーは、すべてのユーザーテーブルのデータを追加、削除、または変更できます。
  • db_ddladmin: データベースで DDL コマンドを実行できるようにします。

チェンジデータキャプチャ (CDC) privilege requirements

注記

CDC を有効にするときに DDL サポートオブジェクトスクリプトで replicationUser 変数を設定すると、スクリプトによってこれらの権限が付与されます。これらを手動で付与する必要があるのは、スクリプトで replicationUser が設定されていない場合のみです。

チェンジデータキャプチャ (CDC) には、次の権限も必要です。

GRANT VIEW DEFINITION ON object::dbo.lakeflowDisableOldCaptureInstance_1_1 TO <database-user>;
GRANT VIEW DEFINITION ON object::dbo.lakeflowRefreshCaptureInstance_1_1 TO <database-user>;
GRANT VIEW DEFINITION ON object::dbo.lakeflowMergeCaptureInstances_1_1 TO <database-user>;
GRANT VIEW DEFINITION TO <database-user>;
GRANT VIEW DATABASE PERFORMANCE STATE TO <database-user>;
GRANT UPDATE ON object::dbo.lakeflowCaptureInstanceInfo_1_1 TO <database-user>;
GRANT EXECUTE ON schema :: dbo TO <database-user>;
GRANT EXECUTE ON object::dbo.lakeflowMergeCaptureInstances_1_1 TO <database-user>;
GRANT EXECUTE ON object::dbo.lakeflowDisableOldCaptureInstance_1_1 TO <database-user>;
GRANT EXECUTE ON object::dbo.lakeflowRefreshCaptureInstance_1_1 TO <database-user>;

変更追跡の権限要件

注記

変更追跡を有効にするときに DDL サポート オブジェクト スクリプトで replicationUser 変数を設定すると、スクリプトによってこれらの特権が付与されます。これらを手動で付与する必要があるのは、スクリプトで replicationUser が設定されていない場合のみです。

変更の追跡には、次のアクセス許可も必要です。

GRANT VIEW CHANGE TRACKING ON OBJECT::dbo.lakeflowDdlAudit_1_1 TO <database-user>;
GRANT VIEW DEFINITION ON DATABASE::<database-name> TO <database-user>;