Utilisateurs d’organisation

Les organisations disposant de plusieurs comptes doivent souvent faire en sorte qu’une même personne soit un utilisateur dans plusieurs de ces comptes. Pour éviter de devoir créer à nouveau un objet utilisateur pour la personne dans chaque compte séparément, l’administrateur de l’organisation peut créer un utilisateur de l’entreprise dans le compte de l’organisation. Chaque utilisateur de l’organisation agit comme une entité utilisateur globale qui peut être importée dans les comptes ordinaires par les administrateurs de comptes, ce qui simplifie le processus selon lequel une même personne dispose d’un objet utilisateur dans plusieurs comptes.

Les administrateurs de comptes n’ajoutent pas d’utilisateurs de l’organisation directement à leur compte ordinaire. Ils ajoutent plutôt des groupes d’utilisateurs de l’organisation, qui sont des groupes logiques d’utilisateurs de l’organisation. Lorsque l’administrateur de compte importe le groupe d’utilisateurs de l’organisation, les utilisateurs de cette entreprise sont ajoutés au compte.

Note

Si vous souhaitez créer des utilisateurs d’entreprise pour des personnes qui disposent déjà d’un objet utilisateur dans un ou plusieurs comptes ordinaires, vous devrez lier l’utilisateur d’organisation à l’objet utilisateur existant après avoir importé le groupe d’utilisateurs d’organisation. Pour plus d’informations, voir Résoudre les conflits après l’importation d’utilisateurs.

Prise en main

Le workflow de base permettant d’intégrer les utilisateurs d’une organisation dans un ou plusieurs comptes est le suivant :

  1. En tant qu’administrateur global de l’organisation dans le compte de l’organisation :

    1. Créez un utilisateur de l’organisation pour chaque personne à nommer utilisateur dans plusieurs comptes ordinaires.

    2. Créez un groupe d’utilisateurs de l’organisation qui est un regroupement logique d’utilisateurs.

    3. Ajoutez les utilisateurs de l’organisation au groupe d’utilisateurs de l’organisation.

    4. Mettez le groupe d’utilisateurs de l’organisation à la disposition des administrateurs de comptes dans des comptes ordinaires.

  2. En tant qu’administrateur d’un compte ordinaire :

    1. Importez le groupe d’utilisateurs de l’organisation dans le compte.

    2. Vérifiez et résolvez les conflits éventuels.

Pour un exemple de bout en bout de ce workflow, voir Exemple étendu.

Créer un utilisateur de l’organisation

L’administrateur de l’organisation crée un utilisateur de l’organisation avec les propriétés de base d’un objet utilisateur, telles que le nom de connexion et l’e-mail. Seule un e-mail est nécessaire, mais ces propriétés de base ne peuvent pas être définies dans un compte ordinaire après l’importation de l’utilisateur. Pour une liste de ces propriétés de base, voir CREATE ORGANIZATION USER.

A titre d’exemple, la commande suivante crée un utilisateur d’organisation :

USE ROLE GLOBALORGADMIN;

CREATE ORGANIZATION USER asmith
   EMAIL = 'asmith@example.com'
   LOGIN_NAME = 'asmith@example.com';
Copy

Groupes d’utilisateurs d’organisation

Les groupes d’utilisateurs de l’organisation sont des regroupements logiques d’utilisateurs de l’organisation. L’administrateur de l’organisation crée ces groupes d’utilisateurs de l’organisation, puis ajoute les utilisateurs de l’organisation qui doivent appartenir à chaque groupe. Lorsque l’administrateur de compte importe un groupe d’utilisateurs de l’organisation dans un compte, tous les utilisateurs de l’organisation dans le groupe deviennent des objets utilisateurs dans le compte ordinaire. Un utilisateur de l’organisation peut être membre de plusieurs groupes d’utilisateurs de l’organisation.

Lorsque l’administrateur de compte importe un groupe d’utilisateurs de l’organisation dans un compte ordinaire, Snowflake crée un rôle de contrôle d’accès du même nom. Par exemple, si le groupe d’utilisateurs de l’organisation est nommé data_stewards, l’importation du groupe dans le compte ordinaire crée un rôle nommé data_stewards. Chaque utilisateur importé du groupe d’utilisateurs de l’organisation se voit attribuer ce rôle.

