Gérer les utilisateurs dans Azure HorizonDB (préversion)

Cet article explique comment créer des utilisateurs dans un cluster Azure HorizonDB.

Pour savoir comment créer et gérer les utilisateurs d’un abonnement Azure et leurs privilèges, consultez l’article sur le contrôle d’accès en fonction du rôle Azure (Azure RBAC) ou consultez comment personnaliser les rôles.

Compte d’administrateur de serveur

Lorsque vous créez d’abord votre cluster Azure HorizonDB, vous fournissez un nom d’authentification et un mot de passe d’administrateur de cluster. Pour plus d’informations, consultez Créer un cluster Azure HorizonDB pour voir l’approche pas à pas. Étant donné que le nom d’authentification de l’administrateur de cluster est un nom personnalisé, vous pouvez trouver le nom d’utilisateur administrateur du serveur choisi dans le portail Azure.

Le cluster Azure HorizonDB est créé avec trois rôles par défaut. Vous pouvez voir ces rôles en exécutant la commande : SELECT rolname FROM pg_roles;

  • azure_pg_admin
  • azuresu
  • votre utilisateur administrateur de serveur

Votre authentification administrateur est membre du rôle azure_pg_admin. Toutefois, le compte d’administrateur ne fait pas partie du azuresu rôle. Étant donné que ce service est un service PaaS managé, seul Microsoft fait partie du rôle super utilisateur.

Le moteur PostgreSQL utilise des privilèges pour contrôler l’accès aux objets de base de données, comme indiqué dans la documentation du produit PostgreSQL. Dans Azure HorizonDB, l’utilisateur administrateur du serveur dispose de ces privilèges : LOGIN, NOSUPERUSER, INHERIT, CREATEDB et CREATEROLE.

L’authentification de l’administrateur de cluster peut créer davantage d’utilisateurs et accorder à ces utilisateurs le azure_pg_admin rôle. En outre, l’authentification de l’administrateur de cluster peut créer des utilisateurs et des rôles moins privilégiés qui ont accès à des bases de données et schémas individuels.

Guide pratique pour créer d’autres utilisateurs administrateurs dans Azure HorizonDB

  1. Obtenez les informations de connexion et le nom d’utilisateur administrateur. Vous avez besoin du nom complet du serveur et des informations d’identification de connexion administrateur pour vous connecter à votre cluster HorizonDB Azure. Vous pouvez facilement trouver le nom du serveur et les informations de connexion à partir de la page Vue d’ensemble du serveur ou de la page Propriétés dans le portail Azure.

  2. Utilisez le compte d’administrateur et le mot de passe pour vous connecter à votre cluster HorizonDB Azure. Utilisez votre outil client préféré, tel que pgAdmin ou psql. Si vous ne savez pas comment vous connecter, consultez Créer un cluster HorizonDB Azure.

  3. Modifiez et exécutez le code SQL suivant. Remplacez votre nouveau nom d’utilisateur pour la valeur de l’espace réservé <new_user>, et remplacez le mot de passe d’espace réservé avec votre propre mot de passe fort.

    CREATE USER <new_user> CREATEDB CREATEROLE PASSWORD '<StrongPassword!>';
    
    GRANT azure_pg_admin TO <new_user>;
    

Comment créer des utilisateurs de base de données dans Azure HorizonDB

Note

N’incluez aucune information personnelle, sensible ou confidentielle dans les noms des ressources (par exemple, nom de table, nom de base de données) ni dans les étiquettes de ressources. Les données que vous saisissez dans ces champs ne sont pas considérées comme des données clients.

  1. Obtenez les informations de connexion et le nom d’utilisateur administrateur. Vous avez besoin du nom complet du serveur et des informations d’identification de connexion administrateur pour vous connecter à votre cluster HorizonDB Azure. Vous pouvez facilement trouver le nom du serveur et les informations de connexion à partir de la page Vue d’ensemble du serveur ou de la page Propriétés dans le portail Azure.

  2. Utilisez le compte d’administrateur et le mot de passe pour vous connecter à votre cluster HorizonDB Azure. Utilisez votre outil client préféré, tel que PostgreSQL pour Visual Studio Code, pgAdmin ou psql.

  3. Modifiez et exécutez le code SQL suivant. Remplacez la valeur de l’espace réservé <db_user> par le nouveau nom d’utilisateur souhaité et la valeur de l’espace réservé <newdb> par le nom de votre propre base de données. Remplacez le mot de passe d’espace réservé par votre propre mot de passe fort.

    Ce code SQL crée une base de données, puis crée un utilisateur dans le cluster Azure HorizonDB et accorde le privilège de connexion à la nouvelle base de données pour cet utilisateur.

    CREATE DATABASE <newdb>;
    
    CREATE USER <db_user> PASSWORD '<StrongPassword!>';
    
    GRANT CONNECT ON DATABASE <newdb> TO <db_user>;
    
  4. À l’aide d’un compte d’administrateur, vous devrez peut-être accorder d’autres privilèges pour sécuriser les objets de la base de données. Pour plus d’informations, consultez la documentation PostgreSQL pour plus d’informations sur les rôles et privilèges de base de données. Par exemple:

    GRANT ALL PRIVILEGES ON DATABASE <newdb> TO <db_user>;
    

    Si un utilisateur crée une table « rôle », la table appartient à cet utilisateur. Si un autre utilisateur a besoin d’accéder à la table, vous devez accorder des privilèges à l’autre utilisateur au niveau de la table.

    Par exemple:

    GRANT SELECT ON ALL TABLES IN SCHEMA <schema_name> TO <db_user>;
    
  5. Connectez-vous à votre serveur, en spécifiant la base de données désignée, à l’aide du nouveau nom d’utilisateur et du mot de passe. Cet exemple montre la ligne de commande psql. Avec cette commande, vous êtes invité à entrer le mot de passe du nom d’utilisateur. Remplacez votre propre nom de serveur, le nom de la base de données et le nom d’utilisateur.

    psql --host="{clustername}.{clusteridentifier}.{region}.horizondb.azure.com" --port=5432 --username=db_user --dbname=newdb