sql >> Database teknologi >  >> RDS >> PostgreSQL

Begræns PostgreSQL brugeradgang ved hjælp af skema og visninger

For at begrænse PostgreSQL-adgang til specifikke tabeller og kolonner kan du bruge skema og selektive GRANT-sætninger.

Se følgende instruktioner om, hvordan du begrænser adgangen til visse tabeller.

Men hvis du har brug for at begrænse adgangen til bestemte kolonner, skal du muligvis bruge en kombination af skemaer og visninger for at begrænse adgangen. Du kan også gøre dette, hvis din database har over 1000 tabeller, og du forsøger at oprette forbindelse til Chartio.

  1. Opret forbindelse til din PostgreSQL-database ved hjælp af psql eller pgadmin. Kør følgende for at returnere en liste over tabeller i din database.

    sudo -u postgres psql c databasenavn;

  2. Opret et skema specifikt for Chartios skrivebeskyttede bruger, kør følgende:

    OPRET SKEMA chartio_read_only; OPRET ROLLE chartio_schema_user LOGIN PASSWORD ‘secure_password’; GIV FORBINDELSE PÅ DATABASE databasenavn TIL chartio_schema_user; GIV BRUG PÅ SCHEMA chartio_read_only TIL chartio_schema_user;

  3. Tag et kig på databaserelationerne ved at bruge kommandoen d.

    d

    Skema | Navn          | Indtast  | Ejer ———-+————————-+————-+————– offentlig | Konti      | bord | postgres offentlig | Besøgende      | bord | postgres offentlig | Brugere         | bord | postgres offentlig | Abonnementer | bord | postgres

  4. Din kontotabel indeholder følsomme oplysninger, og du ønsker, at Chartio kun skal have adgang til kolonnerne Account_ID og Date__Created ._ Kør følgende for at tilføje en visning til chartio_read_only-skemaet og give adgang til denne visning til chartio_schema_user.

    OPRET VISNING chartio_read_only."Konti" SOM SELECT Account_ID, Date_Created FROM Accounts; TILDEL SELECT ON chartio_read_only."Konti" TIL chartio_schema_user;

  5. Giv tilladelse til at vælge alle data fra tabellen Besøgende.

    OPRET VISNING chartio_read_only.”Visitors” SOM SELECT * FRA Besøgende; GIV SELECT ON chartio_read_only."Besøgende" TIL chartio_schema_user;

Hvis du nu forbinder chartio_schema_user til din database, vil den kun kunne få adgang til de to begrænsede visninger, du har givet til skemaet.

For mere information, se PostgreSQL-dokumentationen.


  1. Opret en tabel i MySQL

  2. Kontroller, at tabellen eksisterer eller ej, før du opretter den i Oracle

  3. PL/pgSQL anonym kodeblok

  4. SQL Server:SLET vs TRUNCATE