Re: Retringir permisos a Usuario (REVOKE)

From: Lennin Caro <lennin(dot)caro(at)yahoo(dot)com>
To: Lista Ayuda Pgsql <pgsql-es-ayuda(at)postgresql(dot)org>, Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
Subject: Re: Retringir permisos a Usuario (REVOKE)
Date: 2008-11-19 18:28:21
Message-ID: 580214.82382.qm@web59513.mail.ac4.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

> 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:
> ---------------------
>
> postgres(at)lagash-ng:~$ 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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Sebastián Villalba 2008-11-19 19:40:22 Re: Retringir permisos a Usuario (REVOKE)
Previous Message Diego Ayala 2008-11-19 18:04:09 Re: Restore de una tabla de un esquema a otro esquema