Retringir permisos a Usuario (REVOKE)

From: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Retringir permisos a Usuario (REVOKE)
Date: 2008-11-19 14:36:39
Message-ID: 20081119142256.M61417@fcm.unc.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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...

-
-------------------------------------------
Sebastián Villalba
A. Gestión Informática
Facultad de Cs. Médicas
U.N.C. - Argentina
-------------------------------------------

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Nestor Sertzen 2008-11-19 14:42:59 Re: Instalacion de postgres en windows
Previous Message cgrillo.pg 2008-11-19 14:33:48 Instalacion de postgres en windows