ALTER ROLE – cambiar un rol de base de datos

Sinopsis

ALTER ROLE role_specification [WITH]option[...]whereoption can be:

      SUPERUSER | NOSUPERUSER
    | CREATEDB | NOCREATEDB
    | CREATEROLE | NOCREATEROLE
    | INHERIT | NOINHERIT
    | LOGIN | NOLOGIN
    |REPLICATION| NOREPLICATION
    | BYPASSRLS | NOBYPASSRLS
    | CONNECTION LIMIT connlimit
    |[ ENCRYPTED ] PASSWORD 'password'| PASSWORD NULL| VALID UNTIL 'timestamp'ALTER ROLE name RENAMETO new_name

ALTER ROLE  role_specification  [INDATABASE database_name ]SET configuration_parameter  TO DEFAULT 
ALTER ROLE  role_specification  [INDATABASE database_name ]SET configuration_parameter FROMCURRENTALTER ROLE ALL  [INDATABASE database_name ] RESET configuration_parameter
ALTER ROLE ALL  [INDATABASE database_name ] RESET ALLwhere role_specification can be:

    role_name
  |CURRENT_USER|SESSION_USER

Descripción

ALTER ROLE cambia el attributes de un rol de PostgreSQL.

La primera variante de este comando que aparece en la sinopsis puede cambiar muchos de los roles attributes que se puede especificar en CREATE ROLE. (Todo lo posible attributes están cubiertos, excepto que no hay opciones para agregar o eliminar membresías; use GRANT y REVOKE para eso.) Los atributos que no se mencionan en el comando conservan su configuración anterior. Los superusuarios de la base de datos pueden cambiar cualquiera de estas configuraciones para cualquier rol. Roles que tienen CREATEROLE privilege puede cambiar cualquiera de estas configuraciones excepto SUPERUSER, REPLICATION, y BYPASSRLS; pero solo para roles de no superusuario y no replicación. Los roles ordinarios solo pueden cambiar su propia contraseña.

La segunda variante cambia el nombre del rol. Los superusuarios de la base de datos pueden cambiar el nombre de cualquier función. Roles que tienen CREATEROLE privilege puede cambiar el nombre de los roles que no son de superusuario. No se puede cambiar el nombre del usuario de la sesión actual. (Conéctese como un usuario diferente si necesita hacer eso). MD5-las contraseñas cifradas usan el nombre del rol como sal criptográfica, al cambiar el nombre de un rol se borra su contraseña si la contraseña es MD5-encriptado.

Las variantes restantes cambian la sesión predeterminada de un rol para una variable de configuración, ya sea para todas las bases de datos o, cuando el IN DATABASE se especifica la cláusula, solo para sesiones en la base de datos nombrada. Si ALL se especifica en lugar de un nombre de rol, esto cambia la configuración para todos los roles. Utilizando ALL con IN DATABASE es efectivamente lo mismo que usar el comando ALTER DATABASE ... SET ....

Siempre que el rol inicie posteriormente una nueva sesión, el valor especificado se convierte en el predeterminado de la sesión, anulando cualquier configuración que esté presente en postgresql.conf o ha sido recibido del postgres línea de comando. Esto solo ocurre en el momento del inicio de sesión; la ejecución de SET ROLE o SET SESSION AUTHORIZATION no provoca que se establezcan nuevos valores de configuración. La configuración establecida para todas las bases de datos se reemplaza por la configuración específica de la base de datos adjunta a un rol. La configuración de bases de datos específicas o roles específicos anula la configuración de todos los roles.

Los superusuarios pueden cambiar los valores predeterminados de la sesión de cualquier persona. Roles que tienen CREATEROLE El privilegio puede cambiar los valores predeterminados de los roles que no son de superusuario. Los roles ordinarios solo pueden establecer valores predeterminados por sí mismos. Ciertas variables de configuración no se pueden configurar de esta manera, o solo se pueden configurar si un superusuario emite el comando. Solo los superusuarios pueden cambiar la configuración de todos los roles en todas las bases de datos.

Parámetros

name

