Amazon Redshift
Manuel du développeur de base de données

Exemple de contrôle d'accès utilisateur et de groupe

Cet exemple crée des groupes d'utilisateurs et des comptes d'utilisateur, puis leur accorde différents privilèges concernant une base de données Amazon Redshift qui se connecte à un client d'application web. Cet exemple suppose qu'il existe trois groupes d'utilisateurs : les utilisateurs habituels d'une application web, les utilisateurs avancés d'une application web et les développeurs web.

  1. Créez des groupes dans lesquels les comptes d'utilisateurs seront affectés. L'ensemble de commandes suivant crée trois groupes d'utilisateurs différents :

    create group webappusers; create group webpowerusers; create group webdevusers;
  2. Créez plusieurs comptes d'utilisateurs de base de données avec différents privilèges et ajoutez-les aux groupes.

    1. Créez deux utilisateurs et ajoutez-les au groupe WEBAPPUSERS :

      create user webappuser1 password 'webAppuser1pass' in group webappusers; create user webappuser2 password 'webAppuser2pass' in group webappusers;
    2. Créez un compte pour un développeur web et ajoutez-le au groupe WEBDEVUSERS :

      create user webdevuser1 password 'webDevuser2pass' in group webdevusers;
    3. Créez un compte de super-utilisateur. Cet utilisateur disposera de droits d'administration lui permettant de créer d'autres utilisateurs :

      create user webappadmin password 'webAppadminpass1' createuser;
  3. Créez un schéma à associer aux tables de base de données utilisées par l'application web et accordez aux différents groupes d'utilisateurs l'accès à ce schéma :

    1. Créez le schéma WEBAPP :

      create schema webapp;
    2. Accordez les privilèges USAGE au groupe WEBAPPUSERS :

      grant usage on schema webapp to group webappusers;
    3. Accordez les privilèges USAGE au groupe WEBPOWERUSERS :

      grant usage on schema webapp to group webpowerusers;
    4. Accordez les privilèges ALL au groupe WEBDEVUSERS :

      grant all on schema webapp to group webdevusers;

    Les utilisateurs et les groupes de base sont maintenant configurés. Vous pouvez à présent apporter des modifications aux utilisateurs et aux groupes.

  4. Par exemple, la commande suivante modifie le paramètre search_path pour le WEBAPPUSER1.

    alter user webappuser1 set search_path to webapp, public;

    Le paramètre SEARCH_PATH spécifie l'ordre de recherche de schéma des objets de base de données, tels que les tables et les fonctions, lorsque l'objet est référencé par un nom simple sans schéma spécifié.

  5. Vous pouvez également ajouter des utilisateurs à un groupe après avoir créé le groupe, par exemple en ajoutant WEBAPPUSER2 au groupe WEBPOWERUSERS :

    alter group webpowerusers add user webappuser2;