usuarios usuario tipos superusuario saber privilegios postgres permisos los listar lectura dar crear como postgresql psql

usuario - roles y privilegios en postgresql



no puede otorgar privilegios de usuario a la base de datos postgresql(para una aplicaciĆ³n de Rails) (3)

Intente hacer que el usuario CREATEDB permiso de CREATEDB y luego puede crear la base de datos con ese usuario. El usuario tendrá permiso en esa base de datos a partir de entonces.

CREATE USER myuser CREATEDB;

Sé que esta no es una solución perfecta, pero espero que esto funcione para usted

-Brian

Revisé: http://www.postgresql.org/docs/current/interactive/app-psql.html#APP-PSQL-META-COMMANDSf y https://www.digitalocean.com/community/articles/how-to-use-roles-and-manage-grant-permissions-in-postgresql-on-a-vps--2 pero aún no pudo hacer que esto funcione.

Hice esto para que Postgres funcione localmente: https://askubuntu.com/questions/42013/problem-installing-and-configuring-postgresql .

pavan@myUbuntuLaptop% which psql /usr/bin/psql

esto me metió en

pavan@myUbuntuLaptop% sudo su - postgres [sudo] password for pavan: postgres@myUbuntuLaptop%

Asi que...

postgres@myUbuntuLaptop% createuser pavankat Shall the new role be a superuser? (y/n) y postgres@myUbuntuLaptop%

esto consigue todos los roles

/du

Eso muestra a Pavankat, así que se hizo el papel.

Esto funciona:

postgres=# CREATE database lateraldev; CREATE DATABASE postgres=# /l

Ahora trato de otorgar privilegios a lateraldev al usuario, pavankat:

esto no funciona

GRANT RULE ON lateraldev to pavankat

no funciona:

GRANT ALL ON lateraldev TO pavankat;

no funciona:

postgres=# GRANT ALL ON lateraldev TO pavankat; ERROR: relation "lateraldev" does not exist

esto parecía que funcionaba pero, / du no mostró nada:

postgres=# GRANT ALL ON DATABASE lateraldev TO pavankat; GRANT

Lo mismo con esto, no lo hace:

postgres=# GRANT ALL ON ALL TABLES IN SCHEMA public TO pavankat; GRANT postgres=# GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO pavankat; GRANT postgres=# GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO pavankat; GRANT postgres=# /du

Utilicé esta publicación: http://imaginaryrobots.wordpress.com/2010/03/10/grant-all-in-postgres/ y copié el script de shell en la aplicación Rails.

luego corrió (para hacer el archivo ejecutable):

pavan@myUbuntuLaptop% chmod 755 give_permissions_script.sh

y no funciona:

postgres@myUbuntuLaptop$ ./give_permissions_script.sh GRANT ALL ON DATABASE lateraldev TO pavankat; could not change directory to "/home/pavan/Dropbox/venturelateral" could not change directory to "/home/pavan/Dropbox/venturelateral"

probé esto: http://smokeandumami.com/2009/11/11/grant-permissions-on-all-tables-and-sequences-in-postgresql/ y parece haber hecho algo, pero no funciona:

pavan@myUbuntuLaptop% chmod 755 give_permissions_script2.sh pavan@myUbuntuLaptop% ./give_permissions_script2.sh GRANT SELECT,UPDATE,DELETE,INSERT ON TABLE public.relname to pavankat;

ver:

postgres=# grant all privileges on database lateraldev to pavan; GRANT postgres=# /du

Esto tampoco funciona: primero conéctese a la base de datos:

postgres=# psql lateraldev lateraldev=# GRANT ALL ON DATABASE lateraldev TO pavankat; GRANT lateraldev=# /du List of roles Role name | Attributes | Member of -----------+------------------------------------------------+----------- pavan | Superuser, Create role, Create DB, Replication | {} pavankat | Superuser, Create role, Create DB, Replication | {} postgres | Superuser, Create role, Create DB, Replication | {}

Me he quedado sin ideas. ¿Ayudame por favor?

Feliz Navidad y Felices Fiestas!


así que después de un poco de excavación alrededor. Encontré esto en el sitio web de postgres. Esencialmente, cualquier otra cosa que no sea el nombre de una tabla necesita que se llame explícitamente al tipo al otorgar el permiso.

GRANT ALL PRIVILEGES ON DATABASE my_newly_created_db_name TO my_user_name;

http://www.postgresql.org/message-id/[email protected]


has probado:

--Change the database ownership alter database lateraldev owner to pavan; --and do the same for all tables psql -tc "select ''alter table '' || tablename || '' owner to pavan;'' from pg_tables where schemaname not in (''pg_catalog'', ''information_schema'');" lateraldev | psql -a lateraldev