El nombre del rol cuyo attributes van a ser modificados.

CURRENT_USER

Modifique el usuario actual en lugar de un rol identificado explícitamente.

SESSION_USER

Modifique el usuario de la sesión actual en lugar de un rol identificado explícitamente.

SUPERUSERNOSUPERUSERCREATEDBNOCREATEDBCREATEROLENOCREATEROLEINHERITNOINHERITLOGINNOLOGINREPLICATIONNOREPLICATIONBYPASSRLSNOBYPASSRLSCONNECTION LIMITconnlimit[ ENCRYPTED ] PASSWORDpasswordPASSWORD NULLVALID UNTILtimestamp

Estas cláusulas alteran attributes originalmente establecido por CREATE ROLE. Para obtener más información, consulte el CREATE ROLE página de referencia.

new_name

El nuevo nombre del rol.

database_name

El nombre de la base de datos en la que se debe establecer la variable de configuración.

configuration_parametervalue

Establezca el valor predeterminado de la sesión de este rol para el parámetro de configuración especificado. Si value es DEFAULT o equivalente, RESET se utiliza, la configuración de la variable específica de la función se elimina, por lo que la función heredará la configuración predeterminada de todo el sistema en las nuevas sesiones. Usar RESET ALL para borrar todas las configuraciones específicas de la función. SET FROM CURRENT guarda el valor actual de la sesión del parámetro como el valor específico de la función. Si IN DATABASE se especifica, el parámetro de configuración se establece o elimina solo para el rol y la base de datos especificados.

La configuración de las variables específicas de la función solo tiene efecto al iniciar sesión; SET ROLE y SET SESSION AUTHORIZATION no procesan configuraciones de variables específicas de roles.

Ver SET y Capítulo 19 para obtener más información sobre los nombres y valores de los parámetros permitidos.

Notas

Utilice CREATE ROLE para agregar nuevos roles y DROP ROLE para eliminar un rol.

ALTER ROLE no puede cambiar las membresías de un rol. Utilice GRANT y REVOKE para hacer eso.

Se debe tener precaución al especificar una contraseña no cifrada con este comando. La contraseña se transmitirá al servidor en texto sin cifrar y también puede registrarse en el historial de comandos del cliente o en el registro del servidor. psql contiene un comando password que se puede usar para cambiar la contraseña de un rol sin exponer la contraseña en texto sin cifrar.

También es posible vincular una sesión predeterminada a una base de datos específica en lugar de a un rol; consulte ALTER DATABASE. Si hay un conflicto, las configuraciones específicas de la función de la base de datos anulan las específicas de la función, que a su vez anulan las específicas de la base de datos.

Ejemplos de

Cambiar la contraseña de un rol:

ALTER ROLE davide WITH PASSWORD 'hu8jmn3';

Eliminar la contraseña de un rol:

ALTER ROLE davide WITH PASSWORD NULL;

Cambie la fecha de caducidad de una contraseña, especificando que la contraseña debe caducar al mediodía del 4 de mayo de 2015 utilizando la zona horaria que es una hora antes de UTC:

ALTER ROLE chris VALID UNTIL 'May 4 12:00:00 2015 +1';

Hacer que una contraseña sea válida para siempre:

ALTER ROLE fred VALID UNTIL 'infinity';

Otorgue a un rol la capacidad de crear otros roles y nuevas bases de datos:

ALTER ROLE miriam CREATEROLE CREATEDB;

Asigne a un rol una configuración no predeterminada del parámetro maintenance_work_mem:

ALTER ROLE worker_bee SET maintenance_work_mem =100000;

Asigne a un rol una configuración no predeterminada, específica de la base de datos del parámetro client_min_messages:

ALTER ROLE fred INDATABASE devel SET client_min_messages = DEBUG;

Compatibilidad

los ALTER ROLE declaración es una extensión de PostgreSQL.

Ver también

CREAR ROL, DROP ROL, ALTER DATABASE, SET

Anterior Hasta próximo
MODIFICAR PUBLICACIÓN Hogar ALTERAR RUTINA