Crea utenti e ruoli delle applicazioni in Aurora Postgre -Compatible SQL - Prontuario AWS

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à.

Crea utenti e ruoli delle applicazioni in Aurora Postgre -Compatible SQL

Creato da Abhishek Verma () AWS

Ambiente: PoC o pilota

Fonte: qualsiasi database

Destinazione: database Postgres SQL

Tipo R: Re-architect

Carico di lavoro: open source

Tecnologie: migrazione; database

AWSservizi: AmazonRDS; Amazon Aurora

Riepilogo

Quando esegui la migrazione ad Amazon Aurora SQL Postgre -Compatible Edition, gli utenti e i ruoli del database esistenti nel database di origine devono essere creati nel database compatibile con Aurora Postgre. SQL È possibile creare utenti e ruoli in Aurora Postgre SQL -Compatible utilizzando due approcci diversi:

  • Utilizzate utenti e ruoli simili nel database di destinazione e nel database di origine. In questo approccio, i linguaggi di definizione dei dati (DDLs) vengono estratti per utenti e ruoli dal database di origine. Quindi vengono trasformati e applicati al database di destinazione Aurora SQL Postgre -Compatible. Ad esempio, il post del blog Use SQL to map users, role and grant from Oracle to Postgre SQL tratta dell'utilizzo dell'estrazione da un motore di database di origine Oracle.

  • Utilizza utenti e ruoli standardizzati che vengono comunemente utilizzati durante lo sviluppo, l'amministrazione e per l'esecuzione di altre operazioni correlate nel database. Ciò include le operazioni di sola lettura, lettura/scrittura, di sviluppo, amministrazione e distribuzione eseguite dai rispettivi utenti.

Questo modello contiene le sovvenzioni richieste per la creazione di utenti e ruoli in Aurora SQL Postgre -Compatible richiesta per l'approccio standardizzato di utenti e ruoli. Le fasi di creazione di utenti e ruoli sono allineate alla politica di sicurezza che prevede la concessione del privilegio minimo agli utenti del database. La tabella seguente elenca gli utenti, i ruoli corrispondenti e i relativi dettagli nel database.

Utenti

Ruoli

Scopo

APP_read

APP_RO

Utilizzato per l'accesso in sola lettura allo schema APP

APP_WRITE

APP_RW

Utilizzato per le operazioni di scrittura e lettura sullo schema APP

APP_dev_user

APP_DEV

Utilizzato a scopo di sviluppo sullo schemaAPP_DEV, con accesso in sola lettura allo schema APP

Admin_User

rds_superuser

Utilizzato per eseguire operazioni di amministratore sul database

APP

APP_DEP

Utilizzato per creare gli oggetti nell'ambito dello APP schema e per la distribuzione degli oggetti nello APP schema

Prerequisiti e limitazioni

Prerequisiti

  • Un account Amazon Web Services (AWS) attivo

  • Un database Postgre, un SQL database Amazon Aurora SQL Postgre -Compatible Edition o un database Amazon Relational Database Service (Amazon) per Postgre RDS SQL

Versioni del prodotto

  • Tutte le versioni di Postgre SQL

Architettura

Stack tecnologico di origine

  • Qualsiasi database

Stack tecnologico Target

  • Compatibile con Amazon Aurora Postgres SQL

Architettura Target

Il diagramma seguente mostra i ruoli utente e l'architettura dello schema nel database Aurora SQL Postgre -Compatible.

Ruoli utente e architettura dello schema per il database Aurora Postger -ComaptibleSQL.

                                                                                                                                    

Automazione e scalabilità

Questo modello contiene gli utenti, i ruoli e lo script di creazione dello schema, che è possibile eseguire più volte senza alcun impatto sugli utenti esistenti del database di origine o di destinazione.

Strumenti

AWSservizi