Les administrateurs du compte ordinaire peuvent affiner le contrôle d’accès en accordant et en révoquant les privilèges du rôle qui a été accordé à chacun des utilisateurs importés du groupe d’utilisateurs de l’organisation. Vous pouvez également attribuer au nouveau rôle des rôles spécifiques au compte ou attribuer le nouveau rôle à des rôles spécifiques au compte.

Vous pouvez importer le même groupe d’utilisateurs de l’organisation dans plusieurs comptes ordinaires afin de mettre en place des rôles cohérents dans l’ensemble de l’organisation. Chaque compte ordinaire peut attribuer des privilèges spécifiques au compte au rôle, mais la dénomination est cohérente. Vous pouvez également créer un groupe d’utilisateurs de l’organisation distinct pour chaque compte, puis ajouter les utilisateurs de l’organisation nécessaires à un compte particulier au groupe d’utilisateurs de l’organisation approprié.

Si l’administrateur importe plusieurs groupes d’utilisateurs d’organisation contenant le même utilisateur d’organisation, un seul utilisateur local est créé et cet utilisateur se voit attribuer les rôles de tous les groupes d’utilisateurs de l’organisation.

La tâche d’administrateur de l’organisation consistant à préparer un groupe d’utilisateurs de l’organisation pour l’administrateur de compte ordinaire se déroule en trois étapes :

  1. Créez le groupe d’utilisateurs de l’organisation.

  2. Ajoutez les utilisateurs de l’organisation au groupe.

  3. Définissez la visibilité du groupe pour spécifier quels comptes ordinaires peuvent y accéder.

Créer un groupe d’utilisateurs de l’organisation

L’administrateur de l’organisation exécute la commande CREATE ORGANIZATION USER GROUP pour créer un nouveau groupe d’utilisateurs de l’organisation dans le compte de l’organisation.

À titre d’exemple, la commande suivante crée un groupe d’utilisateurs de l’organisation qui représente un regroupement logique d’ingénieurs des données.

CREATE ORGANIZATION USER GROUP data_engineers_group;
Copy

Ajouter des utilisateurs de l’organisation à un groupe d’utilisateurs de l’organisation

Une fois que l’administrateur de l’organisation a créé un groupe d’utilisateurs de l’organisation, il peut exécuter la commande ALTER ORGANIZATION USER GROUP pour ajouter des utilisateurs de l’organisation au groupe sous la forme d’une liste délimitée par des virgules. Par exemple, pour ajouter deux utilisateurs de l’organisation au groupe d’utilisateurs de l’organisation data_engineers_group, exécutez :

ALTER ORGANIZATION USER GROUP data_engineers_group
   ADD ORGANIZATION USERS asmith, sjohnson;
Copy

Mettre les groupes d’utilisateurs de l’organisation à la disposition des comptes ordinaires

Après avoir créé un groupe d’organisations, vous devez spécifier quels comptes ordinaires peuvent voir et importer le groupe. Les administrateurs de comptes ne peuvent pas utiliser le groupe d’utilisateurs de l’organisation pour importer des utilisateurs tant que vous n’avez pas utilisé la commande ALTER ORGANIZATION USER GROUP pour définir la visibilité du groupe. Vous pouvez spécifier que tous les comptes ordinaires peuvent importer le groupe d’utilisateurs de l’organisation ou vous pouvez restreindre l’accès à des comptes spécifiques.

Important

L’exécution de la commande ALTER ORGANIZATION USER GROUP pour définir la visibilité écrase les paramètres de visibilité précédents. Par exemple, si la visibilité a été définie sur ALL, puis que la commande ALTER a été exécutée pour définir la visibilité sur account_a, les utilisateurs et les rôles créés à partir du groupe d’utilisateurs de l’organisation seront supprimés de tous les comptes, à l’exception de account_a.

La commande suivante permet uniquement au compte qa_env d’ajouter le groupe d’utilisateurs de l’organisation :

ALTER ORGANIZATION USER GROUP data_engineers_group
   SET VISIBILITY = ACCOUNTS qa_env;
Copy

Importer des utilisateurs dans un compte ordinaire

