sql >> Databasteknik >  >> RDS >> PostgreSQL

Begränsa PostgreSQL-användaråtkomst med hjälp av schema och vyer

För att begränsa PostgreSQL-åtkomst till specifika tabeller och kolumner kan du använda schema och selektiva GRANT-satser.

Se följande instruktioner om hur du begränsar åtkomst till vissa tabeller.

Men om du behöver begränsa åtkomsten till specifika kolumner kan du behöva använda en kombination av scheman och vyer för att begränsa åtkomsten. Du kan också göra detta om din databas har över 1000 tabeller och du försöker ansluta till Chartio.

  1. Anslut till din PostgreSQL-databas med psql eller pgadmin. Kör följande för att returnera en lista med tabeller i din databas.

    sudo -u postgres psql c databasnamn;

  2. Skapa ett schema specifikt för Chartios skrivskyddade användare kör följande:

    SKAPA SCHEMA chartio_read_only; SKAPA ROLL chartio_schema_user INLOGGNINGSLÖSENORD ‘secure_password’; BETYD ANSLUTNING PÅ DATABAS databasnamn TILL chartio_schema_user; BEVISA ANVÄNDNING PÅ SCHEMA chartio_read_only TO chartio_schema_user;

  3. Ta en titt på databasrelationerna med kommandot d.

    d

    Schema | Namn          | Skriv  | Ägare ———-+————————-+————+————– offentlig | Konton      | bord | postgres public | Besökare      | bord | postgres public | Användare         | bord | postgres public | Prenumerationer | bord | postgres

  4. Din kontotabell innehåller känslig information och du vill att Chartio endast ska få tillgång till kolumnerna Account_ID och Date__Created ._ Kör följande för att lägga till en vy till chartio_read_only-schemat och ge åtkomst till den vyn till chartio_schema_user.

    CREATE VIEW chartio_read_only.”Konton” SOM SELECT Account_ID, Date_Created FROM Accounts; BETYD VAL PÅ chartio_read_only."Konton" TO chartio_schema_user;

  5. Ge behörighet att välja all data från Besökstabellen.

    SKAPA VY chartio_read_only.”Besökare” SOM SELECT * FROM Besökare; BETYD VAL PÅ chartio_read_only."Besökare" TO chartio_schema_user;

Om du nu ansluter chartio_schema_user till din databas kommer den bara att kunna komma åt de två begränsade vyerna du har beviljat schemat.

För mer information, se PostgreSQL-dokumentationen.


  1. Finns det ett ANSI SQL-alternativ till nyckelordet MYSQL LIMIT?

  2. Identitetsökningen hoppar i SQL Server-databasen

  3. 6 sätt att ta bort dubbletter av rader som har en primärnyckel i Oracle

  4. Konfigurera och konfigurera SQL Server-replikering