permisos de usuarios en Base de Datos Postgres

poppetmaster

Lanero Reconocido
11 Feb 2004
804
Hola a todos...
Bueno mi inquietud es que no encuentro la forma de asignarle a un usuario uno o todos los permisos sobre una base de datos, es decir digamos que en mi servidor tengo 6 bases de datos pero quiero crear un usuario que solo tenga permisos de a,r,w,R a dos de esas 6 DB. Lo unico parecido es el comando GRANT queda privilegios es sobre objetos de una base de datos (tablas, funciones, secuencias)... pense que el comando serviria para la asignarle los permisos a la base de datos pero no me funciono ( GRANT ALL ON base_datos TO usuario) :confused:

Bueno de antemano agradesco la informacion que me pueda orientar...
 
Poppet .. depronto si te entendí bien:

La solución es simplemente crear un usuario sin privilegios a accesar a un esquema determinado, el esquema esta compuesto por tablas, indices, etc ... simplemente no le das acceso a eso, ¿como? no sé el comando, pero con PgAdmin3 lo he hecho.
 
El_Rulas dijo:
Poppet .. depronto si te entendí bien:

La solución es simplemente crear un usuario sin privilegios a accesar a un esquema determinado, el esquema esta compuesto por tablas, indices, etc ... simplemente no le das acceso a eso, ¿como? no sé el comando, pero con PgAdmin3 lo he hecho.
Rulas estoy demasiado lelo...no entendi muy bien lo que me dijiste, si me podrias indicar lo que hiciste en pgAdmin3 tal vez te entienda mejor....

Lo que intente realizar fue crear un usuario (digamos pepito) :
createuser pepito -P
Enter password for new user:
Enter it again:
Shall the new user be allowed to create databases? (y/n) n
Shall the new user be allowed to create more new users? (y/n) n

cuando me "logueo" al server con este usuario el ingresa normalmente, pero no puede ejecutar ninguna accion porque no tiene privilegios para hacer algo sobre ninguna de las bases de datos que estan en el server... aqui es donde tengo el problema, otra cosa seria si le hubiera dicho que creara base de datos este podria crear alguna y tendria todos los privilegios sobre esta....
Bueno espero que alguien me pueda ayudar y gracias El_Rulas por la info
 
Gracias krawek por la info.. pero tengo una duda,,, a la hora de yo darle privilegios a un usuario sobre una base de datos, este automaticamente puede ejecutar las operacion sobre esta (select, update, delete, insert).. o tambien tengo que indicarselo a cada tabla de la base de datos, lo digo porque realice un grant a una base de datos:
grant all privileges on database prueba to pepito;
pero a la hora de realizar un select a cualquiera de las tablas de la db me dice que no tengo permisos.. :(
 
Segun lo que he entendido hasta el momento es que he estado MFT con el comando
grant all privileges on database
yo creia que este asignaba todos los permisos para trabajar sobre la db, eso es cierto hasta cierto punto porque lo que permite es crear nuevos esquemas, pero si quiero que se creen tablas en un esquema pues debo de dar permisos para que lo haga :
grant all privileges on schema sh_name to username
(eso si el usuario podria crear tablas en el esquema publico dado que para este estan todos los privilegios)
y asi sucesivamente por cada cosa que quiera que el usuario pueda crear (lenguages, funciones) o ejecutar (select, insert, update, delete) y lo anterior es por cada tabla, para mas facilidad he pensado en crear grupos a los cuales agrego ciertos permisos y ha estos les iria agregando los usuarios....
Bueno si alguien tiene mas ideas o explicaciones pos seran muy bienvenidas...
De antemano gracias por la info......
 
Claro poppet, es un problema de administración de bases de datos en general, más que de postgres, la manera que sugieres es indicada, usalo así a ver.
 

Los últimos temas