Académique Documents
Professionnel Documents
Culture Documents
Atributos de Roles
Uno de los roles de base de datos puede tener una serie de atributos para definir sus
privilegios e interactuar con el sistema de autenticacin de cliente.
login privilege
Solo roles que tienen el atributo de inicio de sesin puede ser usados como el nombre de rol
inicial de una conexin de base de datos. Un rol con el atributo de inicio de sesin puede
ser considerada lo mismo que un "usuario de base de datos". Para crear un rol con el
privilegio de acceso:
CREATE nombre de rol LOGIN;
CREATE nombre de usuario;
(CREATE USER es equivalente a CREATE ROLE, salvo que CREATE USER asume
LOGIN por defecto, mientras que CREATE ROLE no.)
superuser
El status de superusuario de base de datos se salta todas las comprobaciones de permisos.
Este es un privilegio que no debera ser utilizado con descuido, lo mejor es hacer la mayor
parte de su trabajo como un rol que no sea un super-usuario. Para crear una nueva base de
datos de superusuario, use CREATE ROLE nombre SUPERUSER. Debe hacer esto como
un rol que ya sea un super-usuario.
database creation
Debe ser explcitamente dado para crear bases de datos (con excepcin de los
superusuarios, ya que pasan por alto todos los controles de permiso). Para crear este role,
usar de CREATE ROLE nombre CREATEDB.
role creation
Debe ser explcitamente dado para crear ms roles (a excepcin de los superusuarios, ya
que pasan por alto todos los controles de permiso). Para crear esa funcin, usar CREATE
ROLE nombre CREATEROLE. Un role con el privilegio CREATEROLE puede modificar
y colocar otros roles, tambin, as como de conceder o revocar la pertenencia a ellas. Sin
embargo, para crear, modificar, eliminar o cambiar roles de super-usuario, el estado de
superusuario es imprescindible; CREATEROLE no es suficiente para eso.
password
Slo es significativa si el mtodo de autenticacin de cliente requiere que el usuario
proporcione una contrasea cuando se conecta a la base de datos. La contrasea y los
mtodos de autenticacin MD5 hacen uso de contraseas. Las contraseas de bases de
datos son independientes de las contraseas del sistema operativo. Especificar una
contrasea a la creacin de papel con una cuerda CREATE ROLE Nombre de Usuario
PASSWORD 'contrasea'.
Los atributos de roles pueden ser modificados despus de la creacin con ALTER ROLE.
Vea las pginas de referencia para la funcin de CREATE y ALTER comandos ROLE para
ms detalles.
Consejo: Es una buena prctica crear un ROLE que tenga el CREATEDB CREATEROLE
y privilegios, pero no sea un superusuario, y luego utilizar este ROLE para todas las
corrientes de gestin de bases de datos y roles. Este enfoque evita los peligros de operar
como un superusuario para las tareas que realmente no lo requieren.
Privilegios
Cuando se crea un objeto, se le asigna un propietario. El propietario es normalmente el rol
que ejecut la sentencia de creacin. Para la mayora de los tipos de objetos, el estado
inicial es que slo el propietario (o un super-usuario) puede hacer cualquier cosa con el
objeto. Para permitir que otros roles puedan usarla, deben otorgarse privilegios. Hay varios
tipos diferentes de privilegio: SELECT, INSERT, UPDATE, DELETE, TRUNCATE,
REFERENCES, TRIGGER, CREATE, CONNECT, TEMPORARY, EXECUTE, and
USAGE. Para obtener ms informacin sobre los diferentes tipos de privilegios con el
apoyo de PostgreSQL, consulte la pgina de referencia GRANT.
El nombre especial public puede ser utilizado para conceder un privilegio a cada role en el
sistema. Escrito ALL en lugar de un privilegio especfico establece que todos los
privilegios que se aplican al objeto sern concedidos.
Para revocar el privilegio, utilice el comando REVOKE:
REVOKE ALL ON cuentas de PUBLICA;
Composicin de privilegios
Con frecuencia es conveniente que los usuarios se agrupen para facilitar la administracin
de los privilegios: de esa manera, los privilegios pueden ser concedidos a, o revocados de
un grupo como un todo. En PostgreSQL Esto se hace mediante la creacin de un rol que
representa el grupo y, a continuacin, la concesin de pertenencia al rol del grupo a los
roles de cada usuario.
Para configurar una funcin de grupo, primero crear la funcin:
CREATE ROLE name;
Un rol que se utiliza como un grupo no tiene el atributo LOGIN, aunque se puede
establecer si lo desea.
Una vez que el papel de grupo existe, usted puede agregar y eliminar miembros usando el
comando GRANT y REVOKE:
GRANT group_role TO role1, ... ;
REVOKE group_role FROM role1, ... ;
Se puede conceder la adhesin a los roles de otro grupo, tambin (ya que no hay realmente
una distincin entre las roles de grupo y los roles no grupales). La base de datos no le
Inmediatamente despus de conectar como el rol Joe, un perodo de base de datos tendr el
uso de los privilegios concedidos directamente a Joe adems de los privilegios concedidos
al administrador, porque Joe ", hereda los privilegios de" administrador. Sin embargo, los
privilegios concedidos a wheel no estn disponibles, porque a pesar de que Joe es
indirectamente un miembro de wheel, la composicin es a travs de administrador que tiene
el atributo NOINHERIT. Despus de
SET ROLE admin;
la sesin tendra el uso nicamente de los privilegios concedidos a wheel, y no a los que se
conceden a cualquiera de Joe o de administracin. El estado de privilegio original puede ser
restaurado con cualquiera de:
SET ROLE joe;
SET ROLE NONE;
RESET ROLE;
El comando SET ROLE siempre permite seleccionar cualquier role que la funcin original
de inicio de sesin es directa o indirectamente un miembro. As, en el ejemplo anterior, no
es necesario convertirse en administrador antes de convertirse en wheel.
En el estndar SQL, hay una distincin clara entre los usuarios y roles, y los usuarios no
heredan automticamente los privilegios, mientras que los roles hacer. Este
comportamiento se puede obtener en PostgreSQL, dando roles se utilizan las funciones de
SQL como el atributo INHERIT.