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.
Usa
psql
(opgAdmin) per connetterti SQLpsql --host=
your-db-instance.666666666666
.aws-region
.rds.amazonaws.com --port=5432 --username=postgres --passwordSpecifica la password, quando richiesto. Il client
psql
si connette e visualizza il database di connessione amministrativa predefinitopostgres=>
come prompt.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
Creare quindi una nuova istanza database:
postgres=>
CREATE DATABASE
lab_db
;CREATE DATABASE
Revocare tutti i privilegi dallo schema
PUBLIC
in questo nuovo database.postgres=>
REVOKE ALL ON DATABASE
lab_db
FROM public;REVOKE
Creare un ruolo per gli utenti del database.
postgres=>
CREATE ROLE
lab_tech
;CREATE ROLE
Concedere agli utenti del database con questo ruolo la possibilità di connettersi al database.
postgres=>
GRANT CONNECT ON DATABASE
lab_db
TOlab_tech
;GRANT
Concedere a tutti gli utenti con il ruolo
lab_tech
tutti i privilegi per questo database.postgres=>
GRANT ALL PRIVILEGES ON DATABASE
lab_db
TOlab_tech
;GRANT
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
-
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
Per ulteriori informazioni sui privilegi nei SQL database Postgre, consulta il GRANT