Une fois que l’administrateur de l’organisation a créé un groupe d’utilisateurs de l’organisation, les administrateurs des comptes ordinaires peuvent importer les utilisateurs de l’organisation en exécutant la commande ALTER ACCOUNT pour ajouter le groupe d’utilisateurs de l’organisation. Ces administrateurs ne peuvent importer un groupe d’utilisateurs de l’organisation que si l’administrateur de l’organisation a défini la visibilité du groupe de manière à ce que le compte ordinaire puisse y accéder.

Par défaut, seuls les utilisateurs ayant le rôle ACCOUNTADMIN peuvent importer des groupes d’utilisateurs de l’organisation dans le compte ordinaire. Pour permettre à d’autres utilisateurs d’importer un groupe d’organisations, accordez-leur le privilège IMPORT ORGANIZATION USER GROUPS.

La syntaxe pour importer un groupe d’utilisateurs de l’organisation vers un compte ordinaire est la suivante :

ALTER ACCOUNT ADD ORGANIZATION USER GROUP <group_name>
Copy

Pour obtenir un exemple d’importation d’un groupe d’utilisateurs de l’organisation afin d’ajouter des utilisateurs, voir Exemple étendu.

Résoudre les conflits après l’importation d’utilisateurs

L’administrateur de compte qui importe des utilisateurs de l’organisation dans leur compte ordinaire doit vérifier manuellement s’il y a des conflits. Ces conflits peuvent survenir entre les propriétés des utilisateurs ou le nom du groupe d’utilisateurs de l’organisation.

Conflit entre le groupe d’utilisateurs de l’organisation et le rôle existant

Un conflit se produit lorsque le nom du groupe d’utilisateurs de l’organisation correspond au nom d’un rôle existant dans le compte ordinaire. Les utilisateurs du groupe ne sont pas importés tant que vous n’avez pas résolu le conflit.

Pour vérifier s’il existe un conflit après l’importation d’un groupe d’utilisateurs de l’organisation, procédez comme suit :

  1. Exécutez la commande SHOW ORGANIZATION USER GROUPS.

  2. Dans la colonne is_imported, vérifiez si la valeur est TRUE. Si la valeur est FALSE, l’importation du groupe d’utilisateurs de l’organisation n’a pas abouti, ce qui peut indiquer un conflit.

Vous pouvez résoudre le conflit entre un rôle et un groupe d’utilisateurs de l’organisation en liant le rôle au groupe. Le fait de lier un rôle lui permet d’être géré comme un groupe d’utilisateurs de l’organisation. Une fois que vous avez lié le rôle conflictuel, le groupe d’utilisateurs de l’organisation est ajouté au compte sans autre action. Appelez la fonction SYSTEM$LINK_ORGANIZATION_USER_GROUP pour lier un rôle à un groupe d’utilisateurs de l’organisation.

Par exemple, supposons que le rôle marketing_team existait dans votre compte avant l’importation du groupe d’utilisateurs de l’organisation marketing_team dans le compte. Pour lier le rôle au groupe d’utilisateurs de l’organisation et terminer le processus d’importation du groupe, procédez comme suit :

SELECT SYSTEM$LINK_ORGANIZATION_USER_GROUP('marketing_team');
Copy

Conflit entre l’utilisateur de l’organisation et l’utilisateur existant

Un conflit survient lorsque l’un des éléments suivants est vrai :

  • La propriété name d’un utilisateur de l’organisation correspond à la propriété name d’un utilisateur existant dans le compte ordinaire.

  • La propriété login_name d’un utilisateur de l’organisation correspond à la propriété login_name d’un utilisateur existant dans le compte ordinaire.

Pour vérifier s’il existe un conflit d’utilisateurs après l’importation d’un groupe d’utilisateurs de l’organisation, procédez comme suit :

  1. Exécutez la commande SHOWORGANIZATIONUSERSINORGANIZATIONUSERGROUP.

  2. Dans la colonne is_imported, trouvez les lignes où la valeur est FALSE. Au moins une propriété de l’utilisateur dans cette ligne est en conflit avec les propriétés d’un utilisateur existant.

Astuce

Vous pouvez utiliser la fonction RESULT_SCAN pour post-traiter la sortie de SHOW ORGANIZATION USERS et filtrer la colonne is_imported. Par exemple, pour rechercher les utilisateurs de l’organisation dont l’importation depuis le groupe d’utilisateurs de l’organisation marketing_team ne s’est pas déroulée correctement, procédez comme suit :

SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP marketing_team;
SELECT * FROM TABLE(RESULT_SCAN(LAST_QUERY_ID())) WHERE "is_imported" = 'false';
Copy

Si un objet utilisateur existant correspond à la même personne qu’un utilisateur de l’organisation et que vous souhaitez gérer l’utilisateur en tant qu’utilisateur de l’organisation, vous pouvez lier l’utilisateur existant et l’utilisateur de l’organisation afin de résoudre le conflit. Appelez la fonction SYSTEM$LINK_ORGANIZATION_USER pour lier un utilisateur existant à un utilisateur de l’organisation. Par exemple, pour lier l’utilisateur existant jloeb à l’utilisateur de l’organisation jloebsmith, procédez comme suit :

SELECT SYSTEM$LINK_ORGANIZATION_USER('jloeb', 'jloebsmith');
Copy

Si vous ne souhaitez pas lier l’utilisateur local existant au nouvel utilisateur de l’organisation, vous pouvez renommer l’objet utilisateur ou ses propriétés dans le compte ordinaire pour résoudre le conflit. Par exemple, si l’utilisateur préexistant et l’utilisateur de l’organisation ont tous deux le nom de connexion JOE_LOGIN, vous pouvez exécuter les actions suivantes dans le compte ordinaire pour éviter le conflit sans lien :

USE ROLE ACCOUNTADMIN;
ALTER USER joe SET LOGIN_NAME = joe_login_renamed;
Copy

Modification des utilisateurs importés

Les administrateurs d’un compte ordinaire peuvent utiliser la commande ALTER USER pour modifier un sous-ensemble de propriétés d’un objet utilisateur après son importation. L’administrateur peut modifier toutes les propriétés à l’exception des propriétés qui peuvent être définies au niveau de l’utilisateur de l’organisation dans le compte de l’organisation. Pour obtenir la liste des propriétés qui ne peuvent être définies que dans le compte de l’organisation, voir CREATE ORGANIZATION USER.

Suppression des utilisateurs et des groupes de l’organisation

Les utilisateurs et les groupes d’utilisateurs de l’organisation peuvent être supprimés d’un seul compte ou supprimés de tous les comptes en les retirant dans le compte de l’organisation.

Suppression des utilisateurs d’un seul compte ordinaire

Un administrateur de compte peut exécuter une commande ALTER ACCOUNT pour retirer un groupe d’utilisateurs de l’organisation du compte. La suppression du groupe d’utilisateurs de l’organisation retire tous les utilisateurs importés et le rôle créé lors de l’importation du groupe d’utilisateurs de l’organisation. Cette commande n’affecte pas les utilisateurs et les groupes d’utilisateurs de l’organisation dans d’autres comptes ordinaires, ni dans le compte de l’organisation.

Note

Un utilisateur de l’organisation peut être membre de plusieurs groupes d’utilisateurs de l’organisation. Si un utilisateur a été importé de plusieurs groupes d’organisation, la suppression d’un des groupes du compte ordinaire n’entraîne pas la suppression de l’utilisateur. L’utilisateur n’est pas supprimé tant que tous les groupes d’utilisateurs de l’organisation ne le sont pas.

Par exemple, la commande suivante retire tous les utilisateurs importés du groupe data_stewards et supprime le rôle data_stewards :

ALTER ACCOUNT REMOVE ORGANIZATION USER GROUP data_stewards;
Copy

Suppression des utilisateurs de tous les comptes ordinaires

Lorsqu’un utilisateur de l’organisation est retiré du compte de l’organisation, l’objet utilisateur correspondant est retiré de tous les comptes ordinaires qui ont importé l’utilisateur. Pour retirer un utilisateur de l’organisation, exécutez la commande DROP ORGANIZATION USER dans le compte de l’organisation.

Lorsqu’un groupe d’utilisateurs de l’organisation est retiré dans le compte de l’organisation, l’effet sur les utilisateurs de l’organisation dépend de l’appartenance des utilisateurs du compte ordinaire à d’autres groupes d’utilisateurs de l’organisation qui ont également été importés dans le compte. Si un utilisateur de l’organisation appartient à un groupe d’utilisateurs de l’organisation différente de celui qui a été importé, l’utilisateur n’est pas supprimé du compte. Sinon, le retrait du groupe d’utilisateurs de l’organisation supprime tous les utilisateurs importés du groupe.

