AH> Laura Martinelli escribió:
>> Buenas a todos,
>> 
>> Tengo la siguiente duda:
>> 
>> Se tiene una Base de Datos DB1 cuyo dueño es User1. Necesitamos que
>> otro usuario, User2 tenga permisos de "Superusuario" , que pueda
>> acceder, borrar, crear y renombrar (tablas, esquemas, vistas, indices,
>> etc) sobre DB1, sin ser dueño de la misma, pero al mismo tiempo NO
>> debe tener acceso al resto de las Bases existentes, como lo hace el
>> superusario.
>> ¿Es esto posible? ¿De que manera se crearía el usuario User2 y como se
>> le darían los permisos?  

AH> CREATE ROLE "User2" LOGIN;
AH> GRANT CREATE ON DATABASE "DB1" TO "User2";

AH> Con eso, User2 puede crear esquemas en la base de datos DB1.
AH> SET SESSION AUTHORIZATION "User2";
AH> CREATE SCHEMA un_esquema;

AH> Una vez que ha creado el esquema, es dueño de él y por lo tanto puede
AH> crear y renombrar objetos dentro de él, y también borrarlo.
AH> Alternativamente, User1 puede crear el esquema dándoselo a User2:

AH> SET SESSION AUTHORIZATION "User2";
AH> CREATE SCHEMA otro_schema AUTHORIZATION "User2";

AH> Lo de LOGIN es para que User2 pueda conectarse a la base de datos.  Si
AH> no se lo das, la única forma de usar User2 es a través de SET SESSION
AH> AUTHORIZATION o SET ROLE.

AH> Observa que le puedes otorgar User2 a un hipotético User3:
AH> GRANT "User2" TO "User3";

AH> en cuyo caso User3 va a tener automáticamente todos los privilegios de
AH> User2.

Muchisimas gracias Alvaro, voy a probarlo!
Laura.



__________ Information from ESET Mail Security, version of virus signature 
database 3986 (20090403) __________

The message was checked by ESET Mail Security.
http://www.eset.com



--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a