> 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

Responder a