sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo crear un usuario con PSQL

Conéctese a su instancia de servidor PostgreSQL usando el siguiente comando:

sudo -u postgres psql

Seleccione la base de datos a la que le gustaría conectarse con Chartio:

\c databasename;

Cree un nuevo rol para su usuario de solo lectura de Chartio:

CREATE ROLE chartio_read_only_user LOGIN PASSWORD 'secure_password';

Otorgue los privilegios necesarios para que el nuevo usuario se conecte a su
base de datos:

GRANT CONNECT ON DATABASE exampledb TO chartio_read_only_user;
GRANT USAGE ON SCHEMA public TO chartio_read_only_user;

Ejecute el siguiente comando para generar las consultas que otorgarán acceso selecto
a su nuevo usuario:

SELECT 'GRANT SELECT ON '||schemaname||'."'||tablename||'" TO chartio_read_only_user;' FROM pg_tables WHERE schemaname IN ('public') ORDER BY schemaname, tablename;

Verá una lista de sentencias GRANT similar a la siguiente:

Copie las declaraciones GRANT generadas por la consulta y luego péguelas en la ventana de su terminal. Para restringir el acceso a un subconjunto de tablas, solo ejecute las sentencias GRANT para las tablas correspondientes. Para limitar el acceso a columnas específicas, lea cómo limitar el acceso a PostgreSQL mediante el esquema.

GRANT SELECT ON public."album" TO chartio_read_only_user;
GRANT SELECT ON public."artist" TO chartio_read_only_user;
GRANT SELECT ON public."customer" TO chartio_read_only_user;
GRANT SELECT ON public."employee" TO chartio_read_only_user;
GRANT SELECT ON public."genre" TO chartio_read_only_user;
GRANT SELECT ON public."invoice" TO chartio_read_only_user;
GRANT SELECT ON public."invoiceline" TO chartio_read_only_user;
GRANT SELECT ON public."mediatype" TO chartio_read_only_user;
GRANT SELECT ON public."playlist" TO chartio_read_only_user;
GRANT SELECT ON public."playlisttrack" TO chartio_read_only_user;
GRANT SELECT ON public."track" TO chartio_read_only_user;

Su nuevo usuario de solo lectura ahora tiene los permisos necesarios para que Chartio se conecte a su base de datos.