ECF> El día 3 de abril de 2009 11:52, Laura Martinelli ECF> <[email protected]> escribió: >> >> >> ECF> El día 3 de abril de 2009 10:17, Laura Martinelli >> ECF> <[email protected]> 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? >>>> >>>> Espero que puedan ayudarme >>>> >>>> Saludos, >>>> Laura Martinelli >>>> >> >> ECF> Existe una forma que es restringir el acceso desde el pg_hba.conf. >> >> El acceso por el pg_haba.conf lo tengo restringido pero quiero >> tomar todos los recaudos posibles >> >> ECF> El >> ECF> problema es que con Superusuario puede ejecutar 'drop database xxx' >> ECF> sin ser el dueño o no >> ECF> tener permisos sobre esa base. Ese usuario no podrá ver el contenido >> ECF> por más que sea superusuario. >> >> ECF> No creo que en ese caso te convenga que User2 tenga permisos de Super >> ECF> a menos que quieras que ejecute copy desde csv o haga vacuums... >> Preferiría que no sea superusuario, pero si tenga los permisos que >> detallé. >>
ECF> No. Si el usuario no es Owner de la base, no podrá modificar ni crear ECF> schemas dentro de esta. Al menos hasta la versión 8.3.7 (creo que hay ECF> algo pensado para versiones más nuevas, tendría que confirmar) Qué lástima, necesitaba que esos permisos lo tenga un usuario que no fuera el dueño.. >> ECF> el >> ECF> resto de los permisos se los podes asignar (inclusive: es necesario >> ECF> que tenga permisos de borrar la base? ) >> la base no debe poder borrarla pero si por ejemplo renombrar esquemas. >> ¿Puede ser que si creo un usuario, éste se crea dentro del grupo >> public? ¿y que hereda todos sus permisos aunque yo le indique que no >> debe heredar ninguno? ECF> Prueba2 lo cree con la sentencia create user prueba2 noinherit; ECF> trash=# select * from pg_roles where rolname = 'prueba2'; ECF> rolname | rolsuper | rolinherit | rolcreaterole | rolcreatedb | ECF> rolcatupdate | rolcanlogin | rolconnlimit | rolpassword | ECF> rolvaliduntil | rolconfig | oid ECF> ---------+----------+------------+---------------+-------------+--------------+-------------+--------------+-------------+---------------+-----------+------- ECF> prueba2 | f | f | f | f | f ECF> | t | -1 | ******** | ECF> | 18853 ECF> (1 row) ECF> no hereda nada de ningun permiso. gracias por el ejemplo! >> >> ECF> La otra es asignar permisos por esquemas. >> No me sirve porque si un usuario tiene permisos para un determinado >> esquema, existe un proceso que se corre en determinados momentos que >> renombra los esquemas por lo que el usuario pierde los privilegios que >> le había dado anteriormente. >> ECF> Tendrás que correr en esa misma sentencia los grants para ese usuario ECF> sobre ese esquema... En realidad me es imposible porque no puedo modificar ese procedimiento. >> Muchas gracias por tu respuesta. >> Saludos >> Laura. >> >> ECF> De nada, y espero que te sumes al Arpug :) No sabía que existía, ya entré a chusmear de que se trataba, Muchas gracias!! __________ 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 6: ¿Has buscado en los archivos de nuestra lista de correo? http://archives.postgresql.org/pgsql-es-ayuda
