Partager via


Gérer les rôles Postgres

Important

Cette fonctionnalité est en préversion publique dans les régions suivantes : westus, , westus2eastuseastus2, , centralus, southcentralus, , northeuropewesteurope, , australiaeastbrazilsouth, , canadacentral, centralindia, , . southeastasiauksouth

Un rôle Postgres pour l’identité Azure Databricks du propriétaire de l’instance de base de données Lakebase est créé automatiquement.

Initialement, seul le propriétaire de l’instance peut se connecter et accéder à l’instance via Postgres. Pour permettre à d’autres identités Azure Databricks de se connecter à l’instance de base de données, l’identité Azure Databricks doit avoir un rôle Postgres correspondant.

Cette page explique comment ajouter et gérer d’autres rôles basés sur des identités Azure Databricks dans PostgreSQL.

Créer des rôles Postgres et accorder des privilèges pour les identités Azure Databricks

Créez des rôles Postgres à l’aide de l’interface utilisateur Azure Databricks ou des requêtes PostgreSQL.

Note

Les actions de gestion des rôles sont régies par les autorisations accordées sur l’instance de base de données. Vérifiez que vous disposez du niveau d’accès approprié avant de tenter de gérer les rôles.

IU

Les utilisateurs disposant CAN USE d’une autorisation sur l’instance de base de données peuvent afficher les rôles Postgres existants associés aux identités Azure Databricks ou ajouter un rôle pour leur propre identité à l’instance.

Les utilisateurs avec CAN MANAGE peuvent en outre créer des rôles pour d’autres identités Azure Databricks, avec des privilèges supplémentaires, et supprimer des rôles pour n’importe quelle identité Azure Databricks.

Vous pouvez attribuer des autorisations supplémentaires à tous les utilisateurs, groupes ou principaux de service souhaités dans la page vue d’ensemble des instances de base de données .

  1. Cliquez sur Calcul dans la barre latérale de l’espace de travail.

  2. Cliquez sur Instances de base de données.

  3. Cliquez sur l’onglet Autorisations .

  4. Cliquez sur Ajouter un rôle PostgreSQL en haut à droite.

  5. Pour l'identité de l'espace de travail, entrez un utilisateur, un groupe ou une entité de service, puis sélectionnez l'identité Azure Databricks. Vous devez sélectionner une identité Azure Databricks qui n’a pas encore de rôle Postgres dans l’instance.

  6. Sélectionnez une appartenance à un rôle. Si vous disposez CAN MANAGE d’autorisations sur l’instance de base de données, vous pouvez ajouter l’appartenance au databricks_superuser rôle et activer certains attributs de rôle.

  7. Sélectionnez les attributs PostgreSQL à accorder au nouveau rôle.

    • CREATEDB: accorde l’autorisation de créer de nouvelles bases de données
    • CREATEROLE: accorde l’autorisation de créer des rôles
    • BYPASS RLS : accorde l’autorisation de contourner la sécurité au niveau des lignes dans l’instance
  8. Cliquez sur Confirmer.

PostgreSQL

Avant de créer de nouveaux rôles Postgres, vérifiez que vous répondez aux exigences suivantes :

  • Vous devez disposer des autorisations CREATE et CREATE ROLE sur la base de données.
  • Vous devez vous authentifier et vous connecter à Postgres en tant qu’identité Azure Databricks (utilisateur, principal de service ou groupe). Les sessions authentifiées Postgres natives ne peuvent pas créer de rôles Azure Databricks.
  • Votre jeton d’authentification doit être valide et non expiré au moment de la création du rôle.

