Concedere privilegi SELECT o EXECUTE agli oggetti SYS - 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à.

Concedere privilegi SELECT o EXECUTE agli oggetti SYS

Solitamente si trasferiscono i privilegi utilizzando ruoli che possono contenere molti oggetti. Puoi concedere privilegi a un singolo oggetto utilizzando la procedura in Amazon RDS rdsadmin.rdsadmin_util.grant_sys_object. La procedura concede solo i privilegi già concessi all'utente master tramite un ruolo o una concessione diretta.

La procedura grant_sys_object include i seguenti parametri.

Importante

Per tutti i valori dei parametri, utilizzare maiuscole a meno che non sia stato creato l'utente con un identificatore con distinzione tra maiuscole e minuscole. Ad esempio, se esegui CREATE USER myuser o CREATE USER MYUSER, il dizionario dati memorizza MYUSER. Tuttavia, se si utilizzano virgolette doppie in CREATE USER "MyUser", il dizionario dati memorizza MyUser.

Nome del parametro Tipo di dati Default Campo obbligatorio Descrizione

p_obj_name

varchar2

Il nome dell'oggetto per il quale concedere privilegi. L'oggetto può essere una directory, funzione, pacchetto, procedura, sequenza, tabella o visualizzazione. I nomi degli oggetti devono essere scritti allo stesso modo in cui appaiono in DBA_OBJECTS. La maggior parte degli oggetti di sistema è scritta in maiuscolo, quindi consigliamo di provare prima il maiuscolo.

p_grantee

varchar2

Il nome dell'oggetto al quale concedere privilegi. L'oggetto può essere uno schema o un ruolo.

p_privilege

varchar2

null

p_grant_option

booleano

false

No

Impostato su true per utilizzare l'opzione concessione.

L'esempio seguente concede certi privilegi su un oggetto denominato V_$SESSION a un utente denominato USER1.

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT'); end; /

L'esempio seguente concede certi privilegi su un oggetto denominato V_$SESSION a un utente denominato USER1 con l'opzione concessione.

begin rdsadmin.rdsadmin_util.grant_sys_object( p_obj_name => 'V_$SESSION', p_grantee => 'USER1', p_privilege => 'SELECT', p_grant_option => true); end; /

Per poter concedere privilegi per un oggetto, quei privilegi devono essere concessi all'account direttamente con l'opzione concessione o tramite un ruolo concesso utilizzando with admin option. Nel caso più comune, potresti voler concedere SELECT a una visualizzazione DBA concessa al ruolo SELECT_CATALOG_ROLE. Se quel ruolo non è già concesso direttamente all'utente utilizzando with admin option, non sarai in grado di trasferire il privilegio. Se disponi del privilegio DBA, puoi concedere il ruolo direttamente a un altro utente.

L'esempio seguente concede SELECT_CATALOG_ROLE e EXECUTE_CATALOG_ROLE a USER1. Siccome with admin option viene utilizzato, USER1 può ora garantire l'accesso agli oggetti SYS che sono stati concessi a SELECT_CATALOG_ROLE.

GRANT SELECT_CATALOG_ROLE TO USER1 WITH ADMIN OPTION; GRANT EXECUTE_CATALOG_ROLE to USER1 WITH ADMIN OPTION;

Gli oggetti già concessi a PUBLIC non devono essere concessi nuovamente. Se utilizzi la procedura grant_sys_object per concedere nuovamente l'accesso, la chiamata di procedura va a buon fine.