Hemos buscado en todo internet para darte la solución para tu duda, si continúas con dificultades deja tu comentario y te respondemos con gusto, porque estamos para servirte.
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.
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
‘-
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_parameter
value
-
Establezca el valor predeterminado de la sesión de este rol para el parámetro de configuración especificado. Si
value
esDEFAULT
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. UsarRESET 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. SiIN 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 |