Utilisez les instructions SQL de cette rubrique pour gérer l'accès aux entrepôts virtuels : consultez les utilisateurs habilités, accordez ou révoquez des autorisations, définissez des entrepôts virtuels par défaut et libérez les connexions actives.
Par défaut, les superutilisateurs ont accès à tous les entrepôts virtuels d'une instance. Les instructions de cette rubrique s'appliquent aux comptes non superutilisateurs.
Prérequis
Avant de commencer, vérifiez les points suivants :
Votre instance Hologres doit être en version V2.0.4 ou ultérieure. Sinon, mettez-la à niveau depuis la console Hologres (consultez la section « Manual upgrade » de la rubrique Mises à niveau d'instance) ou rejoignez le groupe DingTalk du support technique (voir Comment obtenir davantage d'assistance en ligne ?).
Vous avez rejoint le groupe DingTalk Hologres et demandé les configurations backend requises.
Configurer l'accès à un entrepôt pour un utilisateur
Les étapes suivantes décrivent le processus complet permettant d'accorder l'accès à un entrepôt virtuel à un nouvel utilisateur. Vous pouvez également exécuter individuellement les instructions des sections ci-dessous selon vos besoins.
Étape 1 : Consultez les utilisateurs déjà habilités.
SELECT * FROM hologres.hg_warehouse_users;
Étape 2 : Accordez l'accès à un entrepôt virtuel. Cette autorisation permet à l'utilisateur d'y acheminer ses requêtes et d'y exécuter des charges de travail.
CALL hg_grant_warehouse_access_privilege ('analytics_wh','"BASIC$user1"');
Étape 3 : Définissez éventuellement cet entrepôt comme entrepôt par défaut de l'utilisateur afin que ses requêtes y soient automatiquement exécutées.
CALL hg_set_user_default_warehouse ('"BASIC$user1"','analytics_wh');
Consulter les autorisations d'accès sur tous les entrepôts virtuels
Interrogez la vue système hg_warehouse_users pour identifier les utilisateurs ayant accès aux différents entrepôts virtuels.
SELECT * FROM hologres.hg_warehouse_users;
Pour filtrer les résultats — par exemple, pour afficher tous les entrepôts auxquels un utilisateur spécifique a accès — ajoutez une clause WHERE :
SELECT * FROM hologres.hg_warehouse_users WHERE username = 'BASIC$user1';
Champs
| Champ | Type de données | Description | Exemple |
|---|---|---|---|
warehouse_name |
TEXT | Nom de l'entrepôt virtuel | init_warehouse |
warehouse_id |
INTEGER | ID unique de l'entrepôt virtuel | 1 |
username |
TEXT | Nom d'un utilisateur ayant accès à l'entrepôt virtuel | BASIC$user1 |
Consulter les entrepôts virtuels par défaut de tous les utilisateurs
Interrogez la vue système hg_user_default_warehouse pour connaître l'entrepôt virtuel par défaut de chaque utilisateur. Chaque utilisateur ne peut posséder qu'un seul entrepôt virtuel par défaut au maximum.
SELECT * FROM hologres.hg_user_default_warehouse;
Champs
| Champ | Type de données | Description | Exemple |
|---|---|---|---|
warehouse_name |
TEXT | Nom de l'entrepôt virtuel | init_warehouse |
warehouse_id |
INTEGER | ID unique de l'entrepôt virtuel | 1 |
username |
TEXT | Nom de l'utilisateur | BASIC$user1 |
Définir un entrepôt virtuel par défaut pour une instance
Appelez la procédure hg_set_default_warehouse pour définir l'entrepôt virtuel par défaut au niveau de l'instance. Tous les utilisateurs de l'instance obtiennent automatiquement l'accès à cet entrepôt.
CALL hg_set_default_warehouse ('<warehouse_name>');
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
warehouse_name |
TEXT | Nom de l'entrepôt virtuel à définir comme entrepôt par défaut de l'instance |
Exemple : Définissez analytics_wh comme entrepôt virtuel par défaut de l'instance.
CALL hg_set_default_warehouse ('analytics_wh');
Accorder l'accès à un entrepôt virtuel
Appelez la procédure hg_grant_warehouse_access_privilege pour accorder l'accès à un entrepôt virtuel à un utilisateur spécifique. Une fois l'autorisation accordée, l'utilisateur peut y acheminer ses requêtes et y exécuter des charges de travail.
CALL hg_grant_warehouse_access_privilege ('<warehouse_name>','"<user_name>"');
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
warehouse_name |
TEXT | Nom de l'entrepôt virtuel auquel accorder l'accès |
user_name |
TEXT | Compte utilisateur auquel accorder l'accès. Format des utilisateurs RAM : p4_2xxxxxxxxx. Format des comptes personnalisés : BASIC$user1 |
Exemple : Accordez à BASIC$user1 l'accès à analytics_wh.
CALL hg_grant_warehouse_access_privilege ('analytics_wh','"BASIC$user1"');
Révoquer l'accès à un entrepôt virtuel
Appelez la procédure hg_revoke_warehouse_access_privilege pour supprimer l'accès d'un utilisateur à un entrepôt virtuel.
CALL hg_revoke_warehouse_access_privilege ('<warehouse_name>','"<user_name>"');
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
warehouse_name |
TEXT | Nom de l'entrepôt virtuel dont il faut révoquer l'accès |
user_name |
TEXT | Compte utilisateur dont il faut révoquer l'accès. Format des utilisateurs RAM : p4_2xxxxxxxxx. Format des comptes personnalisés : BASIC$user1 |
Exemple : Révoquez l'accès de BASIC$user1 à analytics_wh.
CALL hg_revoke_warehouse_access_privilege ('analytics_wh','"BASIC$user1"');
Définir un entrepôt virtuel par défaut pour un utilisateur
Définissez ou supprimez l'entrepôt virtuel par défaut d'un utilisateur. Lorsqu'un entrepôt virtuel par défaut est configuré pour un utilisateur, ses requêtes s'exécutent sur cet entrepôt, sauf si l'utilisateur en spécifie un autre.
Définir un entrepôt virtuel par défaut :
CALL hg_set_user_default_warehouse ('"<user_name>"','<warehouse_name>');
Supprimer l'entrepôt virtuel par défaut d'un utilisateur :
CALL hg_reset_user_default_warehouse ('"<user_name>"');
Paramètres
| Paramètre | Type de données | Description |
|---|---|---|
user_name |
TEXT | Compte utilisateur à configurer. Format des utilisateurs RAM : p4_2xxxxxxxxx. Format des comptes personnalisés : BASIC$user1 |
warehouse_name |
TEXT | Nom de l'entrepôt virtuel à définir comme entrepôt par défaut de l'utilisateur |
Exemple : Définissez analytics_wh comme entrepôt virtuel par défaut pour BASIC$user1.
CALL hg_set_user_default_warehouse ('"BASIC$user1"','analytics_wh');
Libérer les connexions aux entrepôts virtuels
Appelez la fonction hg_kill_unprivileged_warehouse_connections pour déconnecter les comptes non superutilisateurs de tous les entrepôts virtuels de l'instance. Seuls les superutilisateurs peuvent exécuter cette instruction, qui n'affecte pas les connexions des superutilisateurs.
SELECT hg_kill_unprivileged_warehouse_connections();