Agregar usuarios a una base de datos PostgreSQL

PostgreSQL utiliza roles para iniciar la sesión en el cluster de bases de datos y en las bases de datos. Se pueden agregar roles al cluster de bases de datos PostgreSQL.

Los usuarios de bases de datos individuales se llaman roles de inicio de sesión. Para todos los roles de inicio de sesión que serán propietarios de objetos en la geodatabase, también debe crear un esquema en esa base de datos. El esquema debe tener el mismo nombre y ser propiedad del rol de inicio de sesión.

También puede crear grupos de roles a los que se pueden agregar roles de inicio de sesión. A continuación, puede especificar permisos para el grupo que se aplicarán a todos los roles de inicio de sesión asociados.

NotaNota:

Aún así, debe crear un esquema coincidente para cada rol de inicio de sesión que será propietario de objetos en la geodatabase. No se puede crear un esquema para el rol del grupo.

Puede utilizar una aplicación cliente PostgreSQL como PgAdmin III o PL/pgSQL para crear un rol en el cluster de bases de datos PostgreSQL. En estas instrucciones se indica cómo crear un rol, un esquema y un grupo mediante PL/pgSQL y cómo otorgar permisos al rol o al grupo.

SugerenciaSugerencia:

La secuencia de comandos SQL roles_schemas_privileges.sql se ha instalado en SDEHOME > herramientas > postgres. Esta secuencia de comandos se puede modificar y utilizar para crear usuarios y los correspondientes esquemas, y otorgar permisos en la base de datos.

Pasos:
  1. Inicie sesión en PL/pgSQL como usuario con permisos para crear otros roles en el DBMS. Normalmente, se trata del superusuario postgres.
  2. Ejecute el comando CREATE ROLE.

    En este ejemplo se crea un rol de inicio de sesión, role4u, con una contraseña cifrada. El rol puede crear objetos en la base de datos pero no es un superusuario, no hereda permisos de los grupos y no puede crear roles en el cluster de bases de datos.

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

    SugerenciaSugerencia:

    Si sabe de antemano que desea asignar este inicio de sesión a un grupo, cree el inicio de sesión con los permisos INHERIT.

  3. Ejecute el comando CREATE SCHEMA para crear un esquema para el rol de inicio de inicio de sesión en la base de datos en la que está almacenada la geodatabase.

    En este ejemplo, se crea el esquema role4u correspondiente y se le otorga la autorización en el esquema al inicio de sesión role4u:

    CREATE SCHEMA role4u AUTHORIZATION role4u;

  4. Otorgue USAGE y CREATE al rol de inicio de sesión en el esquema.

    Esto es necesario para permitir al usuario crear tablas de archivos de registro. Consulte Opciones de configuración de tablas de archivos de registro de ArcSDE para PostgreSQL para obtener más información.

    GRANT USAGE ON SCHEMA role4u TO role4u; GRANT CREATE ON SCHEMA role4u TO role4u;
  5. Otorgue permisos de USAGE en el esquema a cualquier otro rol de grupo o de inicio de sesión que necesite acceder a los datos en el esquema del usuario. En el siguiente ejemplo, se le otorga USAGE al grupo público para que todos los usuarios que se conecten a la base de datos puedan acceder a los datos en el esquema role4u:
    GRANT USAGE ON SCHEMA role4u TO public;
  6. SI quiere ubicar el inicio de sesión en un grupo para controlar los permisos, cree un rol de grupo.

    Por ejemplo, puede crear un grupo para todos los inicios de sesión que creen datos en la geodatabase. En este caso, el nombre del rol de grupo es dataowner:

    CREATE ROLE dataowner  NOSUPERUSER NOINHERIT CREATEDB NOCREATEROLE;
  7. Otórguele privilegios al rol de grupo para todos los roles de inicio de sesión aplicables.

    En este ejemplo, el grupo se otorga al inicio de sesión role4u. Debería ejecutar esta declaración para cualquier otro inicio de sesión que desee agregar al grupo.

    GRANT dataowner TO role4u;
  8. Si el rol de inicio de sesión se creó sin la capacidad de heredar de un grupo (como en el caso de los ejemplos de este tema), habilite que el rol de inicio de sesión herede privilegios de grupo de los grupos a los cuales está asignado.
    ALTER ROLE role4u INHERIT;
  9. Si está utilizando grupos, puede otorgar permisos de otros datasets al grupo. En caso contrario, otorgue permisos a los roles de inicio de sesión individuales.

    En este ejemplo, se ha otorgado al grupo dataowner permiso sobre las tablas geometry_columns y spatial_ref_sys en el esquema público. Estos permisos son necesarios para cualquier usuario que cree datos que utilicen el almacenamiento de geometría PostGIS.

    GRANT SELECT, INSERT, UPDATE, DELETE  ON public.geometry_columns  TO dataowner;  GRANT SELECT  ON public.spatial_ref_sys  TO dataowner;

3/6/2012