> Date: Wednesday, November 19, 2008, 2:36 PM > Hola a todos. Tengo varias bases de datos. Creo un usuario > al que quiero > negarle todo a las bases de datos existentes. Aquí una > prueba del > comportamiento que quiero evitar (con una única base de > datos): > > Como usuario "postgres": > --------------------- > > postgres=# CREATE DATABASE probando_revoke; > CREATE DATABASE > postgres=# CREATE USER usuario_revoke; > CREATE ROLE > postgres=# REVOKE ALL PRIVILEGES ON DATABASE > probando_revoke FROM usuario_revoke; > postgres=# \c probando_revoke > Ahora está conectado a la base de datos > «probando_revoke». > probando_revoke=# CREATE TABLE tabla1 (id SERIAL, nombre > varchar(30)); > NOTICE: CREATE TABLE creará una secuencia implícita > «tabla1_id_seq» para la > columna serial «tabla1.id» > CREATE TABLE > > --------------------- > Hasta ahí todo bien. En otra terminal: > --------------------- > > [EMAIL PROTECTED]:~$ psql -U usuario_revoke --dbname > probando_revoke > Bienvenido a psql 8.2.11, la terminal interactiva de > PostgreSQL. > > Digite: \copyright para ver los términos de > distribución > \h para ayuda de comandos SQL > \? para ayuda de comandos psql > \g o or termine con punto y coma para ejecutar > una consulta > \q para salir > > probando_revoke=> \dt > Listado de relaciones > Schema | Nombre | Tipo | Dueño > --------+--------+-------+---------- > public | tabla1 | tabla | postgres > (1 fila) > > probando_revoke=> SELECT * FROM tabla1; > ERROR: permiso denegado para la relación tabla1 > probando_revoke=> CREATE TABLE tabla2 (id SERIAL, > apellido varchar(30)); > NOTICE: CREATE TABLE creará una secuencia implícita > «tabla2_id_seq» para la > columna serial «tabla2.id» > CREATE TABLE > probando_revoke=> \dt > Listado de relaciones > Schema | Nombre | Tipo | Dueño > --------+--------+-------+---------------- > public | tabla1 | tabla | postgres > public | tabla2 | tabla | usuario_revoke > > --------------------- > Y ahí ya no me gustó. ¿Hay forma que un usuario que se > puede conectar, no > pueda (aparte de ver los datos de las tablas), crear nuevas > tablas en las > bases de datos?. Perdón por lo extenso. Un cordial > saludo... >
creo que tienes que quitarle los privilegios a las secuencias http://www.postgresql.org/docs/8.3/interactive/sql-grant.html -- TIP 6: ¿Has buscado en los archivos de nuestra lista de correo? http://archives.postgresql.org/pgsql-es-ayuda