Altri servizi

  • psql è uno strumento front-end basato su terminale che viene installato con ogni installazione di Postgre Database. SQL Ha un'interfaccia a riga di comando per l'esecuzione di comandiSQL, PL- e del sistema operativo. PGSQL

  • pgAdminè uno strumento di gestione open source per SQL Postgre. Fornisce un'interfaccia grafica che consente di creare, gestire e utilizzare oggetti di database.

Epiche

AttivitàDescrizioneCompetenze richieste

Crea l'utente di distribuzione.

L'utente di distribuzione APP verrà utilizzato per creare e modificare gli oggetti del database durante le distribuzioni. Utilizza gli script seguenti per creare il ruolo utente di distribuzione APP_DEP nello schema. APP Convalida i diritti di accesso per assicurarti che questo utente abbia solo il privilegio di creare oggetti nello schema richiesto. APP

  1. Connect all'utente admin e crea lo schema.

    CREATE SCHEMA APP;
  2. Creare l'utente.

    CREATE USER APP WITH PASSWORD <password> ;
  3. Crea il ruolo.

    CREATE ROLE APP_DEP ; GRANT all on schema APP to APP_DEP ; GRANT USAGE ON SCHEMA APP to APP_DEP ; GRANT connect on database <db_name> to APP_DEP ; GRANT APP_DEP to APP;
  4. Per testare i privilegi, connettiti APP e crea le tabelle.

    set search_path to APP; SET CREATE TABLE test(id integer ) ; CREATE TABLE
  5. Controlla i privilegi.

    select schemaname , tablename , tableowner from pg_tables where tablename like 'test' ; schemaname | tablename | tableowner APP | test | APP
DBA

Crea l'utente di sola lettura.

L'utente di sola lettura APP_read verrà utilizzato per eseguire l'operazione di sola lettura nello schema. APP Utilizzare gli script seguenti per creare l'utente di sola lettura. Convalida i diritti di accesso per assicurarti che questo utente abbia il privilegio solo di leggere gli oggetti nello schema APP e di concedere automaticamente l'accesso in lettura per tutti i nuovi oggetti creati nello schema. APP

  1. Crea l'utente. APP_read

    create user APP_read ; alter user APP_read with password 'your_password' ;
  2. Crea il ruolo.

    CREATE ROLE APP_ro ; GRANT SELECT ON ALL TABLES IN SCHEMA APP TO APP_RO ; GRANT USAGE ON SCHEMA APP TO APP_RO GRANT CONNECT ON DATABASE testdb TO APP_RO ; GRANT APP_RO TO APP_read;
  3. Per testare i privilegi, accedi utilizzando l'APP_readutente.

    set search_path to APP ; create table test1( id integer) ; ERROR: permission denied for schema APP LINE 1: create table test1( id integer) ; insert into test values (34) ; ERROR: permission denied for table test SQL state: 42501 select from test no rows selected
DBA

Crea l'utente di lettura/scrittura.

L'utente di lettura/scrittura APP_WRITE verrà utilizzato per eseguire operazioni di lettura e scrittura sullo schema. APP Usa gli script seguenti per creare l'utente di lettura/scrittura e concedergli il ruolo. APP_RW Convalida i diritti di accesso per assicurarti che questo utente disponga dei privilegi di lettura e scrittura solo sugli oggetti dello schema APP e per concedere automaticamente l'accesso in lettura e scrittura per ogni nuovo oggetto creato nello schema. APP

  1. Creare l'utente.

    CREATE USER APP_WRITE ; alter user APP_WRITE with password 'your_password' ;
  2. Crea il ruolo.

    CREATE ROLE APP_RW; GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA APP TO APP_RW ; GRANT CONNECT ON DATABASE postgres to APP_RW ; GRANT USAGE ON SCHEMA APP to APP_RW ; ALTER DEFAULT PRIVILEGES IN SCHEMA APP GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO APP_RW ; GRANT APP_RW to APP_WRITE
  3. Per testare i privilegi, accedi utilizzando l'utente. APP_WRITE

    SET SEARCH_PATH to APP; CREATE TABLE test1( id integer) ; ERROR: permission denied for schema APP LINE 1: create table test1( id integer) ; SELECT * FROM test ; id ---- 12 INSERT INTO test values (31) ; INSERT 0 1