Utilisez la databricks_create_role fonction pour ajouter et créer des rôles PostgreSQL basés sur des identités Azure Databricks. L’extension databricks_auth PostgreSQL personnalisée fournit la databricks_create_role fonction.

  1. Créez l’extension databricks_auth . Chaque base de données Postgres doit avoir sa propre extension.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. Utilisez la databricks_create_role fonction pour ajouter et créer des rôles Postgres pour les identités Azure Databricks. Le rôle ne doit pas déjà exister. Si un rôle portant le même nom existe, supprimez-le avant de créer le rôle basé sur l’identité Azure Databricks.

    SELECT databricks_create_role('identity_name', 'identity_type');
    

    Les paramètres identity_name et identity_type dépendent du type d’identité Azure Databricks :

    • Utilisateur Azure Databricks :

      • identity_name : e-mail de l’utilisateur, par exemple myuser@databricks.com
      • identity_type : USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Principal du service Azure Databricks :

      • identity_name : ID d’application du principal de service, par exemple 8c01cfb1-62c9-4a09-88a8-e195f4b01b08
      • identity_type : SERVICE_PRINCIPAL
      SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL');
      
    • Groupe Azure Databricks :

      • identity_name : nom du groupe (sensible à la casse) : My Group 123
      • identity_type : GROUP
      SELECT databricks_create_role('My Group 123','GROUP');
      
  3. Un rôle créé à l’aide de databricks_create_role n’a que les privilèges accordés à PUBLIC après sa création. Pour accorder ou révoquer des privilèges supplémentaires, utilisez les commandes de gestion des privilèges Postgres GRANT standard et REVOKE.

    Accordez au rôle l’autorisation de lecture pour accéder à une table.

    GRANT SELECT ON "my_schema"."my_table" TO <role-name>;
    

    Supprimez l’accès en écriture à une table du rôle.

    REVOKE INSERT, UPDATE, DELETE ON TABLE "my_schema"."my_table" FROM <role-name>;
    

    Révoquez tout l’accès à une base de données du rôle.

    REVOKE CONNECT ON DATABASE "example_database" FROM <role-name>;
    

Afficher les rôles d’identité Azure Databricks

IU

Vous pouvez voir quels utilisateurs, groupes et principaux de service ont un rôle Postgres correspondant dans la page de vue d’ensemble des instances de base de données .

  1. Cliquez sur Calcul dans la barre latérale de l’espace de travail.
  2. Cliquez sur Instances de base de données.
  3. Cliquez sur l’onglet Autorisations .

PostgreSQL

Utilisez des requêtes PostgreSQL pour répertorier tous les rôles d’identité Azure Databricks créés par défaut et à partir de l’utilisation de la databricks_create_role fonction, utilisez la databricks_list_roles fonction dans l’extension databricks_auth . Cela répertorie tous les utilisateurs, les principaux de service et les groupes Azure Databricks ajoutés pour l’authentification en tant que rôles Postgres.

CREATE EXTENSION IF NOT EXISTS databricks_auth;
SELECT * from databricks_list_roles;

Supprimer un rôle Postgres basé sur l’identité Azure Databricks

IU

La suppression d’un rôle ne peut pas être annulée. Vous pouvez recréer un rôle, mais toute réaffectation de propriété d’objet n’est pas réversible sans supprimer le nouveau rôle qui possède des objets réaffectés.

  1. Cliquez sur Calcul dans la barre latérale de l’espace de travail.
  2. Cliquez sur Instances de base de données.
  3. Cliquez sur l’onglet Autorisations .
  4. Pour l’identité de rôle que vous souhaitez supprimer, sur le côté droit, cliquez sur l’icône de menu Kebab..
  5. Cliquez sur Supprimer le rôle.
  6. Si vous devez supprimer un rôle propriétaire d’objets, activez Réaffecter les objets appartenant. Cela réaffectera tous les objets possédés pouvant être réaffectés (bases de données, schémas et tables) à l’autre rôle, puis supprimera tous les objets possédés non réaffectables.
  7. Cliquez sur Confirmer.

PostgreSQL

Un rôle Postgres basé sur l’identité Azure Databricks peut être supprimé et retiré de la même façon que n’importe quel autre rôle Postgres. Pour plus d’informations, consultez la documentation PostgreSQL sur la suppression de rôles. Une fois qu’un rôle basé sur l’identité Azure Databricks est supprimé, il ne peut pas être utilisé pour l’authentification basée sur les jetons et l’accès à Postgres.