Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Les rôles Postgres contrôlent l’accès à vos bases de données, schémas, tables et autres objets de base de données Postgres. Utilisez l’interface utilisateur Lakebase pour créer et gérer des rôles pour votre équipe.
Note
Avant d’utiliser des rôles, découvrez comment vous connecter à votre base de données et vous authentifier à l’aide de jetons OAuth ou de l’authentification par mot de passe Postgres native.
Vue d’ensemble du rôle
Lorsque vous créez un projet, un rôle Postgres est automatiquement créé pour votre identité Databricks (par exemple). user@databricks.com Ce rôle possède la base de données par défaut databricks_postgres et est membre de databricks_superuser, ce qui lui donne de larges privilèges pour gérer les objets de base de données. Vous pouvez créer des rôles supplémentaires dans la branche par défaut de votre projet ou dans les branches enfants.
Si vous gérez votre projet avec Terraform et souhaitez placer ce rôle de propriétaire implicite sous gestion IaC, consultez la configuration du projet Standard Lakebase avec Terraform pour le replace_existing modèle d’adoption.
Si vous utilisez plutôt des bundles d’automatisation déclaratifs, consultez la configuration type d’un projet Lakebase avec des bundles d’automatisation déclaratifs selon le même modèle.
Note
L’état du rôle Postgres est indépendant d’une branche à l’autre. Lorsque vous créez une branche, elle reflète les rôles Postgres, les bases de données, les appartenances aux rôles et les privilèges accordés de la branche parente au moment de la création de la branche. Après la branche, chaque branche évolue indépendamment : les rôles et les bases de données créés, les GRANTs et les REVOKEs appliqués, et les attributs de rôle ou les appartenances modifiés sur une branche n’ont aucun effet sur toute autre branche, y compris le parent. Il n’existe aucune synchronisation automatique de l’état du rôle entre les branches.
Autorisations du projet (CAN USE, CAN MANAGE) fonctionnent différemment : elles s’appliquent à l’ensemble du projet et à toutes ses branches. Consultez Gérer les autorisations de projet.
Créer un rôle
Utilisez la boîte de dialogue Ajouter un rôle dans l’application Lakebase pour créer un rôle OAuth pour une identité Databricks ou un rôle de mot de passe Postgres natif.
Créer un rôle OAuth
Les rôles OAuth sont liés à une identité Azure Databricks (utilisateur, principal de service ou groupe) et s’authentifient à l’aide de jetons OAuth, qui expirent après une heure.
Lorsque vous créez une branche enfant, elle reflète le rôle et l’état de la base de données de la branche parente au moment de sa création. Après cela, l’état du rôle de chaque branche évolue indépendamment. Pour les groupes, seuls les groupes au niveau de l’espace de travail sont pris en charge.
Accordez éventuellement databricks_superuser (héritant de pg_read_all_data, pg_write_all_data et pg_monitor) ou des attributs standard de Postgres (CREATEDB, CREATEROLE, BYPASSRLS). Consultez les attributs de rôle dans la documentation PostgreSQL.
Pour créer un rôle OAuth, accédez à l’onglet Rôles et bases de données>Ajouter un rôle>OAuth , sélectionnez une identité dans la liste déroulante Principal , configurez les autorisations, puis cliquez sur Ajouter.
Note
Vous pouvez également créer des rôles OAuth à l’aide de l’extension databricks_auth avec SQL ou l’API REST. Consultez Créer des rôles Postgres.
Créer un rôle de mot de passe
Les rôles de mot de passe utilisent un mot de passe Postgres statique et ne sont pas liés à une identité Azure Databricks. Ils sont utiles pour les applications ou les outils qui nécessitent des informations d’identification de base de données traditionnelles.
L’application Lakebase génère automatiquement un mot de passe sécurisé. Copiez-la immédiatement après la création . Elle n’est pas affichée à nouveau. Si vous avez besoin d’un mot de passe personnalisé, définissez-le ultérieurement à l’aide de SQL. Les mêmes autorisations facultatives du rôle OAuth s’appliquent (databricks_superuser, CREATEDB, CREATEROLE, BYPASSRLS). Les noms de rôles doivent être des identificateurs Postgres valides et ne peuvent pas dépasser 63 caractères.
Pour créer un rôle de mot de passe, accédez à l’onglet Rôles et bases de données> Ajouter un motde passe de>, entrez un nom de rôle, configurez les autorisations, cliquez sur Ajouter et copiez le mot de passe généré.
Afficher les rôles
Pour afficher tous les rôles d’une branche, accédez à l’onglet Rôles et bases de données de votre branche dans l’application Lakebase.
Gérer les connexions de mot de passe
Les connexions de mot de passe sont désactivées par défaut pour les nouveaux projets de mise à l’échelle automatique Lakebase. Les projets existants ne sont pas affectés par cette valeur par défaut.
Pour activer les connexions par mot de passe, accédez aux Paramètres>Connexions à la base de données de votre projet et cochez Mot de passe (rôles natifs Postgres).
Pour désactiver les connexions de mot de passe, accédez à vosconnexions de base de données> de projet et décochez mot de passe (rôles Postgres natifs). Les rôles de mot de passe existants ne sont pas supprimés, mais ne peuvent pas s’authentifier pendant que les connexions de mot de passe sont désactivées.
Vous pouvez également contrôler ce paramètre par point de terminaison de calcul. Dans les paramètres de calcul de votre branche, sélectionnez Modifier>les connexions de base de données et cochez ou décochez le mot de passe (rôles Postgres).
Important
Il s’agit d’un changement de comportement. Si vous avez des scripts d’automatisation ou des pipelines CI qui créent des projets de mise à l’échelle automatique Lakebase et s’appuient sur des connexions de mot de passe Postgres natives, vous devez maintenant activer explicitement les connexions de mot de passe après la création du projet.
Pour activer ou désactiver les connexions de mot de passe par programmation :
Interface de ligne de commande (CLI)
# Enable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
--json '{"spec": {"enable_pg_native_login": true}}'
# Disable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
--json '{"spec": {"enable_pg_native_login": false}}'
Kit de développement logiciel (SDK) Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import FieldMask, Project, ProjectSpec
w = WorkspaceClient()
# Enable password connections
w.postgres.update_project(
name="projects/<project-id>",
project=Project(spec=ProjectSpec(enable_pg_native_login=True)),
update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()
# Disable password connections
w.postgres.update_project(
name="projects/<project-id>",
project=Project(spec=ProjectSpec(enable_pg_native_login=False)),
update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()
friser
# Enable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"spec": {"enable_pg_native_login": true}}' | jq
# Disable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
-H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
-H "Content-Type: application/json" \
-d '{"spec": {"enable_pg_native_login": false}}' | jq
Pour l’authentification, consultez À propos de l’authentification.
Réinitialiser un mot de passe
Vous pouvez réinitialiser le mot de passe pour les rôles de mot de passe Postgres natifs. Les rôles OAuth utilisent des jetons OAuth pour l’authentification et n’ont pas de mots de passe à réinitialiser.
Pour réinitialiser le mot de passe d’un rôle :
- Accédez à l’onglet Rôles et bases de données de votre branche dans l’application Lakebase.
- Sélectionnez Réinitialiser le mot de passe dans le menu rôle, puis cliquez sur Réinitialiser.
- Copiez le nouveau mot de passe généré.
Note
La réinitialisation d’un mot de passe dans l’application Lakebase réinitialise le mot de passe à une valeur générée avec une entropie 60 bits. Pour définir votre propre valeur de mot de passe, vous pouvez réinitialiser le mot de passe à l’aide de l’éditeur SQL ou d’un client SQL comme psql avec la syntaxe suivante :
ALTER USER user_name WITH PASSWORD 'new_password';
Le mot de passe doit comporter au moins 12 caractères avec un mélange de caractères minuscules, majuscules, nombre et symboles. Les mots de passe définis par l’utilisateur sont validés au moment de la création pour garantir l’entropie 60 bits.
Obtenir un nouveau jeton OAuth
Si vous utilisez l’authentification OAuth et avez besoin d’un nouveau jeton OAuth (les jetons expirent après une heure), vous pouvez en obtenir un à partir du mode Connexion :
- Accédez à votre projet dans l’application Lakebase.
- Cliquez sur Se connecter pour ouvrir le mode de connexion de base de données.
- Sélectionnez votre rôle OAuth dans la liste déroulante Rôles .
- Cliquez sur Copier le jeton OAuth pour copier un nouveau jeton.
En savoir plus : Se connecter avec un rôle | OAuthÀ propos de l’authentification
Supprimer un rôle
Important
La suppression d’un rôle est une action permanente qui ne peut pas être annulée et vous ne pouvez pas supprimer un rôle propriétaire d’une base de données. La base de données doit être supprimée avant de supprimer le rôle propriétaire de la base de données.
Pour supprimer un rôle :
- Accédez à l’onglet Rôles et bases de données de votre branche dans l’application Lakebase.
- Sélectionnez Supprimer le rôle dans le menu rôle et confirmez la suppression.
Note
La gestion des rôles de base de données nécessite l’autorisation CAN MANAGE ou CAN USEproject. Si vous n’avez pas l’autorisation requise, un message « Autorisations requises » s’affiche lors de la tentative d’une action liée au rôle. Contactez un administrateur d’espace de travail pour demander l’accès. Pour plus d’informations, consultez Gérer les autorisations de projet.