Aller au contenu principal

Exigences relatives aux utilisateurs de la base de données PostgreSQL

info

Aperçu

Le connecteur PostgreSQL pour Lakeflow Connect est en aperçu public. Contactez votre équipe de compte Databricks pour vous inscrire à l'aperçu public.

Cette page décrit les privilèges requis pour l'utilisateur de réplication PostgreSQL que vous créez pour l'ingestion Databricks.

PostgreSQL standard

Privilèges requis

Où exécuter les commandes

Commandes à accorder

REPLICATION rôle

Cluster de base de données (super-utilisateur requis)

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
ALTER USER databricks_replication WITH REPLICATION;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;

Privilèges requis

Où exécuter les commandes

Commandes à accorder

REPLICATION rôle

Cluster de base de données (super-utilisateur requis)

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
ALTER USER databricks_replication WITH REPLICATION;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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 et Aurora PostgreSQL

Privilèges requis

Où exécuter les commandes

Commandes à accorder

rds_replication rôle

Toute base de données

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
GRANT rds_replication TO databricks_replication;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;

Privilèges requis

Où exécuter les commandes

Commandes à accorder

rds_replication rôle

Toute base de données

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
GRANT rds_replication TO databricks_replication;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;
remarque

Pour AWS RDS et Aurora, vous n'avez pas besoin de privilèges de superutilisateur. Le rôle rds_replication fournit les privilèges de réplication nécessaires.

Base de données Azure pour PostgreSQL

Privilèges requis

Où exécuter les commandes

Commandes à accorder

REPLICATION rôle

Base de données cible

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
ALTER USER databricks_replication WITH REPLICATION;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;

Privilèges requis

Où exécuter les commandes

Commandes à accorder

REPLICATION rôle

Base de données cible

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
ALTER USER databricks_replication WITH REPLICATION;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;
remarque

Pour Azure Database pour PostgreSQL - Serveur flexible, assurez-vous que la réplication logique est activée dans les paramètres du serveur. Pour un Serveur unique, le paramètre de serveur azure_replication_support doit être défini sur REPLICA.

GCP Cloud SQL pour PostgreSQL

Privilèges requis

Où exécuter les commandes

Commandes à accorder

REPLICATION rôle

Base de données cible

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
ALTER USER databricks_replication WITH REPLICATION;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;

Privilèges requis

Où exécuter les commandes

Commandes à accorder

REPLICATION rôle

Base de données cible

Exécutez les commandes SQL suivantes :

SQL
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
ALTER USER databricks_replication WITH REPLICATION;

CONNECT privilège sur la base de données

Base de données cible

Exécutez la commande SQL suivante :

SQL
GRANT CONNECT ON DATABASE your_database TO databricks_replication;

USAGE privilège sur les schémas

Base de données cible

Exécutez la commande SQL suivante pour chaque schéma :

SQL
GRANT USAGE ON SCHEMA schema_name TO databricks_replication;

SELECT privilège sur les tables

Base de données cible

Exécutez la commande SQL suivante pour chaque table ou schéma :

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;

Privilèges du catalogue système

L'utilisateur de réplication nécessite SELECT privilèges sur les tables du catalogue système pour toutes les plateformes PostgreSQL.

Exécutez les commandes SQL suivantes sur la base de données cible :

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;

Vérifiez les privilèges de l'utilisateur de réplication

Après avoir octroyé les privilèges nécessaires, vérifiez que l'utilisateur de réplication dispose des autorisations correctes :

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';