PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Limiter l'accès des utilisateurs PostgreSQL à l'aide du schéma et des vues

Pour limiter l'accès PostgreSQL à des tables et des colonnes spécifiques, vous pouvez utiliser le schéma et les instructions GRANT sélectives.

Reportez-vous aux instructions suivantes pour savoir comment limiter l'accès à certaines tables.

Toutefois, si vous devez limiter l'accès à des colonnes spécifiques, vous devrez peut-être utiliser une combinaison de schémas et de vues pour restreindre l'accès. Vous pouvez également le faire si votre base de données contient plus de 1000 tables et que vous essayez de vous connecter à Chartio.

  1. Connectez-vous à votre base de données PostgreSQL en utilisant psql ou pgadmin. Exécutez ce qui suit pour renvoyer une liste de tables dans votre base de données.

    sudo -u postgres psql c nom de la base de données ;

  2. Créez un schéma spécifique à l'utilisateur en lecture seule de Chartio, exécutez ce qui suit :

    CREATE SCHEMA chartio_read_only ; CREATE ROLE chartio_schema_user LOGIN PASSWORD ‘secure_password’ ; GRANT CONNECT ON DATABASE nom de la base de données TO chartio_schema_user ; OCTROYEZ L'UTILISATION SUR SCHEMA chartio_read_only À chartio_schema_user ;

  3. Examinez les relations de la base de données à l'aide de la commande d.

    d

    Schéma | Nom          | Tapez  | Propriétaire ———-+————————-+———-+————– public | Comptes      | tableau | postgres public | Visiteurs      | tableau | postgres public | Utilisateurs         | tableau | postgres public | Abonnements | tableau | postgres

  4. Votre table Accounts contient des informations sensibles et vous souhaitez que Chartio n'accède qu'aux colonnes Account_ID et Date__Created ._ Exécutez ce qui suit pour ajouter une vue au schéma chartio_read_only et accorder l'accès à cette vue au chartio_schema_user.

    CREATE VIEW chartio_read_only. "Accounts" AS SELECT Account_ID, Date_Created FROM Accounts ; GRANT SELECT ON chartio_read_only."Comptes" À chartio_schema_user ;

  5. Accordez des autorisations pour sélectionner toutes les données du tableau Visiteurs.

    CREATE VIEW chartio_read_only. "Visiteurs" AS SELECT * FROM Visiteurs ; GRANT SELECT ON chartio_read_only."Visiteurs" À chartio_schema_user ;

Maintenant, si vous connectez le chartio_schema_user à votre base de données, il ne pourra accéder qu'aux deux vues limitées que vous avez accordées au schéma.

Pour plus d'informations, consultez la documentation PostgreSQL.