Le retrait d’un groupe d’utilisateurs de l’organisation entraîne également la suppression du rôle créé lors de l’importation du groupe.

Pour retirer un groupe d’utilisateurs de l’organisation, exécutez la commande DROP ORGANIZATION USER GROUP dans le compte de l’organisation.

Dissociation des utilisateurs de l’organisation et des groupes d’utilisateurs de l’organisation

Lorsque les utilisateurs de l’organisation sont correctement importés dans un compte ordinaire, l’objet utilisateur local est lié à l’utilisateur de l’organisation. Si vous décidez de conserver l’objet utilisateur dans un compte, mais que vous ne souhaitez plus l’associer à l’utilisateur de l’organisation, vous pouvez utiliser la fonction SYSTEM$UNLINK_ORGANIZATION_USER pour dissocier l’utilisateur local de l’utilisateur de l’organisation. Toutes les propriétés de l’utilisateur sont préservées et il peut être géré comme un utilisateur local.

De même, vous pouvez utiliser la fonction SYSTEM$UNLINK_ORGANIZATION_USER_GROUP pour dissocier un rôle qui a été créé par l’ajout d’un groupe d’utilisateurs de l’organisation. Le rôle reste inchangé, mais il est dissocié du groupe d’utilisateurs de l’organisation.

Exemple étendu

Workflow de l’administrateur de l’organisation
  1. En tant qu’administrateur de l’organisation, connectez-vous au compte de l’organisation.

  2. Créez des utilisateurs d’organisation pour deux personnes qui sont des gestionnaires de données :

    USE ROLE GLOBALORGADMIN;
    
    CREATE ORGANIZATION USER joe_kelley
    EMAIL = 'jkelley@example.com'
    LOGIN_NAME = 'jkelley@example.com';
    
    CREATE ORGANIZATION USER grace_vivian
    EMAIL = 'gvivian@example.com'
    LOGIN_NAME = 'gvivian@example.com';
    
    Copy
  3. Créez un groupe d’utilisateurs de l’organisation qui représente un regroupement logique de gestionnaires de données.

    CREATE ORGANIZATION USER GROUP data_stewards_group;
    
    Copy
  4. Ajoutez les utilisateurs de l’organisation au nouveau groupe d’utilisateurs de l’organisation.

    ALTER ORGANIZATION USER GROUP data_stewards_group
       ADD ORGANIZATION USERS joe_kelley, grace_vivian;
    
    Copy
  5. Autorisez tous les comptes ordinaires à importer le groupe d’utilisateurs de l’organisation.

    ALTER ORGANIZATION USER GROUP data_stewards_group
       SET VISIBILITY = ALL;
    
    Copy
Workflow de l’administrateur de compte
  1. En tant qu’administrateur de compte, connectez-vous au compte ordinaire dans lequel vous souhaitez importer les utilisateurs de l’organisation.

  2. Listez les groupes d’utilisateurs de l’organisation qui peuvent être importés dans le compte.

    USE ROLE ACCOUNTADMIN;
    
    SHOW ORGANIZATION USER GROUPS;
    
    Copy
  3. Importez le groupe d’utilisateurs de l’organisation dans le compte.

    ALTER ACCOUNT
      ADD ORGANIZATION USER GROUP data_stewards_group;
    
    Copy
  4. Vérifiez qu’il n’y a pas de conflit entre le groupe d’utilisateurs de l’organisation et un rôle existant :

    SHOW ORGANIZATION USER GROUPS;
    
    Copy

    Assurez-vous que la valeur de la colonne is_imported est TRUE, ce qui indique qu’il n’y a pas eu de conflit.

  5. Listez les utilisateurs qui ont été ajoutés au compte et vérifiez s’il y a des conflits :

    SHOW ORGANIZATION USERS IN ORGANIZATION USER GROUP data_stewards_group;
    
    Copy

    Assurez-vous que la valeur de la colonne is_imported est TRUE pour tous les utilisateurs de l’organisation, ce qui indique qu’il n’y a pas eu de conflit.