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