

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

# Pemberian dan pencabutan hak istimewa untuk RDS untuk Db2
<a name="db2-granting-revoking-privileges"></a>

Pengguna mendapatkan akses ke basis data melalui keanggotaan dalam grup yang dilampirkan pada basis data.

Gunakan prosedur-prosedur berikut untuk memberikan dan mencabut privilese untuk mengontrol akses ke basis data Anda. 

Prosedur-prosedur ini menggunakan IBM Db2 CLP yang berjalan pada mesin lokal untuk menghubungi instans basis data RDS for Db2. Pastikan untuk membuat katalog simpul TCPIP dan basis data untuk menghubungi instans basis data RDS for Db2 yang berjalan di mesin lokal Anda. Untuk informasi selengkapnya, lihat [Menghubungkan ke Amazon RDS untuk instans Db2 DB dengan IBM Db2 CLP](db2-connecting-with-clp-client.md).

**Topics**
+ [Memberikan akses ke basis data Anda kepada pengguna](#db2-granting-user-access)
+ [Mengubah kata sandi pengguna](#db2-changing-user-password)
+ [Menambahkan grup ke pengguna](#db2-adding-group-to-user)
+ [Menghapus grup dari pengguna](#db2-removing-groups-from-user)
+ [Menghapus pengguna](#db2-removing-user)
+ [Memerinci pengguna](#db2-listing-users-database)
+ [Membuat peran](#db2-creating-role)
+ [Memberikan peran](#db2-granting-role)
+ [Mencabut peran](#db2-revoking-role)
+ [Menjatuhkan peran](#db2-dropping-role)
+ [Pemberian otorisasi basis data](#db2-granting-dbadmin-auth)
+ [Mencabut otorisasi basis data](#db2-revoking-dbadmin-auth)

## Memberikan akses ke basis data Anda kepada pengguna
<a name="db2-granting-user-access"></a>

**Untuk memberikan akses ke basis data Anda kepada seorang pengguna**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

   Perintah ini menghasilkan output yang serupa dengan contoh berikut:

   ```
   Database Connection Information
       
   Database server        = DB2/LINUXX8664 11.5.8.0
   SQL authorization ID   = ADMIN
   Local database alias   = RDSADMIN
   ```

1. Tambahkan pengguna ke daftar otorisasi Anda dengan memanggil `rdsadmin.add_user`. Untuk informasi selengkapnya, lihat [rdsadmin.add\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-add-user). 

   ```
   db2 "call rdsadmin.add_user(
       'username',
       'password',
       'group_name,group_name')"
   ```

1. (Opsional) Tambahkan grup lain ke pengguna dengan memanggil `rdsadmin.add_groups`. Untuk informasi selengkapnya, lihat [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups). 

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

1. Tegaskan otoritas yang tersedia untuk pengguna. Dalam contoh berikut, ganti*rds\$1database\$1alias*,*master\$1user*, dan *master\$1password* dengan informasi Anda sendiri. Juga, ganti *username* dengan nama pengguna.

   ```
   db2 terminate
   db2 connect to rds_database_alias user master_user using master_password
   db2 "SELECT SUBSTR(AUTHORITY,1,20) AUTHORITY, D_USER, D_GROUP, D_PUBLIC
          FROM TABLE (SYSPROC.AUTH_LIST_AUTHORITIES_FOR_AUTHID ('username', 'U') ) AS T
          ORDER BY AUTHORITY"
   ```

   Perintah ini menghasilkan output yang serupa dengan contoh berikut:

   ```
   AUTHORITY            D_USER D_GROUP D_PUBLIC
   -------------------- ------ ------- --------
   ACCESSCTRL           N      N       N
   BINDADD              N      N       N
   CONNECT              N      N       N
   CREATETAB            N      N       N
   CREATE_EXTERNAL_ROUT N      N       N
   CREATE_NOT_FENCED_RO N      N       N
   CREATE_SECURE_OBJECT N      N       N
   DATAACCESS           N      N       N
   DBADM                N      N       N
   EXPLAIN              N      N       N
   IMPLICIT_SCHEMA      N      N       N
   LOAD                 N      N       N
   QUIESCE_CONNECT      N      N       N
   SECADM               N      N       N
   SQLADM               N      N       N
   SYSADM               *      N       *
   SYSCTRL              *      N       *
   SYSMAINT             *      N       *
   SYSMON               *      N       *
   WLMADM               N      N       N
   ```

1. Berikan peran-peran RDS for Db2 `ROLE_NULLID_PACKAGES`, `ROLE_TABLESPACES`, dan `ROLE_PROCEDURES` ke grup tempat Anda menambahkan pengguna. Untuk informasi selengkapnya, lihat [Amazon RDS untuk peran default Db2](db2-default-roles.md).
**catatan**  
Kami membuat instans basis data RDS for Db2 dalam mode `RESTRICTIVE`. Oleh karena itu, peran-peran RDS for Db2 `ROLE_NULLID_PACKAGES`, `ROLE_TABLESPACES`, dan `ROLE_PROCEDURES` memberikan privilese eksekusi pada paket-paket `NULLID` untuk IBM Db2 CLP dan Dynamic SQL. Peran-peran ini juga memberi pengguna privilese pada ruang tabel. 

   1. Connect ke database Db2 Anda. Dalam contoh berikut, ganti*database\$1name*,*master\$1user*, dan *master\$1password* dengan informasi Anda sendiri.

      ```
      db2 connect to database_name user master_user using master_password
      ```

   1. Berikan peran `ROLE_NULLED_PACKAGES` kepada sebuah grup. Dalam contoh berikut, ganti *group\$1name* dengan nama grup tempat Anda ingin menambahkan peran.

      ```
      db2 "grant role ROLE_NULLID_PACKAGES to group group_name"
      ```

   1. Berikan peran `ROLE_TABLESPACES` kepada grup yang sama. Dalam contoh berikut, ganti *group\$1name* dengan nama grup tempat Anda ingin menambahkan peran.

      ```
      db2 "grant role ROLE_TABLESPACES to group group_name"
      ```

   1. Berikan peran `ROLE_PROCEDURES` kepada grup yang sama. Dalam contoh berikut, ganti *group\$1name* dengan nama grup tempat Anda ingin menambahkan peran.

      ```
      db2 "grant role ROLE_PROCEDURES to group group_name"
      ```

1. Berikan otoritas-otoritas `connect`, `bindadd`, `createtab`, dan `IMPLICIT_SCHEMA` kepada grup yang Anda tambahi pengguna. Dalam contoh berikut, ganti *group\$1name* dengan nama grup kedua yang Anda tambahkan pengguna.

   ```
   db2 "grant usage on workload SYSDEFAULTUSERWORKLOAD to public"
   db2 "grant connect, bindadd, createtab, implicit_schema on database to group group_name"
   ```

1. Ulangi langkah 4 hingga 6 untuk setiap grup lain yang Anda tambahi pengguna.

1. Coba akses pengguna dengan menghubungkan sebagai pengguna, membuat tabel, memasukkan nilai ke dalam tabel, dan mengambil data dari tabel. Dalam contoh berikut, ganti*rds\$1database\$1alias*,*username*, dan *password* dengan nama database dan nama pengguna dan kata sandi pengguna.

   ```
   db2 connect to rds_database_alias user username using password
   db2 "create table t1(c1 int not null)"
   db2 "insert into t1 values (1),(2),(3),(4)"
   db2 "select * from t1"
   ```

## Mengubah kata sandi pengguna
<a name="db2-changing-user-password"></a>

**Untuk mengubah kata sandi seorang pengguna**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Ubah kata sandi dengan memanggil `rdsadmin.change_password`. Untuk informasi selengkapnya, lihat [rdsadmin.change\$1password](db2-sp-granting-revoking-privileges.md#db2-sp-change-password). 

   ```
   db2 "call rdsadmin.change_password(
       'username',
       'new_password')"
   ```

## Menambahkan grup ke pengguna
<a name="db2-adding-group-to-user"></a>

**Untuk menambahkan grup ke seorang pengguna**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Tambahkan grup ke pengguna dengan memanggil `rdsadmin.add_groups`. Untuk informasi selengkapnya, lihat [rdsadmin.add\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-add-groups). 

   ```
   db2 "call rdsadmin.add_groups(
       'username',
       'group_name,group_name')"
   ```

## Menghapus grup dari pengguna
<a name="db2-removing-groups-from-user"></a>

**Untuk menghapus grup dari seorang pengguna**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Hapus grup dengan memanggil `rdsadmin.remove_groups`. Untuk informasi selengkapnya, lihat [rdsadmin.remove\$1groups](db2-sp-granting-revoking-privileges.md#db2-sp-remove-groups). 

   ```
   db2 "call rdsadmin.remove_groups(
       'username',
       'group_name,group_name')"
   ```

## Menghapus pengguna
<a name="db2-removing-user"></a>

**Untuk menghapus seorang pengguna dari daftar otorisasi**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri. 

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Hapus pengguna dari daftar otorisasi dengan memanggil `rdsadmin.remove_user`. Untuk informasi selengkapnya, lihat [rdsadmin.remove\$1user](db2-sp-granting-revoking-privileges.md#db2-sp-remove-user). 

   ```
   db2 "call rdsadmin.remove_user('username')"
   ```

## Memerinci pengguna
<a name="db2-listing-users-database"></a>

Untuk memerinci pengguna pada sebuah daftar otorisasi, panggil prosedur tersimpan `rdsadmin.list_users`. Untuk informasi selengkapnya, lihat [rdsadmin.list\$1users](db2-sp-granting-revoking-privileges.md#db2-sp-list-users).

```
db2 "call rdsadmin.list_users()"
```

## Membuat peran
<a name="db2-creating-role"></a>

Anda dapat menggunakan prosedur tersimpan [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role) untuk membuat peran.

**Untuk membuat grup**

1. Hubungi basis data `rdsadmin`. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Atur Db2 ke konten keluaran.

   ```
   db2 set serveroutput on 
   ```

1. Buat peran. Untuk informasi selengkapnya, lihat [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role).

   ```
   db2 "call rdsadmin.create_role(
       'database_name',
       'role_name')"
   ```

1. Setel Db2 agar tidak menampilkan konten.

   ```
   db2 set serveroutput off
   ```

## Memberikan peran
<a name="db2-granting-role"></a>

Anda dapat menggunakan prosedur [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role) tersimpan untuk menetapkan peran ke peran, pengguna, atau grup.

**Untuk menetapkan peran**

1. Hubungi basis data `rdsadmin`. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Atur Db2 ke konten keluaran.

   ```
   db2 set serveroutput on 
   ```

1. Tetapkan peran. Untuk informasi selengkapnya, lihat [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role).

   ```
   db2 "call rdsadmin.grant_role(
       'database_name',
       'role_name',
       'grantee',
       'admin_option')"
   ```

1. Setel Db2 agar tidak menampilkan konten.

   ```
   db2 set serveroutput off
   ```

## Mencabut peran
<a name="db2-revoking-role"></a>

Anda dapat menggunakan prosedur [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role) tersimpan untuk mencabut peran dari peran, pengguna, atau grup.

**Untuk mencabut peran**

1. Hubungi basis data `rdsadmin`. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Mencabut peran. Untuk informasi selengkapnya, lihat [rdsadmin.revoke\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-revoke-role).

   ```
   db2 "call rdsadmin.revoke_role(
       ?,
       'database_name',
       'role_name',
       'grantee')"
   ```

## Menjatuhkan peran
<a name="db2-dropping-role"></a>

Anda dapat menggunakan prosedur yang [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role) disimpan untuk menjatuhkan peran.

**Untuk menjatuhkan peran**

1. Hubungi basis data `rdsadmin`. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Jatuhkan peran. Untuk informasi selengkapnya, lihat [rdsadmin.drop\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-drop-role).

   ```
   db2 "call rdsadmin.drop_role(
       ?,
       'database_name',
       'role_name')"
   ```

## Pemberian otorisasi basis data
<a name="db2-granting-dbadmin-auth"></a>

Pengguna master, yang memiliki `DBADM` otorisasi, dapat memberikan`DBADM`,`ACCESSCTRL`, atau `DATAACCESS` otorisasi untuk peran, pengguna, atau grup.

**Untuk memberikan otorisasi basis data**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Berikan akses pengguna dengan menelepon`rdsadmin.dbadm_grant`. Untuk informasi selengkapnya, lihat [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant). 

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```

**Contoh kasus penggunaan**

Prosedur berikut memandu Anda melalui pembuatan peran, memberikan `DBADM` otorisasi untuk peran, menetapkan peran kepada pengguna, dan memberikan peran ke grup.

****

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Buat peran yang dipanggil `PROD_ROLE` untuk database yang disebut`TESTDB`. Untuk informasi selengkapnya, lihat [rdsadmin.create\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-create-role). 

   ```
   db2 "call rdsadmin.create_role(
       'TESTDB',
       'PROD_ROLE')"
   ```

1. Tetapkan peran ke pengguna yang dipanggil`PROD_USER`. `PROD_USER`Otorisasi admin diberikan untuk menetapkan peran. Untuk informasi selengkapnya, lihat [rdsadmin.grant\$1role](db2-sp-granting-revoking-privileges.md#db2-sp-grant-role). 

   ```
   db2 "call rdsadmin.grant_role(
       ?,
       'TESTDB',
       'PROD_ROLE',
       'USER PROD_USER',
       'Y')"
   ```

1. (Opsional) Berikan otorisasi atau hak istimewa tambahan. Contoh berikut memberikan `DBADM` otorisasi untuk peran bernama `PROD_ROLE` untuk database yang disebut. `FUNDPROD` Untuk informasi selengkapnya, lihat [rdsadmin.dbadm\$1grant](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-grant). 

   ```
   db2 "call rdsadmin.dbadm_grant(
       ?,
       'FUNDPROD',
       'DBADM',
       'ROLE PROD_ROLE')"
   ```

1. Hentikan sesi Anda.

   ```
   db2 terminate
   ```

1. Hubungi basis data `TESTDB` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri.

   ```
   db2 connect to TESTDB user master_username using master_password
   ```

1. Tambahkan lebih banyak otorisasi ke peran.

   ```
   db2 "grant connect, implicit_schema on database to role PROD_ROLE"
   ```

1. Berikan peran `PROD_ROLE` kepada sebuah grup.

   ```
   db2 "grant role PROD_ROLE to group PRODGRP"
   ```

Pengguna yang termasuk dalam grup sekarang `PRODGRP` dapat melakukan tindakan seperti menghubungkan ke `TESTDB` database, membuat tabel, atau membuat skema.

## Mencabut otorisasi basis data
<a name="db2-revoking-dbadmin-auth"></a>

Pengguna master, yang memiliki `DBADM` otorisasi, dapat mencabut, `DBADM``ACCESSCTRL`, atau `DATAACCESS` otorisasi dari peran, pengguna, atau grup.

**Untuk mencabut otorisasi basis data**

1. Hubungi basis data `rdsadmin` dengan menggunakan nama pengguna master dan kata sandi master untuk instans basis data RDS for Db2 Anda. Dalam contoh berikut, ganti *master\$1username* dan *master\$1password* dengan informasi Anda sendiri.

   ```
   db2 connect to rdsadmin user master_username using master_password
   ```

1. Cabut akses pengguna dengan menelepon. `rdsadmin.dbadm_revoke` Lihat informasi yang lebih lengkap di [rdsadmin.dbadm\$1revoke](db2-sp-granting-revoking-privileges.md#db2-sp-dbadm-revoke). 

   ```
   db2 "call rdsadmin.dbadm_revoke(
       ?,
       'database_name,
       'authorization',
       'grantee')"
   ```