

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Memberikan hak istimewa SELECT atau EXECUTE pada objek SYS
<a name="Appendix.Oracle.CommonDBATasks.TransferPrivileges"></a>

Biasanya Anda mentransfer hak istimewa dengan menggunakan peran, yang dapat berisi banyak objek. Untuk memberikan hak istimewa kepada satu objek, gunakan prosedur `rdsadmin.rdsadmin_util.grant_sys_object` Amazon RDS. Prosedur ini memberikan hanya hak istimewa yang telah diberikan kepada pengguna master melalui peran atau pemberian langsung. 

Prosedur `grant_sys_object` memiliki parameter berikut. 

**penting**  
Untuk semua nilai parameter, gunakan huruf besar kecuali jika Anda membuat pengguna dengan pengidentifikasi yang peka huruf besar. Misalnya, jika Anda menjalankan `CREATE USER myuser` atau `CREATE USER MYUSER`, kamus data menyimpan `MYUSER`. Namun, jika Anda menggunakan tanda kutip ganda di `CREATE USER "MyUser"`, kamus data menyimpan `MyUser`.


****  

| Nama parameter | Jenis data | Default | Wajib | Deskripsi | 
| --- | --- | --- | --- | --- | 
|  `p_obj_name`  |  varchar2  |  —  |  Ya  |  Nama objek untuk menerima pemberian hak istimewa. Objek dapat berupa direktori, fungsi, paket, prosedur, urutan, tabel, atau tampilan. Nama objek harus dieja persis seperti yang muncul di `DBA_OBJECTS`. Sebagian besar objek sistem didefinisikan dalam huruf besar, jadi kami menyarankan Anda untuk mencobanya terlebih dahulu.   | 
|  `p_grantee`  |  varchar2  |  —  |  Ya  |  Nama objek untuk menerima pemberian hak istimewa. Objek dapat berupa skema atau peran.   | 
|  `p_privilege`  |  varchar2  |  null  |  Ya  |  —  | 
|  `p_grant_option`  |  boolean  |  false  |  Tidak  |  Tetapkan ke `true` untuk menggunakan opsi pemberian.  | 

Contoh berikut memberikan hak istimewa tertentu pada objek yang diberi nama `V_$SESSION` ke pengguna bernama `USER1`.

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

Contoh berikut memberikan hak istimewa tertentu pada objek yang diberi nama `V_$SESSION` ke pengguna bernama `USER1` dengan opsi pemberian.

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

Agar dapat memberikan hak istimewa kepada suatu objek, akun Anda harus memiliki hak istimewa yang diberikan kepadanya secara langsung dengan opsi pemberian, atau melalui peran yang diberikan menggunakan `with admin option`. Dalam kasus yang paling umum, Anda mungkin ingin memberikan `SELECT` pada tampilan DBA yang telah diberikan kepada peran `SELECT_CATALOG_ROLE`. Jika peran tersebut belum diberikan secara langsung kepada pengguna Anda menggunakan `with admin option`, Anda tidak dapat mentransfer hak istimewa tersebut. Jika Anda memiliki hak istimewa DBA, Anda dapat memberikan peran tersebut secara langsung ke pengguna lain. 

Contoh berikut memberikan `SELECT_CATALOG_ROLE` dan `EXECUTE_CATALOG_ROLE` kepada `USER1`. Sejak `with admin option` digunakan, `USER1` sekarang dapat memberikan akses ke objek SYS yang telah diberikan kepada `SELECT_CATALOG_ROLE`. 

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

Objek yang telah diberikan kepada `PUBLIC` tidak perlu diberikan ulang. Jika Anda menggunakan prosedur `grant_sys_object` untuk memberikan ulang akses, pemanggilan prosedur berhasil. 