Controllo dell'accesso degli utenti al database SQL Postgre - Amazon Relational Database Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Controllo dell'accesso degli utenti al database SQL Postgre

I nuovi database in Postgre SQL vengono sempre creati con un set predefinito di privilegi public nello schema del database che consente a tutti gli utenti e i ruoli del database di creare oggetti. I privilegi predefiniti permettono agli utenti del database di connettersi al database e di creare tabelle temporanee durante la connessione.

Per controllare meglio l'accesso degli utenti alle istanze di database create sull'istanza per SQL Postgre DB, si consiglia di RDS revocare questi privilegi predefiniti. public Dopo averlo fatto, è consigliabile concedere privilegi specifici agli utenti del database su base più granulare, come mostrato nella procedura seguente.

Per impostare ruoli e privilegi per una nuova istanza database

Supponiamo che tu stia configurando un database su un RDScluster Aurora Postgre DB appena creato per SQL da utilizzare da diversi ricercatori, i quali necessitano tutti dell'accesso in lettura/scrittura al database.

  1. Usa psql (opgAdmin) per connetterti SQL

    psql --host=your-db-instance.666666666666.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password

    Specifica la password, quando richiesto. Il client psql si connette e visualizza il database di connessione amministrativa predefinito postgres=> come prompt.

  2. Per impedire agli utenti del database di creare oggetti nello schema public, eseguire le seguenti operazioni:

    postgres=> REVOKE CREATE ON SCHEMA public FROM PUBLIC; REVOKE
  3. Creare quindi una nuova istanza database:

    postgres=> CREATE DATABASE lab_db; CREATE DATABASE
  4. Revocare tutti i privilegi dallo schema PUBLIC in questo nuovo database.

    postgres=> REVOKE ALL ON DATABASE lab_db FROM public; REVOKE
  5. Creare un ruolo per gli utenti del database.

    postgres=> CREATE ROLE lab_tech; CREATE ROLE
  6. Concedere agli utenti del database con questo ruolo la possibilità di connettersi al database.

    postgres=> GRANT CONNECT ON DATABASE lab_db TO lab_tech; GRANT
  7. Concedere a tutti gli utenti con il ruolo lab_tech tutti i privilegi per questo database.

    postgres=> GRANT ALL PRIVILEGES ON DATABASE lab_db TO lab_tech; GRANT
  8. Creare utenti del database, come segue:

    postgres=> CREATE ROLE lab_user1 LOGIN PASSWORD 'change_me'; CREATE ROLE postgres=> CREATE ROLE lab_user2 LOGIN PASSWORD 'change_me'; CREATE ROLE
  9. Concedere a questi due utenti i privilegi associati al ruolo lab_tech:

    postgres=> GRANT lab_tech TO lab_user1; GRANT ROLE postgres=> GRANT lab_tech TO lab_user2; GRANT ROLE

A questo punto, lab_user1 e lab_user2 possono connettersi al database lab_db. Questo esempio non segue le best practice per l'utilizzo aziendale, che potrebbero includere la creazione di più istanze database, schemi diversi e la concessione di autorizzazioni limitate. Per informazioni più complete e scenari aggiuntivi, consulta Gestione degli utenti e dei ruoli di Postgre. SQL

Per ulteriori informazioni sui privilegi nei SQL database Postgre, consulta il GRANTcomando nella documentazione di Postgre. SQL