Crea l'utente amministratore.

L'utente amministratore Admin_User verrà utilizzato per eseguire operazioni di amministrazione sul database. Esempi di queste operazioni sono CREATE ROLE eCREATE DATABASE. Admin_Userutilizza il ruolo integrato rds_superuser per eseguire operazioni di amministrazione sul database. Utilizza gli script seguenti per creare e testare il privilegio per l'utente amministratore Admin_User nel database.

  1. Crea l'utente e concedi il ruolo.

    create user Admin_User WITH PASSWORD ‘Your password’ ALTER user Admin_user CREATEDB; ALTER user Admin_user CREATEROLE;
  2. Per testare il privilegio, accedi dall'Admin_Userutente.

    SELECT * FROM APP.test ; id ---- 31 CREATE ROLE TEST ; CREATE DATABASE test123 ;
DBA

Crea l'utente di sviluppo.

L'utente di sviluppo APP_dev_user avrà il diritto di creare gli oggetti nel suo schema locale APP_DEV e di leggere l'accesso allo schemaAPP. Utilizzate i seguenti script per creare e testare i privilegi dell'utente APP_dev_user nel database.

  1. Creare l'utente.

    CREATE USER APP1_dev_user with password ‘your password’;
  2. Crea lo APP_DEV schema per. App_dev_user

    CREATE SCHEMA APP1_DEV ;
  3. Crea il APP_DEV ruolo.

    CREATE ROLE APP1_DEV ; GRANT APP1_RO to APP1_DEV ; GRANT SELECT ON ALL TABLES IN SCHEMA APP1_DEV to APP1_dev_user GRANT USAGE, CREATE ON SCHEMA APP1_DEV to APP1_DEV_USER GRANT APP1_DEV to APP1_DEV_USER ;
  4. Per testare i privilegi, accedi daAPP_dev_user.

    CREATE TABLE APP1_dev.test1( id integer ) ; CREATE TABLE INSERT into APP1_dev.test1 ( select * from APP1.test ); INSERT 0 1 CREATE TABLE APP1.test4 ( id int) ; ERROR: permission denied for schema APP1 LINE 1: create table APP1.test4 ( id int) ;
DBA

Risorse correlate

Documentazione Postger SQL

 

Informazioni aggiuntive

Miglioramento di Postgree 14 SQL

Postgre SQL 14 fornisce una serie di ruoli predefiniti che danno accesso a determinate funzionalità e informazioni privilegiate di uso comune. Gli amministratori (compresi i ruoli che dispongono del CREATE ROLE privilegio) possono concedere questi ruoli o altri ruoli nel loro ambiente agli utenti, fornendo loro l'accesso alle funzionalità e alle informazioni specificate.

Gli amministratori possono concedere agli utenti l'accesso a questi ruoli utilizzando il comando. GRANT Ad esempio, per concedere il pg_signal_backend ruolo aAdmin_User, è possibile eseguire il comando seguente.

GRANT pg_signal_backend TO Admin_User;

Il pg_signal_backend ruolo ha lo scopo di consentire agli amministratori di abilitare ruoli affidabili e non superutente per inviare segnali ad altri backend. Per ulteriori informazioni, consulta il miglioramento di Postgree 14. SQL

Ottimizzazione dell'accesso

In alcuni casi, potrebbe essere necessario fornire un accesso più granulare agli utenti (ad esempio, accesso basato su tabelle o accesso basato su colonne). In questi casi, è possibile creare ruoli aggiuntivi per concedere tali privilegi agli utenti. Per ulteriori informazioni, consulta Postgree Grants SQL.