Re: permisos

From: Felipe Montecino <ksha(at)mitm(dot)cl>
To: Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: permisos
Date: 2012-06-25 19:23:51
Message-ID: CAO--v25S-HRf9_h_+-uxZNqEH1QSShfYQsf-pb07AeqWbCc-og@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Como les mencione, hice un script para poder dar permisos a las bases de
datos si bien no es el mejor script del mundo pero como mencionaban mas
arriba me encontraba en la misma situacion.

1.- crear archivo pgpass para que el script no pregunte password 1 millon
de veces (dependera de las tablas que hayan en la bd).

cat > .pgpass << EOF
localhost:5432:*somebd:someuser:somepasswd*
EOF

1.1.- cambiar permisos de solo lectura y escritura para el usuario.

chmod 600 .pgpass

2.- crear archivo bd.sql, este script listara las tablas, secuencias, etc.

cat > bd.sql << EOF
\c *somebd*
\d
EOF

3.- script en bash que asigna permisos para que solamente pueda hacer
select's para mas informacion podrian visitar el siguiente enlace:
http://www.postgresql.org/docs/9.0/static/sql-grant.html

Por command line:

for table in $(psql -U*someuser* < bd.sql | grep -r public | awk '{print
$3}'); do psql -U*someuser* -d*somebd* -c "grant select on public.$table to
*USERWITHGRANT* with grant option"; done

Donde USERWITHGRANT sera el otro usuario no owner con permisos de SELECT
sobre las tablas de la bd.

La salida del comando deberia ser algo como ...

GRANT
GRANT
GRANT
GRANT
GRANT
GRANT
GRANT
GRANT

Dependera de los parametros que le pasemos al psql para poder mas detalle.

Saludos.

El 25 de junio de 2012 13:22, Felipe Montecino <ksha(at)mitm(dot)cl> escribió:

> Encontre la forma de hacerlo. En un rato mas les envio el script :).
> El 23/06/2012 23:09, "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
>
>
>> Excerpts from Guillermo Villanueva's message of sáb jun 23 21:28:45 -0400
>> 2012:
>>
>> > El 22 de junio de 2012 19:31, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org
>> >escribió:
>>
>> > > Podrías, por ejemplo, tener roles "dueno_dbprod" y
>> > > "dueno_dbpruebas", y que el rol que usas tú para conectarte tenga
>> acceso
>> > > a ambos; en cambio a tu cumpa le das acceso solamente a
>> dueno_dbpruebas.
>> > >
>> > la idea está buena, pero vuelvo a lo mismo: dueno_dbprod lo pongo como
>> > owner de dbprod pero para que pueda hacer de todo en la dbpruebas deberé
>> > darle acceso uno por uno a cada uno de los objetos, como te digo, es una
>> > buena idea pero perdón por insistir, no resuelve mi problema principal:
>> dar
>> > acceso completo a la base sin hacerlo owner.
>>
>> Entiendo tu punto, pero ¿qué diferencia hay entre el dueño de la BD y
>> otro usuario que puede hacer cualquier cosa?
>>
>> --
>> Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
>> -
>> Enviado a la lista de correo pgsql-es-ayuda (
>> pgsql-es-ayuda(at)postgresql(dot)org)
>> Para cambiar tu suscripción:
>> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>>
>

--

--
Correo no firmado o cifrado

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Armando Venegas Pérez 2012-06-25 19:27:46 Re: [pgsql-es-ayuda] ejecucion de sentencias update de manera mas veloz
Previous Message Felipe Montecino 2012-06-25 17:22:56 Re: permisos