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 <[email protected]> escribió: > Encontre la forma de hacerlo. En un rato mas les envio el script :). > El 23/06/2012 23:09, "Alvaro Herrera" <[email protected]> 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 <[email protected] >> >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 <[email protected]> >> - >> Enviado a la lista de correo pgsql-es-ayuda ( >> [email protected]) >> Para cambiar tu suscripción: >> http://www.postgresql.org/mailpref/pgsql-es-ayuda >> > -- -- Correo no firmado o cifrado
