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

PostgreSQLデータベースユーザー要件

備考

プレビュー

LakeFlow ConnectのPostgreSQLコネクタはパブリック プレビュー段階です。 パブリック プレビューに登録するには、Databricks アカウント チームにお問い合わせください。

このページでは、Databricks の取り込み用に作成する PostgreSQL レプリケーション ユーザーに必要な権限について説明します。

標準PostgreSQL

必要な権限

コマンドを実行する場所

許可するコマンド

REPLICATION ロール

データベース クラスター (スーパーユーザーが必要)

次の SQL コマンドを実行します。 ```sql CREATE USER databricks_replication WITH PASSWORD 'your_secure_password'; ALTER USER databricks_replication WITH REPLICATION;

CONNECT データベースに対する権限

ターゲットデータベース

次の SQL コマンドを実行します。 ```sql GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE スキーマに対する権限

ターゲットデータベース

各スキーマに対して次の SQL コマンドを実行します。 ```sql GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT テーブルに対する権限

ターゲットデータベース

各テーブルまたはスキーマに対して次の SQL コマンドを実行します。

SQL
-- For specific tables
GRANT SELECT ON TABLE schema_name.table_name TO databricks_replication;

-- For all tables in a schema
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO databricks_replication;

-- For future tables in a schema
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO databricks_replication;

AWS RDS と Aurora PostgreSQL

必要な権限

コマンドを実行する場所

許可するコマンド

rds_replication ロール

任意のデータベース

次の SQL コマンドを実行します。 ```sql CREATE USER databricks_replication WITH PASSWORD 'your_secure_password'; GRANT rds_replication TO databricks_replication;

CONNECT データベースに対する権限

ターゲットデータベース

次の SQL コマンドを実行します。 ```sql GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE スキーマに対する権限

ターゲットデータベース

各スキーマに対して次の SQL コマンドを実行します。 ```sql GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT テーブルに対する権限

ターゲットデータベース

各テーブルまたはスキーマに対して次の SQL コマンドを実行します。

SQL
-- For specific tables
GRANT SELECT ON TABLE schema_name.table_name TO databricks_replication;

-- For all tables in a schema
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO databricks_replication;

-- For future tables in a schema
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO databricks_replication;
注記

AWS RDS および Aurora の場合、スーパーユーザー権限は必要ありません。rds_replicationロールは必要なレプリケーション権限を提供します。

PostgreSQL 用 Azure データベース

必要な権限

コマンドを実行する場所

許可するコマンド

REPLICATION ロール

ターゲットデータベース

次の SQL コマンドを実行します。 ```sql CREATE USER databricks_replication WITH PASSWORD 'your_secure_password'; ALTER USER databricks_replication WITH REPLICATION;

CONNECT データベースに対する権限

ターゲットデータベース

次の SQL コマンドを実行します。 ```sql GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE スキーマに対する権限

ターゲットデータベース

各スキーマに対して次の SQL コマンドを実行します。 ```sql GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT テーブルに対する権限

ターゲットデータベース

各テーブルまたはスキーマに対して次の SQL コマンドを実行します。

SQL
-- For specific tables
GRANT SELECT ON TABLE schema_name.table_name TO databricks_replication;

-- For all tables in a schema
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO databricks_replication;

-- For future tables in a schema
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO databricks_replication;
注記

Azure Database for PostgreSQL フレキシブル サーバーの場合は、サーバー パラメーターで論理レプリケーションが有効になっていることを確認します。単一サーバーの場合、サーバーazure_replication_supportREPLICAに設定する必要があります。

GCPクラウドSQL for PostgreSQL

必要な権限

コマンドを実行する場所

許可するコマンド

REPLICATION ロール

ターゲットデータベース

次の SQL コマンドを実行します。 ```sql CREATE USER databricks_replication WITH PASSWORD 'your_secure_password'; ALTER USER databricks_replication WITH REPLICATION;

CONNECT データベースに対する権限

ターゲットデータベース

次の SQL コマンドを実行します。 ```sql GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE スキーマに対する権限

ターゲットデータベース

各スキーマに対して次の SQL コマンドを実行します。 ```sql GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT テーブルに対する権限

ターゲットデータベース

各テーブルまたはスキーマに対して次の SQL コマンドを実行します。

SQL
-- For specific tables
GRANT SELECT ON TABLE schema_name.table_name TO databricks_replication;

-- For all tables in a schema
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO databricks_replication;

-- For future tables in a schema
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO databricks_replication;

システムカタログ権限

レプリケーション ユーザーには、すべての PostgreSQL プラットフォームのシステム カタログ テーブルに対するSELECT権限が必要です。

ターゲット データベースで次の SQL コマンドを実行します。

SQL
GRANT SELECT ON pg_catalog.pg_publication TO databricks_replication;
GRANT SELECT ON pg_catalog.pg_replication_slots TO databricks_replication;
GRANT SELECT ON pg_catalog.pg_namespace TO databricks_replication;
GRANT SELECT ON pg_catalog.pg_class TO databricks_replication;
GRANT SELECT ON pg_catalog.pg_attribute TO databricks_replication;
GRANT SELECT ON pg_catalog.pg_type TO databricks_replication;
GRANT SELECT ON pg_catalog.pg_index TO databricks_replication;

レプリケーションユーザー権限を確認する

必要な権限を付与した後、レプリケーション ユーザーに正しい権限があることを確認します。

SQL
-- Check replication privilege
SELECT rolname, rolreplication FROM pg_roles WHERE rolname = 'databricks_replication';

-- Check table privileges
SELECT grantee, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'databricks_replication' AND table_schema = 'your_schema';

-- Check schema privileges
SELECT nspname, has_schema_privilege('databricks_replication', nspname, 'USAGE') AS has_usage
FROM pg_namespace
WHERE nspname = 'your_schema';