Autorizzazione - AWS Guida prescrittiva

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

Autorizzazione

Nel processo di autorizzazione, il gestore del database ottiene informazioni sull'ID di autorizzazione dell'utente autenticato. L'ID di autorizzazione indica quali operazioni di database l'utente può eseguire, inclusi gli oggetti del database a cui l'utente può accedere. Le autorizzazioni, dichiarate esplicitamente all'interno di Db2, consentono agli utenti di eseguire azioni specifiche.

Per un ID di autorizzazione, le autorizzazioni possono essere concesse a vari livelli:

  • Principale: le autorizzazioni principali vengono concesse direttamente all'ID di autorizzazione.

  • Secondario: le autorizzazioni secondarie vengono concesse ai gruppi e ai ruoli di cui l'ID di autorizzazione è membro.

  • Pubblico: il livello pubblico è un gruppo Db2 speciale che rappresenta tutti i membri dell'organizzazione.

  • Sensibile al contesto: queste autorizzazioni vengono concesse a un ruolo contestuale affidabile.

Livelli di autorità Db2

Db2 gestisce le autorità ai seguenti livelli:

  • Livello di istanza o sistema:SYSADM,,SYSCTRL, SYSMAINT SYSMON

    • Livello del database: DBADM SQLADM ((EXPLAINWLMADM), SECADM (ACCESSCTRL), DATAACCESS

      • Livello dello schema: SCHEMAADM (LOAD)ACCESSCTRL, DATAACCES S

      • Privilegi aggiuntivi a livello di schema

Database privilege levels hierarchy showing instance, database, and schema levels with associated permissions.

Db2 supporta i seguenti privilegi aggiuntivi a livello di schema:

  • SELECTINconsente all'utente di recuperare righe da tutte le tabelle o viste definite nello schema.

  • INSERTINconsente all'utente di inserire righe e di eseguire l'IMPORTutilità su tutte le tabelle o viste definite nello schema.

  • UPDATEINconsente all'utente di eseguire l'Updateistruzione su tutte le tabelle o viste aggiornabili definite nello schema.

  • DELETEINconsente all'utente di eliminare righe da tutte le tabelle o viste aggiornabili definite nello schema.

  • EXECUTEINconsente all'utente di eseguire tutte le funzioni, i metodi, le procedure, i pacchetti o i moduli definiti dall'utente definiti nello schema.

  • CREATEINconsente all'utente di creare oggetti all'interno dello schema.

  • ALTERINconsente all'utente di modificare gli oggetti all'interno dello schema.

  • DROPINconsente all'utente di eliminare oggetti dall'interno dello schema.

ID di autorizzazione

Un ID di autorizzazione Db2 è composto da quanto segue:

  • Tipo di ID di autorizzazione

    • Utente individuale (U)

    • Gruppo (G)

    • Ruolo (R)

    • Pubblico (P)

  • Valore dell'ID di autorizzazione

Un ID di autorizzazione, a cui è possibile associare le autorità e i privilegi, viene utilizzato per l'identificazione e il controllo dell'autorizzazione Db2.

I seguenti sono i termini dell'ID di autorizzazione primario comunemente usati in Db2:

  • ID di autorizzazione del sistema: l'ID di autorizzazione utilizzato per eseguire qualsiasi controllo di autorizzazione iniziale, ad esempio il controllo dei CONNECT privilegi durante l'CONNECTelaborazione.

  • ID di autorizzazione della sessione: l'ID di autorizzazione utilizzato per qualsiasi controllo dell'autorizzazione della sessione successivo ai controlli iniziali eseguiti durante l'CONNECTelaborazione. Per vedere il valore corrente dell'ID di autorizzazione della sessione, utilizza il registro SESSION_USER speciale.

  • ID di autorizzazione dell'istruzione: l'ID di autorizzazione (insieme all'autorizzazione secondaria associata IDs per gruppi o ruoli) utilizzato per i requisiti di autorizzazione di un'istruzione SQL. Viene utilizzato anche per determinare la proprietà dell'oggetto, a seconda dei casi. Può variare a seconda del tipo di istruzione SQL e del contesto in cui viene emessa.

Le autorità e i privilegi vengono acquisiti tramite meccanismi espliciti, come REVOKE le istruzioni GRANT e, o meccanismi impliciti, come il privilegio ottenuto tramite la proprietà degli oggetti. Possono anche essere acquisiti temporaneamente attraverso più contesti di elaborazione. Ad esempio, ti è stato concesso l'accesso a una vista, che implicitamente ti dà accesso agli oggetti in quella definizione di vista. Inoltre, un EXECUTE privilegio su un pacchetto vi consentirà di accedere a qualsiasi SQL statico contenuto in quel pacchetto. L'altro modo per ottenere autorità e privilegi temporanei consiste nell'utilizzare un contesto affidabile.

Contesto attendibile

Un contesto affidabile è un oggetto di database che definisce una relazione di trust tra il database e un server di applicazioni esterno o un altro server di database. La relazione di trust si basa sui seguenti attributi di trust:

  • Indirizzo IP

  • ID di autorizzazione del sistema

  • Livello di crittografia per la comunicazione dei dati

Se una connessione corrisponde agli attributi di fiducia all'interno di un oggetto di contesto affidabile definito, viene stabilita una connessione affidabile. Esistono due tipi di connessione affidabile:

  • Connessione affidabile implicita: una connessione affidabile implicita consente a un utente di ereditare un ruolo che non gli è disponibile al di fuori dell'ambito di tale definizione di connessione affidabile. All'ID di autorizzazione della sessione della connessione viene assegnata un'appartenenza temporanea a un ruolo dichiarato nella definizione del contesto affidabile.

    Il diagramma seguente mostra un esempio di connessione affidabile implicita in cui è consentita la connessione da un solo indirizzo IP.

     

    ""
    1. Il ruolo dbconnrole viene creato e viene concessa la connessione al database. Il contesto affidabile ctximpl viene creato in base alla authid ABC connessione utilizzando l'indirizzo IP 10.10.10.1 e il ruolo predefinitodbconnrole.

    2. L'utente ABC può connettersi al database dall'indirizzo IP10.10.10.1.

    3. L'utente non ABC può connettersi dall'indirizzo IP10.10.10.2.

  • Connessione esplicita e affidabile: una connessione affidabile esplicita consente a un server di applicazioni affidabile o a un altro server di database Db2 di cambiare l'ID utente corrente sulla connessione esistente in modo efficiente. Un server delle applicazioni stabilisce la connessione originale con una richiesta esplicita di fiducia. Una volta stabilita la fiducia, il server delle applicazioni può inviare richieste al server del database per modificare l'ID di autorizzazione della sessione per qualsiasi nuova unità di lavoro. L'ID utilizzato per eseguire la richiesta di connessione iniziale richiede solo CONNECT i privilegi sul server.

    Le connessioni affidabili esplicite sono utili quando si dispone di un server di livello intermedio che deve inviare richieste di database per conto di più utenti con diversi set di modelli di accesso su vari oggetti di database, come le tabelle. L'oggetto di contesto attendibile creato sul server del database consente al server di livello intermedio di stabilire una connessione affidabile esplicita al database e quindi di passare l'ID utente corrente della connessione all'ID utente corrispondente senza la necessità di eseguire nuovamente l'autenticazione sul server del database. In base ai privilegi concessi agli oggetti del database per l'ID di autorizzazione dell'utente, l'utente può continuare a eseguire operazioni, mantenendo la vera identità dell'utente che esegue attività specifiche.

    Il diagramma seguente mostra un esempio di connessione affidabile esplicita in cui USER1USER2, e USER3 tutti si connettono tramite. authid APPID

    ""
    1. Il contesto affidabile ctxexpl viene creato in base alla connessione che utilizza l'indirizzo IP authid APPID from 10.10.10.1 per gli utenti USER1USER2, e. USER3

    2. Gli utenti si connettono a un server di livello intermedio.

    3. La connessione affidabile viene stabilita utilizzando. APPID