

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erteilen von SELECT- oder EXECUTE-Berechtigungen für SYS-Objekte
<a name="Appendix.Oracle.CommonDBATasks.TransferPrivileges"></a>

Im Normalfall werden Sonderrechte mithilfe von Rollen übertragen, die viele Objekte beinhalten können. Um den Puffer-Cache zu leeren, verwenden Sie die Amazon RDS-Prozedur `rdsadmin.rdsadmin_util.grant_sys_object`. Die Prozedur gewährt nur Berechtigungen, die dem Masterbenutzer bereits über eine Rolle oder direkte Erteilung gewährt wurden. 

Die Prozedur `grant_sys_object` hat die folgenden Parameter. 

**Wichtig**  
Verwenden Sie für alle Parameterwerte Großbuchstaben, es sei denn, Sie haben den Benutzer mit einer Kennung mit bedeutsamer Groß- und Kleinschreibung erstellt. Wenn Sie z. B. `CREATE USER myuser` oder `CREATE USER MYUSER` ausführen , wird im Datenwörterbuch `MYUSER` gespeichert. Wenn Sie jedoch doppelte Anführungszeichen in `CREATE USER "MyUser"` verwenden, speichert das Datenwörterbuch `MyUser`.


****  

| Parametername | Datentyp | Standard | Erforderlich | Beschreibung | 
| --- | --- | --- | --- | --- | 
|  `p_obj_name`  |  varchar2  |  —  |  Ja  |  Der Name des Objekts dem die Sonderrechte erteilt werden sollen. Das Objekt kann ein Verzeichnis, eine Funktion, ein Paket, eine Prozedur, eine Sequenz, eine Tabelle oder eine Ansicht sein. Objektnamen müssen genauso angegeben werden, wie sie in sin `DBA_OBJECTS`. Die meisten Systemobjekte sind in Großbuchstaben definiert. Daher empfehlen wir Ihnen, zuerst diese Schreibweise zu verwenden.   | 
|  `p_grantee`  |  varchar2  |  —  |  Ja  |  Der Name des Objekts, dem die Sonderrechte erteilt werden sollen. Das Objekt kann ein Schema oder eine Rolle sein.   | 
|  `p_privilege`  |  varchar2  |  Null  |  Ja  |  —  | 
|  `p_grant_option`  |  Boolean  |  false  |  Nein  |  Setzen Sie diesen Wert auf `true`, um ihn mit der Genehmigungsoption zu verwenden.  | 

Im folgenden Beispiel werden einem Objekt mit dem Namen `V_$SESSION` für einen Benutzer mit dem Namen `USER1` ausgewählte Berechtigungen erteilt.

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

Im folgenden Beispiel werden einem Objekt mit dem Namen `V_$SESSION` für einen Benutzer mit dem Namen `USER1` mit der Erteilungsoption ausgewählte Berechtigungen erteilt.

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

Um Sonderrechte für ein Objekt erteilen zu können, muss Ihr Konto über diese Sonderrechte verfügen, die ihm entweder direkt, mithilfe der Genehmigungsoption oder einer Rolle mithilfe von erteilt wurde `with admin option`. Im häufigsten Fall wird das Sonderrecht `SELECT` an eine DBA-Ansicht erteilt, das an die Rolle `SELECT_CATALOG_ROLE` erteilt wurde. Wenn diese Rolle Ihrem Benutzer nicht bereits direkt mithilfe von `with admin option` erteilt wurde, können Sie die Berechtigung nicht übertragen. Wenn Sie über das DBA-Sonderrecht verfügen, können Sie die Rolle direkt an einen anderen Benutzer übertragen. 

Im folgenden Beispiel wird die `SELECT_CATALOG_ROLE` und `EXECUTE_CATALOG_ROLE` an `USER1` übertragen. Da `with admin option` verwendet wird, kann `USER1` jetzt Zugriffsrechte auf SYS-Objekte erteilen, die an `SELECT_CATALOG_ROLE` erteilt wurden. 

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

Objekte, die bereits an `PUBLIC` erteilt wurden, müssen nicht erneut erteilt werden. Wenn Sie die Prozedur `grant_sys_object` verwenden, um erneut Zugriffsrechte zu erteilen, ist der Prozeduraufruf erfolgreich. 