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

Limite el acceso de los usuarios de PostgreSQL mediante el esquema y las vistas

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.

  1. 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;

  2. 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;

  3. 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

  4. 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;

  5. 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.