Para limitar el acceso de PostgreSQL a tablas y columnas específicas, puede usar esquemas y sentencias GRANT selectivas.
Consulte las siguientes instrucciones sobre cómo limitar el acceso a ciertas tablas.
Sin embargo, si necesita limitar el acceso a columnas específicas, es posible que deba usar una combinación de esquemas y vistas para restringir el acceso. También puede hacer esto si su base de datos tiene más de 1000 tablas y está intentando conectarse a Chartio.
-
Conéctese a su base de datos PostgreSQL usando psql o pgadmin. Ejecute lo siguiente para devolver una lista de tablas en su base de datos.
sudo -u postgres psql c nombre de la base de datos;
-
Cree un esquema específico para el usuario de solo lectura de Chartio, ejecute lo siguiente:
CREAR ESQUEMA chartio_read_only; CREAR ROL chartio_schema_user CONTRASEÑA DE INICIO DE SESIÓN 'contraseña_segura'; GRANT CONNECT ON DATABASE nombre de base de datos TO chartio_schema_user; CONCEDER USO EN SCHEMA chartio_read_only A chartio_schema_user;
-
Eche un vistazo a las relaciones de la base de datos usando el comando d.
d
Esquema | Nombre | Tipo | Propietario ———-+————————-+———-+————– público | Cuentas | mesa | postgres publico | Visitantes | mesa | postgres publico | Usuarios | mesa | postgres publico | Suscripciones | mesa | postgres
-
Su tabla Cuentas contiene información confidencial y desea que Chartio acceda solo a las columnas Account_ID y Date__Created. ._ Ejecute lo siguiente para agregar una vista al esquema chartio_read_only y otorgar acceso a esa vista a chartio_schema_user.
CREATE VIEW chartio_read_only.”Cuentas” COMO SELECCIONA Account_ID, Date_Created FROM Accounts; GRANT SELECT ON chartio_read_only.”Cuentas” TO chartio_schema_user;
-
Otorgue permisos para seleccionar todos los datos de la tabla Visitantes.
CREAR VISTA chartio_read_only.”Visitantes” COMO SELECCIONAR * DE Visitantes; GRANT SELECT ON chartio_read_only.”Visitantes” TO chartio_schema_user;
Ahora, si conecta chartio_schema_user a su base de datos, solo podrá acceder a las dos vistas limitadas que le ha otorgado al esquema.
Para obtener más información, consulte la documentación de PostgreSQL.