Ajout d'utilisateurs à une base de données PostgreSQL

PostgreSQL utilise des rôles pour se connecter au cluster de bases de données et aux bases de données. Ajoutez des rôles au cluster de bases de données PostgreSQL.

Les utilisateurs de base de données s'appellent des rôles de connexion. Pour tous les rôles de connexion qui posséderont des objets dans la géodatabase, vous devez également créer une structure dans cette base de données. La structure doit avoir le même nom et être la propriété du rôle de connexion.

Vous pouvez également créer des rôles de groupe auxquels des rôles de connexion peuvent être ajoutés. Vous pouvez ensuite attribuer des autorisations au groupe, qui s'appliqueront à tous les rôles de connexion associés.

RemarqueRemarque :

Vous devez créer une structure correspondante pour chaque rôle de connexion dans le groupe qui possédera des objets dans la géodatabase. Vous ne pouvez pas créer une structure pour le rôle de groupe.

Vous pouvez utiliser une application cliente PostgreSQL, telle que pgAdmin III, ou PL/pgSQL pour créer un rôle dans le cluster de bases de données PostgreSQL. Les instructions suivantes vous indiquent comment créer un rôle, une structure et un groupe à l'aide de PL/pgSQL et accorder des autorisations au rôle ou au groupe.

Etapes :
  1. Connectez-vous à psql en tant qu'utilisateur avec les autorisations requises pour créer d'autres rôles dans le SGBD. Il s'agit en général du super-utilisateur postgres.
  2. Exécutez la commande CREATE ROLE.

    Dans cet exemple, le rôle de connexion role4u est créé avec un mot de passe chiffré. Le rôle est capable de créer des objets dans la base de données, mais il ne s'agit pas d'un super-utilisateur, il n'hérite pas des autorisations des groupes et ne peut pas créer de rôles dans le cluster de bases de données.

    CREATE ROLE role4u LOGIN 
    ENCRYPTED PASSWORD 'super.secret' 
    NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE;
    

    AstuceAstuce:

    Si vous savez à l'avance que vous souhaitez attribuer cette connexion à un groupe, créez la connexion avec les autorisations INHERIT.

  3. Exécutez la commande CREATE SCHEMA pour créer une structure pour le rôle de connexion dans la base de données où la géodatabase est stockée.

    Dans cet exemple, la structure role4u correspondante est créée et l'autorisation sur la structure est accordée à la connexion role4u :

    CREATE SCHEMA role4u AUTHORIZATION role4u;
    

  4. Accordez au rôle de connexion les autorisations USAGE et CREATE sur la structure.

    Ces autorisations sont requises pour permettre à l'utilisateur de créer des tables de fichiers journaux. Reportez-vous à la rubrique Options de configuration des tables de fichiers journaux ArcSDE pour PostgreSQL pour plus d'informations sur les tables de fichiers journaux.

    GRANT USAGE ON SCHEMA role4u TO role4u;
    GRANT CREATE ON SCHEMA role4u TO role4u;
    
  5. Accordez les autorisations USAGE sur la structure à chaque rôle de connexion ou de groupe devant accéder aux données dans la structure de l'utilisateur. Dans cet exemple, l'autorisation USAGE est accordée au groupe public afin que tous les utilisateurs qui se connectent à la base de données puissent accéder aux données de la structure role4u :
    GRANT USAGE ON SCHEMA role4u TO public;
    
  6. Si vous souhaitez placer la connexion dans un groupe pour contrôler des autorisations, créez un rôle de groupe.

    Par exemple, vous pouvez créer un groupe pour toutes les connexions qui créent des données dans la géodatabase. Ici, le rôle de groupe s'appelle dataowner :

    CREATE ROLE dataowner 
    NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE;
    
  7. Accordez les privilèges du rôle de groupe à tous les rôles de connexion applicables.

    Dans cet exemple, le groupe est accordé à la connexion role4u. Exécutez cette instruction pour toutes autres connexions que vous souhaitez ajouter au groupe.

    GRANT dataowner TO role4u;
    
  8. Si le rôle de connexion a été créé sans la possibilité d'hériter d'un groupe (comme cela est le cas des exemples donnés dans cette rubrique), permettez au rôle de connexion d'hériter des privilèges des groupes auxquels il est attribué.
    ALTER ROLE role4u INHERIT;
    
  9. Si vous utilisez des groupes, vous pouvez leur accorder des autorisations sur d'autres jeux de données. Si ce n'est pas le cas, accordez des autorisations à chaque rôle de connexion.

    Dans cet exemple, des autorisations sont accordées au groupe dataowner sur les tables geometry_columns et spatial_ref_sys tables dans la structure publique (public). Ces autorisations sont requises pour tous les utilisateurs qui créent des données qui utilisent le stockage de géométries PostGIS.

    GRANT SELECT, INSERT, UPDATE, DELETE 
    ON public.geometry_columns 
    TO dataowner;
    
    GRANT SELECT 
    ON public.spatial_ref_sys 
    TO dataowner;
    
9/12/2013