

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# Kontrol akses berbasis peran (RBAC)
<a name="t_Roles"></a>

Dengan menggunakan kontrol akses berbasis peran (RBAC) untuk mengelola izin database di Amazon Redshift, Anda dapat menyederhanakan pengelolaan izin keamanan di Amazon Redshift. Anda dapat mengamankan akses ke data sensitif dengan mengontrol apa yang dapat dilakukan pengguna baik pada tingkat yang luas atau halus. Anda juga dapat mengontrol akses pengguna ke tugas yang biasanya dibatasi untuk pengguna super. Dengan menetapkan izin yang berbeda untuk peran yang berbeda dan menetapkannya ke pengguna yang berbeda, Anda dapat memiliki kontrol akses pengguna yang lebih terperinci.

Pengguna dengan peran yang ditetapkan hanya dapat melakukan tugas yang ditentukan oleh peran yang ditetapkan yang mereka otorisasi. Misalnya, pengguna dengan peran yang ditetapkan yang memiliki izin CREATE TABLE dan DROP TABLE hanya diizinkan untuk melakukan tugas tersebut. Anda dapat mengontrol akses pengguna dengan memberikan berbagai tingkat izin keamanan kepada pengguna yang berbeda untuk mengakses data yang mereka butuhkan untuk pekerjaan mereka.

RBAC menerapkan prinsip izin paling sedikit kepada pengguna berdasarkan persyaratan peran mereka, terlepas dari jenis objek yang terlibat. Pemberian dan pencabutan izin dilakukan pada tingkat peran, tanpa perlu memperbarui izin pada objek database individu.

Dengan RBAC, Anda dapat membuat peran dengan izin untuk menjalankan perintah yang dulu memerlukan izin pengguna super. Pengguna dapat menjalankan perintah ini, selama mereka diberi wewenang dengan peran yang menyertakan izin ini. Demikian pula, Anda juga dapat membuat peran untuk membatasi akses ke perintah tertentu, dan menetapkan peran untuk pengguna super atau pengguna yang telah diberi wewenang dengan peran tersebut.

Untuk mempelajari cara kerja Amazon Redshift RBAC, tonton video berikut. 

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/IhHQ7mZ-tp4/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/IhHQ7mZ-tp4)


# Hirarki peran
<a name="t_role_hierarchy"></a>

*Peran* adalah kumpulan izin yang dapat Anda tetapkan ke pengguna atau peran lain. Anda dapat menetapkan izin sistem atau database untuk peran. Pengguna mewarisi izin dari peran yang ditetapkan. 

Di RBAC, pengguna dapat memiliki peran bersarang. Anda dapat memberikan peran kepada pengguna dan peran. Saat memberikan peran kepada pengguna, Anda memberi otorisasi kepada pengguna dengan semua izin yang disertakan peran ini. Saat memberikan peran r1 kepada pengguna, Anda mengotorisasi pengguna dengan izin dari r1. Pengguna sekarang memiliki izin dari r1 dan juga izin yang ada yang sudah mereka miliki.

Saat memberikan peran (r1) ke peran lain (r2), Anda mengotorisasi r2 dengan semua izin dari r1. Juga, ketika memberikan r2 ke peran lain (r3), izin r3 adalah kombinasi dari izin dari r1 dan r2. Hirarki peran memiliki izin mewarisi r2 dari r1. Amazon Redshift menyebarkan izin dengan setiap otorisasi peran. Pemberian r1 ke r2 dan kemudian r2 ke r3 mengotorisasi r3 dengan semua izin dari tiga peran. Dengan demikian, dengan memberikan r3 kepada pengguna, pengguna memiliki semua izin dari tiga peran. 

Amazon Redshift tidak mengizinkan pembuatan siklus otorisasi peran. Siklus otorisasi peran terjadi ketika peran bersarang ditetapkan kembali ke peran sebelumnya dalam hierarki peran, seperti r3 ditugaskan kembali ke r1. Untuk informasi selengkapnya tentang cara membuat peran dan mengelola penetapan peran, lihat[Mengelola peran di RBAC](r_roles-managing.md). 

# Penugasan peran
<a name="t_role_assignment"></a>

Pengguna super dan pengguna biasa dengan izin CREATE ROLE dapat menggunakan pernyataan CREATE ROLE untuk membuat peran. Pengguna super dan administrator peran dapat menggunakan pernyataan GRANT ROLE untuk memberikan peran kepada orang lain. Mereka dapat menggunakan pernyataan REVOKE ROLE untuk mencabut peran dari orang lain, dan pernyataan DROP ROLE untuk menghapus peran. Administrator peran termasuk pemilik peran dan pengguna yang telah diberikan peran dengan izin OPSI ADMIN.

Hanya pengguna super atau administrator peran yang dapat memberikan dan mencabut peran. Anda dapat memberikan atau mencabut satu atau beberapa peran ke atau dari satu atau beberapa peran atau pengguna. Gunakan opsi WITH ADMIN OPTION dalam pernyataan GRANT ROLE untuk menyediakan opsi administrasi untuk semua peran yang diberikan kepada semua penerima hibah. 

Amazon Redshift mendukung kombinasi penugasan peran yang berbeda, seperti memberikan banyak peran atau memiliki banyak penerima hibah. OPSI DENGAN ADMIN hanya berlaku untuk pengguna dan bukan untuk peran. Demikian pula, gunakan opsi WITH ADMIN OPTION dalam pernyataan REVOKE ROLE untuk menghapus peran dan otorisasi administratif dari penerima hibah. Saat digunakan dengan OPSI ADMIN, hanya otorisasi administratif yang dicabut dari peran.

Contoh berikut mencabut otorisasi administratif `sample_role2` peran dari. `user2`

```
REVOKE ADMIN OPTION FOR sample_role2 FROM user2;
```

Untuk informasi selengkapnya tentang cara membuat peran dan mengelola penetapan peran, lihat[Mengelola peran di RBAC](r_roles-managing.md).

# Peran yang ditentukan sistem Amazon Redshift
<a name="r_roles-default"></a>

Amazon Redshift menyediakan beberapa peran yang ditentukan sistem yang ditentukan dengan izin tertentu. Peran khusus sistem dimulai dengan awalan. `sys:` Hanya pengguna dengan akses yang sesuai yang dapat mengubah peran yang ditentukan sistem atau membuat peran yang ditentukan sistem khusus. Anda tidak dapat menggunakan `sys:` awalan untuk peran yang ditentukan sistem kustom. 

Tabel berikut merangkum peran dan izinnya.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/r_roles-default.html)

## Peran dan pengguna yang ditentukan sistem untuk berbagi data
<a name="r_roles-datashare"></a>

 Amazon Redshift menciptakan peran dan pengguna untuk penggunaan internal yang sesuai dengan datashares dan konsumen datashare. Setiap nama peran internal dan nama pengguna memiliki awalan namespace yang dicadangkan. `ds:` Mereka memiliki format berikut: 

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/r_roles-default.html)

 Peran berbagi data dibuat untuk setiap datashare. Ini memegang semua izin yang saat ini diberikan ke datashare. Pengguna berbagi data dibuat untuk setiap konsumen dari datashare. Ini diberikan izin untuk peran berbagi data tunggal. Konsumen yang ditambahkan ke beberapa datashares akan memiliki pengguna berbagi data yang dibuat untuk setiap datashare. 

Pengguna dan peran ini diperlukan agar berbagi data berfungsi dengan baik. Mereka tidak dapat dimodifikasi atau dijatuhkan dan tidak dapat diakses atau digunakan untuk tugas apa pun yang dijalankan oleh pelanggan. Anda dapat dengan aman mengabaikannya. Untuk informasi selengkapnya tentang berbagi data, lihat [Berbagi data di seluruh klaster di Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/datashare-overview.html).

**catatan**  
Anda tidak dapat menggunakan `ds:` awalan untuk membuat peran atau pengguna yang ditentukan pengguna.

# Izin sistem untuk RBAC
<a name="r_roles-system-privileges"></a>

Berikut ini adalah daftar izin sistem yang dapat Anda berikan atau cabut dari peran.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/r_roles-system-privileges.html)

# Izin objek database
<a name="r_roles-database-privileges"></a>

Terlepas dari izin sistem, Amazon Redshift menyertakan izin objek database yang menentukan opsi akses. Ini termasuk opsi seperti kemampuan untuk membaca data dalam tabel dan tampilan, menulis data, membuat tabel, dan menjatuhkan tabel. Untuk informasi selengkapnya, lihat [HIBAH](r_GRANT.md).

Dengan menggunakan RBAC, Anda dapat menetapkan izin objek database untuk peran, mirip dengan bagaimana Anda bisa dengan izin sistem. Kemudian Anda dapat menetapkan peran kepada pengguna, mengotorisasi pengguna dengan izin sistem, dan mengotorisasi pengguna dengan izin database.

# UBAH HAK ISTIMEWA DEFAULT untuk RBAC
<a name="r_roles-alter-default-privileges"></a>

Gunakan pernyataan ALTER DEFAULT PRIVILEGES untuk menentukan set default izin akses yang akan diterapkan ke objek yang dibuat di masa depan oleh pengguna yang ditentukan. Secara default, pengguna hanya dapat mengubah izin akses default mereka sendiri. Dengan RBAC, Anda dapat mengatur izin akses default untuk peran. Untuk informasi lebih lanjut, lihat [MENGUBAH HAK ISTIMEWA DEFAULT](r_ALTER_DEFAULT_PRIVILEGES.md) perintah.

RBAC memungkinkan Anda untuk menetapkan izin objek database untuk peran, mirip dengan izin sistem. Kemudian Anda dapat menetapkan peran kepada pengguna, mengotorisasi pengguna dengan izin sistem dan/atau database.

# Pertimbangan untuk penggunaan peran di RBAC
<a name="r_role-usage-notes"></a>

Saat bekerja dengan peran RBAC, pertimbangkan hal berikut:
+ Amazon Redshift tidak mengizinkan siklus otorisasi peran. Anda tidak dapat memberikan r1 ke r2 dan kemudian memberikan r2 ke r1.
+ RBAC berfungsi untuk objek Amazon Redshift asli dan tabel Amazon Redshift Spectrum.
+ Sebagai administrator Amazon Redshift, Anda dapat mengaktifkan RBAC dengan memutakhirkan klaster Anda ke patch pemeliharaan terbaru untuk memulai. 
+ Hanya pengguna super dan pengguna dengan izin sistem CREATE ROLE yang dapat membuat peran.
+ Hanya pengguna super dan administrator peran yang dapat memodifikasi atau menghapus peran.
+ Nama peran tidak bisa sama dengan nama pengguna.
+ Nama peran tidak dapat berisi karakter yang tidak valid, seperti “:/\$1n.”
+ Nama peran tidak dapat berupa kata yang dicadangkan, seperti PUBLIC.
+ Nama peran tidak dapat dimulai dengan awalan cadangan untuk peran default. `sys:`
+ Anda tidak dapat menghapus peran yang memiliki parameter RESTRICT ketika diberikan ke peran lain. Pengaturan default adalah RESTRICT. Amazon Redshift memunculkan kesalahan saat Anda mencoba menjatuhkan peran yang mewarisi peran lain.
+ Pengguna yang tidak memiliki izin admin pada peran tidak dapat memberikan atau mencabut peran.
+ RBAC tidak sepenuhnya didukung untuk tabel dan tampilan sistem. Izin RBAC untuk tabel dan tampilan sistem tidak bertahan melalui peningkatan, penurunan, atau pengubahan ukuran. Sebaiknya gunakan [Peran yang ditentukan sistem Amazon RedshiftPeran dan pengguna yang ditentukan sistem untuk berbagi data](r_roles-default.md) untuk mengelola tabel sistem dan melihat izin. Untuk informasi lebih lanjut tentang tabel sistem, buka[Tabel sistem dan tampilan referensi](cm_chap_system-tables.md).

# Mengelola peran di RBAC
<a name="r_roles-managing"></a>

Untuk melakukan tindakan berikut, gunakan perintah berikut:
+ Untuk membuat peran, gunakan [CREATE ROLE](r_CREATE_ROLE.md) perintah.
+ Untuk mengganti nama peran atau mengubah pemilik peran, gunakan [MENGUBAH PERAN](r_ALTER_ROLE.md) perintah.
+ Untuk menghapus peran, gunakan [DROP ROLE](r_DROP_ROLE.md) perintah. 
+ Untuk memberikan peran kepada pengguna, gunakan [HIBAH](r_GRANT.md) perintah. 
+ Untuk mencabut peran dari pengguna, gunakan perintah. [MENCABUT](r_REVOKE.md) 
+ Untuk memberikan izin sistem ke peran, gunakan [HIBAH](r_GRANT.md) perintah. 
+ Untuk mencabut izin sistem dari peran, gunakan perintah. [MENCABUT](r_REVOKE.md) 

Untuk melihat daftar peran di klaster atau grup kerja Anda, lihat[SVV\$1ROLE](r_SVV_ROLES.md).

# Tutorial: Membuat peran dan query dengan RBAC
<a name="r_tutorial-RBAC"></a>

Dengan RBAC, Anda dapat membuat peran dengan izin untuk menjalankan perintah yang dulu memerlukan izin pengguna super. Pengguna dapat menjalankan perintah ini, selama mereka diberi wewenang dengan peran yang menyertakan izin ini.

Dalam tutorial ini, Anda menggunakan kontrol akses berbasis peran (RBAC) untuk mengelola izin dalam database yang Anda buat. Anda kemudian terhubung ke database dan kueri database dari dua peran yang berbeda untuk menguji fungsionalitas RBAC.

Dua peran yang Anda buat dan gunakan untuk query database adalah `sales_ro` dan`sales_rw`. Anda membuat data `sales_ro` peran dan kueri sebagai pengguna dengan `sales_ro` peran tersebut. `sales_ro`Pengguna hanya dapat menggunakan perintah SELECT tetapi tidak dapat menggunakan perintah UPDATE. Kemudian, Anda membuat `sales_rw` peran dan data kueri sebagai pengguna dengan `sales_rw` peran tersebut. `sales_rw`Pengguna dapat menggunakan perintah SELECT dan perintah UPDATE.

Selain itu, Anda dapat membuat peran untuk membatasi akses ke perintah tertentu, dan menetapkan peran untuk pengguna super atau pengguna.

**Tugas**
+ [Prasyarat](#tutorial-rbac-prereqs)
+ [Langkah 1: Buat pengguna administrator](#tutorial-rbac-step1)
+ [Langkah 2: Mengatur skema](#tutorial-rbac-step2)
+ [Langkah 3: Buat pengguna hanya-baca](#tutorial-rbac-step3)
+ [Langkah 4: Kueri data sebagai pengguna hanya-baca](#tutorial-rbac-step4)
+ [Langkah 5: Buat pengguna baca-tulis](#tutorial-rbac-step5)
+ [Langkah 6: Kueri data sebagai pengguna dengan peran hanya-baca yang diwariskan](#tutorial-rbac-step6)
+ [Langkah 7: Berikan pembaruan dan masukkan izin ke peran baca-tulis](#tutorial-rbac-step7)
+ [Langkah 8: Kueri data sebagai pengguna baca-tulis](#tutorial-rbac-step8)
+ [Langkah 9: Analisis dan vakum tabel dalam database sebagai pengguna administrator](#tutorial-rbac-step9)
+ [Langkah 10: Potong tabel sebagai pengguna baca-tulis](#tutorial-rbac-step10)
+ [Fungsi sistem untuk RBAC (opsional)](#tutorial-rbac-system-functions)
+ [Tampilan sistem untuk RBAC (opsional)](#tutorial-rbac-system-views)
+ [Gunakan keamanan tingkat baris dengan RBAC (opsional)](#tutorial-rbac-rls)

## Prasyarat
<a name="tutorial-rbac-prereqs"></a>
+ Buat klaster Amazon Redshift atau workgroup tanpa server yang dimuat dengan database sampel TICKIT. Untuk membuat grup kerja tanpa server, lihat [Memulai gudang data Redshift Tanpa](https://docs.aws.amazon.com/redshift/latest/gsg/new-user-serverless.html) Server. Untuk membuat klaster, lihat [Membuat contoh klaster Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/gsg/rs-gsg-launch-sample-cluster.html). Untuk informasi selengkapnya tentang database sampel TICKIT, lihat[Database sampel](c_sampledb.md).
+ Memiliki akses ke pengguna dengan izin superuser atau administrator peran. Hanya pengguna super atau administrator peran yang dapat memberikan atau mencabut peran. Untuk informasi selengkapnya tentang izin yang diperlukan untuk RBAC, lihat. [Izin sistem untuk RBAC](r_roles-system-privileges.md)
+ Tinjau[Pertimbangan untuk penggunaan peran di RBAC](r_role-usage-notes.md).

## Langkah 1: Buat pengguna administrator
<a name="tutorial-rbac-step1"></a>

Untuk mengatur tutorial ini, Anda membuat peran admin database dan melampirkannya ke pengguna administrator database di langkah ini. Anda harus membuat administrator database sebagai superuser atau administrator peran.

Jalankan semua kueri di editor [kueri Amazon Redshift v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-using.html).

1. Untuk membuat peran administrator db\$1admin, gunakan contoh berikut.

   ```
   CREATE ROLE db_admin;
   ```

1. Untuk membuat pengguna database bernama dbadmin, gunakan contoh berikut.

   ```
   CREATE USER dbadmin PASSWORD 'Test12345';
   ```

1. Untuk memberikan peran yang ditentukan sistem bernama sys:dba ke peran db\$1admin, gunakan contoh berikut. Ketika diberikan peran sys:dba, pengguna dbadmin dapat membuat skema dan tabel. Untuk informasi selengkapnya, lihat [Peran yang ditentukan sistem Amazon RedshiftPeran dan pengguna yang ditentukan sistem untuk berbagi data](r_roles-default.md).

## Langkah 2: Mengatur skema
<a name="tutorial-rbac-step2"></a>

Pada langkah ini, Anda terhubung ke database Anda sebagai administrator database. Kemudian, Anda membuat dua skema dan menambahkan data ke dalamnya.

1. Connect ke database dev sebagai pengguna dbadmin menggunakan query editor v2. Untuk informasi selengkapnya tentang menghubungkan ke database, lihat [Bekerja dengan editor kueri v2](https://docs.aws.amazon.com/redshift/latest/mgmt/query-editor-v2-using.html).

1. Untuk membuat skema basis data penjualan dan pemasaran, gunakan contoh berikut.

   ```
   CREATE SCHEMA sales;
   CREATE SCHEMA marketing;
   ```

1. Untuk membuat dan menyisipkan nilai ke dalam tabel dalam skema penjualan, gunakan contoh berikut.

   ```
   CREATE TABLE sales.cat(
   catid smallint,
   catgroup varchar(10),
   catname varchar(10),
   catdesc varchar(50)
   );
   INSERT INTO sales.cat(SELECT * FROM category);
   
   CREATE TABLE sales.dates(
   dateid smallint,
   caldate date,
   day char(3),
   week smallint,
   month char(5),
   qtr char(5),
   year smallint,
   holiday boolean
   );
   INSERT INTO sales.dates(SELECT * FROM date);
   
   CREATE TABLE sales.events(
   eventid integer,
   venueid smallint,
   catid smallint,
   dateid smallint,
   eventname varchar(200),
   starttime timestamp
   );
   INSERT INTO sales.events(SELECT * FROM event);
   
    CREATE TABLE sales.sale(
   salesid integer,
   listid integer,
   sellerid integer,
   buyerid integer,
   eventid integer,
   dateid smallint,
   qtysold smallint,
   pricepaid decimal(8,2),
   commission decimal(8,2),
   saletime timestamp
   );
   INSERT INTO sales.sale(SELECT * FROM sales);
   ```

1. Untuk membuat dan menyisipkan nilai ke dalam tabel dalam skema pemasaran, gunakan contoh berikut.

   ```
   CREATE TABLE marketing.cat(
   catid smallint,
   catgroup varchar(10),
   catname varchar(10),
   catdesc varchar(50)
   );
   INSERT INTO marketing.cat(SELECT * FROM category);
   
   CREATE TABLE marketing.dates(
   dateid smallint,
   caldate date,
   day char(3),
   week smallint,
   month char(5),
   qtr char(5),
   year smallint,
   holiday boolean
   );
   INSERT INTO marketing.dates(SELECT * FROM date);
   
   CREATE TABLE marketing.events(
   eventid integer,
   venueid smallint,
   catid smallint,
   dateid smallint,
   eventname varchar(200),
   starttime timestamp
   );
   INSERT INTO marketing.events(SELECT * FROM event);
   
   CREATE TABLE marketing.sale(
   marketingid integer,
   listid integer,
   sellerid integer,
   buyerid integer,
   eventid integer,
   dateid smallint,
   qtysold smallint,
   pricepaid decimal(8,2),
   commission decimal(8,2),
   saletime timestamp
   );
   INSERT INTO marketing.sale(SELECT * FROM marketing);
   ```

## Langkah 3: Buat pengguna hanya-baca
<a name="tutorial-rbac-step3"></a>

Pada langkah ini, Anda membuat peran hanya-baca dan pengguna analis penjualan untuk peran hanya-baca. Analis penjualan hanya membutuhkan akses read-only ke tabel dalam skema penjualan untuk menyelesaikan tugas yang ditugaskan untuk menemukan peristiwa yang menghasilkan komisi terbesar.

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk membuat peran sales\$1ro, gunakan contoh berikut.

   ```
   CREATE ROLE sales_ro;
   ```

1. Untuk membuat pengguna salesanalyst, gunakan contoh berikut.

   ```
   CREATE USER salesanalyst PASSWORD 'Test12345';
   ```

1. Untuk memberikan penggunaan peran sales\$1ro dan memilih akses ke objek skema penjualan, gunakan contoh berikut.

   ```
   GRANT USAGE ON SCHEMA sales TO ROLE sales_ro;
   GRANT SELECT ON ALL TABLES IN SCHEMA sales TO ROLE sales_ro;
   ```

1. Untuk memberi pengguna salesanalyst peran sales\$1ro, gunakan contoh berikut.

   ```
   GRANT ROLE sales_ro TO salesanalyst;
   ```

## Langkah 4: Kueri data sebagai pengguna hanya-baca
<a name="tutorial-rbac-step4"></a>

Pada langkah ini, pengguna analis penjualan menanyakan data dari skema penjualan. Kemudian, pengguna analis penjualan mencoba memperbarui tabel dan membaca tabel dalam skema pemasaran.

1. Connect ke database sebagai pengguna salesanalyst.

1. Untuk menemukan 10 penjualan dengan komisi tertinggi, gunakan contoh berikut.

   ```
   SET SEARCH_PATH TO sales;
   SELECT DISTINCT events.dateid, sale.commission, cat.catname
   FROM sale, events, dates, cat   
   WHERE events.dateid=dates.dateid AND events.dateid=sale.dateid AND events.catid = cat.catid
   ORDER BY 2 DESC LIMIT 10;
                  
   +--------+------------+----------+
   | dateid | commission | catname  |
   +--------+------------+----------+
   |   1880 |     1893.6 | Pop      |
   |   1880 |     1893.6 | Opera    |
   |   1880 |     1893.6 | Plays    |
   |   1880 |     1893.6 | Musicals |
   |   1861 |       1500 | Plays    |
   |   2003 |       1500 | Pop      |
   |   1861 |       1500 | Opera    |
   |   2003 |       1500 | Plays    |
   |   1861 |       1500 | Musicals |
   |   1861 |       1500 | Pop      |
   +--------+------------+----------+
   ```

1. Untuk memilih 10 peristiwa dari tabel acara dalam skema penjualan, gunakan contoh berikut.

   ```
   SELECT * FROM sales.events LIMIT 10;
                  
   +---------+---------+-------+--------+--------------------+---------------------+
   | eventid | venueid | catid | dateid |     eventname      |      starttime      |
   +---------+---------+-------+--------+--------------------+---------------------+
   |    4836 |      73 |     9 |   1871 | Soulfest           | 2008-02-14 19:30:00 |
   |    5739 |      41 |     9 |   1871 | Fab Faux           | 2008-02-14 19:30:00 |
   |     627 |     229 |     6 |   1872 | High Society       | 2008-02-15 14:00:00 |
   |    2563 |     246 |     7 |   1872 | Hamlet             | 2008-02-15 20:00:00 |
   |    7703 |      78 |     9 |   1872 | Feist              | 2008-02-15 14:00:00 |
   |    7903 |      90 |     9 |   1872 | Little Big Town    | 2008-02-15 19:30:00 |
   |    7925 |     101 |     9 |   1872 | Spoon              | 2008-02-15 19:00:00 |
   |    8113 |      17 |     9 |   1872 | Santana            | 2008-02-15 15:00:00 |
   |     463 |     303 |     8 |   1873 | Tristan und Isolde | 2008-02-16 19:00:00 |
   |     613 |     236 |     6 |   1873 | Pal Joey           | 2008-02-16 15:00:00 |
   +---------+---------+-------+--------+--------------------+---------------------+
   ```

1. Untuk mencoba memperbarui eventname untuk eventid 1, jalankan contoh berikut. Contoh ini akan menghasilkan kesalahan izin ditolak karena pengguna analis penjualan hanya memiliki izin SELECT pada tabel peristiwa dalam skema penjualan. Untuk memperbarui tabel peristiwa, Anda harus memberikan izin peran sales\$1ro ke UPDATE. Untuk informasi selengkapnya tentang pemberian izin untuk memperbarui tabel, lihat parameter UPDATE untuk. [HIBAH](r_GRANT.md) Untuk informasi selengkapnya tentang perintah UPDATE, lihat[UPDATE](r_UPDATE.md).

   ```
   UPDATE sales.events
   SET eventname = 'Comment event'
   WHERE eventid = 1;
                     
   ERROR: permission denied for relation events
   ```

1. Untuk mencoba memilih semua dari tabel acara dalam skema pemasaran, gunakan contoh berikut. Contoh ini akan menghasilkan kesalahan izin ditolak karena pengguna analis penjualan hanya memiliki izin SELECT untuk tabel peristiwa dalam skema penjualan. Untuk memilih data dari tabel peristiwa dalam skema pemasaran, Anda harus memberikan izin SELECT peran sales\$1ro pada tabel peristiwa dalam skema pemasaran.

   ```
   SELECT * FROM marketing.events;
                  
                  ERROR: permission denied for schema marketing
   ```

## Langkah 5: Buat pengguna baca-tulis
<a name="tutorial-rbac-step5"></a>

Pada langkah ini, insinyur penjualan yang bertanggung jawab untuk membangun pipeline ekstrak, transformasi, dan beban (ETL) untuk pemrosesan data dalam skema penjualan akan diberikan akses hanya-baca, tetapi nantinya akan diberikan akses baca dan tulis untuk melakukan tugas mereka.

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk membuat peran sales\$1rw dalam skema penjualan, gunakan contoh berikut.

   ```
   CREATE ROLE sales_rw;
   ```

1. Untuk membuat pengguna salesengineer, gunakan contoh berikut.

   ```
   CREATE USER salesengineer PASSWORD 'Test12345';
   ```

1. Untuk memberikan penggunaan peran sales\$1rw dan memilih akses ke objek skema penjualan dengan menetapkan peran sales\$1ro untuk itu, gunakan contoh berikut. Untuk informasi selengkapnya tentang cara peran mewarisi izin di Amazon Redshift, lihat. [Hirarki peran](t_role_hierarchy.md)

   ```
   GRANT ROLE sales_ro TO ROLE sales_rw;
   ```

1. Untuk menetapkan peran sales\$1rw ke pengguna salesengineer, gunakan contoh berikut.

   ```
   GRANT ROLE sales_rw TO salesengineer;
   ```

## Langkah 6: Kueri data sebagai pengguna dengan peran hanya-baca yang diwariskan
<a name="tutorial-rbac-step6"></a>

Pada langkah ini, pengguna salesengineer mencoba memperbarui tabel peristiwa sebelum diberikan izin baca. 

1. Connect ke database sebagai pengguna salesengineer.

1. Pengguna salesengineer dapat berhasil membaca data dari tabel peristiwa skema penjualan. Untuk memilih acara dengan eventid 1 dari tabel acara dalam skema penjualan, gunakan contoh berikut.

   ```
   SELECT * FROM sales.events where eventid=1;
                     
   +---------+---------+-------+--------+-----------------+---------------------+
   | eventid | venueid | catid | dateid |    eventname    |      starttime      |
   +---------+---------+-------+--------+-----------------+---------------------+
   |       1 |     305 |     8 |   1851 | Gotterdammerung | 2008-01-25 14:30:00 |
   +---------+---------+-------+--------+-----------------+---------------------+
   ```

1. Untuk mencoba memilih semua dari tabel acara dalam skema pemasaran, gunakan contoh berikut. Pengguna salesengineer tidak memiliki izin untuk tabel dalam skema pemasaran, jadi kueri ini akan menghasilkan kesalahan izin ditolak. Untuk memilih data dari tabel peristiwa dalam skema pemasaran, Anda harus memberikan izin SELECT peran sales\$1rw pada tabel peristiwa dalam skema pemasaran.

   ```
   SELECT * FROM marketing.events;
   
   ERROR: permission denied for schema marketing
   ```

1. Untuk mencoba memperbarui eventname untuk eventid 1, jalankan contoh berikut. Contoh ini akan menghasilkan kesalahan izin ditolak karena pengguna salesengineer hanya memiliki izin pilih pada tabel peristiwa dalam skema penjualan. Untuk memperbarui tabel peristiwa, Anda harus memberikan izin peran sales\$1rw ke UPDATE.

   ```
   UPDATE sales.events
   SET eventname = 'Comment event'
   WHERE eventid = 1;
   
   ERROR: permission denied for relation events
   ```

## Langkah 7: Berikan pembaruan dan masukkan izin ke peran baca-tulis
<a name="tutorial-rbac-step7"></a>

Pada langkah ini, Anda memberikan pembaruan dan menyisipkan izin ke peran sales\$1rw.

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk memberikan izin UPDATE, INSERT, dan DELETE ke peran sales\$1rw, gunakan contoh berikut.

   ```
   GRANT UPDATE, INSERT, ON ALL TABLES IN SCHEMA sales TO role sales_rw;
   ```

## Langkah 8: Kueri data sebagai pengguna baca-tulis
<a name="tutorial-rbac-step8"></a>

Pada langkah ini, insinyur penjualan berhasil memperbarui tabel setelah peran mereka diberikan izin sisipan dan pembaruan. Selanjutnya, insinyur penjualan mencoba menganalisis dan menyedot tabel peristiwa tetapi gagal melakukannya.

1. Connect ke database sebagai pengguna salesengineer.

1. Untuk memperbarui eventname untuk eventid 1, jalankan contoh berikut.

   ```
   UPDATE sales.events
   SET eventname = 'Comment event'
   WHERE eventid = 1;
   ```

1. Untuk melihat perubahan yang dibuat dalam kueri sebelumnya, gunakan contoh berikut untuk memilih acara dengan eventid 1 dari tabel peristiwa dalam skema penjualan.

   ```
   SELECT * FROM sales.events WHERE eventid=1;
   
   +---------+---------+-------+--------+---------------+---------------------+
   | eventid | venueid | catid | dateid |   eventname   |      starttime      |
   +---------+---------+-------+--------+---------------+---------------------+
   |       1 |     305 |     8 |   1851 | Comment event | 2008-01-25 14:30:00 |
   +---------+---------+-------+--------+---------------+---------------------+
   ```

1. Untuk menganalisis tabel peristiwa yang diperbarui dalam skema penjualan, gunakan contoh berikut. Contoh ini akan menghasilkan kesalahan izin ditolak karena pengguna salesengineer tidak memiliki izin yang diperlukan dan bukan pemilik tabel peristiwa dalam skema penjualan. Untuk menganalisis tabel peristiwa, Anda harus memberikan izin peran sales\$1rw untuk MENGANALISIS menggunakan perintah GRANT. Untuk informasi selengkapnya tentang perintah ANALYZE, lihat[MENGANALISA](r_ANALYZE.md).

   ```
   ANALYZE sales.events;
                  
                  ERROR: skipping "events" --- only table or database owner can analyze
   ```

1. Untuk mengosongkan tabel peristiwa yang diperbarui, gunakan contoh berikut. Contoh ini akan menghasilkan kesalahan izin ditolak karena pengguna salesengineer tidak memiliki izin yang diperlukan dan bukan pemilik tabel peristiwa dalam skema penjualan. Untuk mengosongkan tabel peristiwa, Anda harus memberikan izin peran sales\$1rw ke VACUUM menggunakan perintah GRANT. Untuk informasi lebih lanjut tentang perintah VACUUM, lihat[VAKUM](r_VACUUM_command.md).

   ```
   VACUUM sales.events;
                     
   ERROR: skipping "events" --- only table or database owner can vacuum it
   ```

## Langkah 9: Analisis dan vakum tabel dalam database sebagai pengguna administrator
<a name="tutorial-rbac-step9"></a>

Pada langkah ini, pengguna dbadmin menganalisis dan menyedot semua tabel. Pengguna memiliki izin administrator pada database ini, sehingga mereka dapat menjalankan perintah ini.

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk menganalisis tabel peristiwa dalam skema penjualan, gunakan contoh berikut. 

   ```
   ANALYZE sales.events;
   ```

1. Untuk menyedot tabel acara dalam skema penjualan, gunakan contoh berikut.

   ```
   VACUUM sales.events;
   ```

1. Untuk menganalisis tabel peristiwa dalam skema pemasaran, gunakan contoh berikut. 

   ```
   ANALYZE marketing.events;
   ```

1. Untuk menyedot tabel acara dalam skema pemasaran, gunakan contoh berikut.

   ```
   VACUUM marketing.events;
   ```

## Langkah 10: Potong tabel sebagai pengguna baca-tulis
<a name="tutorial-rbac-step10"></a>

Pada langkah ini, pengguna salesengineer mencoba memotong tabel peristiwa dalam skema penjualan, tetapi hanya berhasil jika diberikan izin pemotongan oleh pengguna dbadmin. 

1. Connect ke database sebagai pengguna salesengineer.

1. Untuk mencoba menghapus semua baris dari tabel peristiwa dalam skema penjualan, gunakan contoh berikut. Contoh ini akan mengakibatkan kesalahan karena pengguna salesengineer tidak memiliki izin yang diperlukan dan bukan pemilik tabel peristiwa dalam skema penjualan. Untuk memotong tabel peristiwa, Anda harus memberikan izin peran sales\$1rw ke TRUNCATE menggunakan perintah GRANT. Untuk informasi selengkapnya tentang perintah TRUNCATE, lihat. [MEMOTONG](r_TRUNCATE.md)

   ```
   TRUNCATE sales.events;
                  
   ERROR: must be owner of relation events
   ```

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk memberikan hak istimewa tabel pemotongan ke peran sales\$1rw, gunakan contoh berikut.

   ```
   GRANT TRUNCATE TABLE TO role sales_rw;
   ```

1. Connect ke database sebagai pengguna salesengineer menggunakan query editor v2.

1. Untuk membaca 10 peristiwa pertama dari tabel acara dalam skema penjualan, gunakan contoh berikut.

   ```
   SELECT * FROM sales.events ORDER BY eventid LIMIT 10;
                  
   +---------+---------+-------+--------+-----------------------------+---------------------+
   | eventid | venueid | catid | dateid |          eventname          |      starttime      |
   +---------+---------+-------+--------+-----------------------------+---------------------+
   |       1 |     305 |     8 |   1851 | Comment event               | 2008-01-25 14:30:00 |
   |       2 |     306 |     8 |   2114 | Boris Godunov               | 2008-10-15 20:00:00 |
   |       3 |     302 |     8 |   1935 | Salome                      | 2008-04-19 14:30:00 |
   |       4 |     309 |     8 |   2090 | La Cenerentola (Cinderella) | 2008-09-21 14:30:00 |
   |       5 |     302 |     8 |   1982 | Il Trovatore                | 2008-06-05 19:00:00 |
   |       6 |     308 |     8 |   2109 | L Elisir d Amore            | 2008-10-10 19:30:00 |
   |       7 |     309 |     8 |   1891 | Doctor Atomic               | 2008-03-06 14:00:00 |
   |       8 |     302 |     8 |   1832 | The Magic Flute             | 2008-01-06 20:00:00 |
   |       9 |     308 |     8 |   2087 | The Fly                     | 2008-09-18 19:30:00 |
   |      10 |     305 |     8 |   2079 | Rigoletto                   | 2008-09-10 15:00:00 |
   +---------+---------+-------+--------+-----------------------------+---------------------+
   ```

1. Untuk memotong tabel acara dalam skema penjualan, gunakan contoh berikut.

   ```
   TRUNCATE sales.events;
   ```

1. Untuk membaca data dari tabel peristiwa yang diperbarui dalam skema penjualan, gunakan contoh berikut.

   ```
   SELECT * FROM sales.events ORDER BY eventid LIMIT 10;
                  
   +---------+---------+-------+--------+-----------------------------+---------------------+
   | eventid | venueid | catid | dateid |          eventname          |      starttime      |
   +---------+---------+-------+--------+-----------------------------+---------------------+
   ```

### Buat peran read-only dan read-write untuk skema pemasaran (opsional)
<a name="tutorial-rbac-create-marketing-schema"></a>

Pada langkah ini, Anda membuat peran read-only dan read-write untuk skema pemasaran.

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk membuat peran read-only dan read-write untuk skema pemasaran, gunakan contoh berikut.

   ```
   CREATE ROLE marketing_ro;
   
   CREATE ROLE marketing_rw;
   
   GRANT USAGE ON SCHEMA marketing TO ROLE marketing_ro, ROLE marketing_rw;
   
   GRANT SELECT ON ALL TABLES IN SCHEMA marketing TO ROLE marketing_ro;
   
   GRANT ROLE marketing_ro TO ROLE marketing_rw;
   
   GRANT INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA marketing TO ROLE marketing_rw;
   
   CREATE USER marketinganalyst PASSWORD 'Test12345';
   
   CREATE USER marketingengineer PASSWORD 'Test12345';
   
   GRANT ROLE marketing_ro TO marketinganalyst;
   
   GRANT ROLE marketing_rw TO marketingengineer;
   ```

## Fungsi sistem untuk RBAC (opsional)
<a name="tutorial-rbac-system-functions"></a>

Amazon Redshift memiliki dua fungsi untuk menyediakan informasi sistem tentang keanggotaan pengguna dan keanggotaan peran dalam grup atau peran tambahan: role\$1is\$1member\$1of dan user\$1is\$1member\$1of. Fungsi-fungsi ini tersedia untuk pengguna super dan pengguna biasa. Superusers dapat memeriksa semua keanggotaan peran. Pengguna reguler hanya dapat memeriksa keanggotaan untuk peran yang telah diberikan akses kepada mereka.

Untuk menggunakan fungsi role\$1is\$1member\$1of

1. Connect ke database sebagai pengguna salesengineer.

1. Untuk memeriksa apakah peran sales\$1rw adalah anggota dari peran sales\$1ro, gunakan contoh berikut.

   ```
   SELECT role_is_member_of('sales_rw', 'sales_ro');
                  
   +-------------------+
   | role_is_member_of |
   +-------------------+
   | true              |
   +-------------------+
   ```

1. Untuk memeriksa apakah peran sales\$1ro adalah anggota dari peran sales\$1rw, gunakan contoh berikut.

   ```
   SELECT role_is_member_of('sales_ro', 'sales_rw');
                  
   +-------------------+
   | role_is_member_of |
   +-------------------+
   | false             |
   +-------------------+
   ```

Untuk menggunakan fungsi user\$1is\$1member\$1of

1. Connect ke database sebagai pengguna salesengineer.

1. Contoh berikut mencoba untuk memeriksa keanggotaan pengguna untuk pengguna salesanalyst. Kueri ini menghasilkan kesalahan karena salesengineer tidak memiliki akses ke analis penjualan. Untuk menjalankan perintah ini dengan sukses, sambungkan ke database sebagai pengguna salesanalyst dan gunakan contoh.

   ```
   SELECT user_is_member_of('salesanalyst', 'sales_ro');
                  
   ERROR
   ```

1. Connect ke database sebagai superuser.

1. Untuk memeriksa keanggotaan pengguna salesanalyst saat terhubung sebagai superuser, gunakan contoh berikut.

   ```
   SELECT user_is_member_of('salesanalyst', 'sales_ro');
                  
   +-------------------+
   | user_is_member_of |
   +-------------------+
   | true              |
   +-------------------+
   ```

1. Connect ke database sebagai pengguna dbadmin.

1. Untuk memeriksa keanggotaan pengguna salesengineer, gunakan contoh berikut. 

   ```
   SELECT user_is_member_of('salesengineer', 'sales_ro');
                  
   +-------------------+
   | user_is_member_of |
   +-------------------+
   | true              |
   +-------------------+
                  
   SELECT user_is_member_of('salesengineer', 'marketing_ro');
   
   +-------------------+
   | user_is_member_of |
   +-------------------+
   | false             |
   +-------------------+
                  
   SELECT user_is_member_of('marketinganalyst', 'sales_ro');
                  
   +-------------------+
   | user_is_member_of |
   +-------------------+
   | false             |
   +-------------------+
   ```

## Tampilan sistem untuk RBAC (opsional)
<a name="tutorial-rbac-system-views"></a>

Untuk melihat peran, penetapan peran ke pengguna, hierarki peran, dan hak istimewa untuk objek database melalui peran, gunakan tampilan sistem untuk Amazon Redshift. Tampilan ini tersedia untuk pengguna super dan pengguna biasa. Pengguna super dapat memeriksa semua detail peran. Pengguna reguler hanya dapat memeriksa detail untuk peran yang telah diberikan akses kepada mereka.

1. Untuk melihat daftar pengguna yang secara eksplisit diberikan peran dalam klaster, gunakan contoh berikut.

   ```
   SELECT * FROM svv_user_grants;
   ```

1. Untuk melihat daftar peran yang secara eksplisit diberikan peran dalam klaster, gunakan contoh berikut.

   ```
   SELECT * FROM svv_role_grants;
   ```

Untuk daftar lengkap tampilan sistem, lihat[Tampilan metadata SVV](svv_views.md).

## Gunakan keamanan tingkat baris dengan RBAC (opsional)
<a name="tutorial-rbac-rls"></a>

Untuk memiliki kontrol akses terperinci atas data sensitif Anda, gunakan keamanan tingkat baris (RLS). Untuk informasi lebih lanjut tentang RLS, lihat[Keamanan tingkat baris](t_rls.md).

Di bagian ini, Anda membuat kebijakan RLS yang memberikan izin `salesengineer` pengguna untuk hanya melihat baris dalam `cat` tabel yang memiliki `catdesc` nilai Major League Baseball. Anda kemudian menanyakan database sebagai `salesengineer` pengguna.

1. Connect ke database sebagai `salesengineer` pengguna.

1. Untuk melihat 5 entri pertama dalam `cat` tabel, gunakan contoh berikut.

   ```
   SELECT * 
   FROM sales.cat
   ORDER BY catid ASC
   LIMIT 5;
                     
   +-------+----------+---------+---------------------------------+
   | catid | catgroup | catname |             catdesc             |
   +-------+----------+---------+---------------------------------+
   |     1 | Sports   | MLB     | Major League Baseball           |
   |     2 | Sports   | NHL     | National Hockey League          |
   |     3 | Sports   | NFL     | National Football League        |
   |     4 | Sports   | NBA     | National Basketball Association |
   |     5 | Sports   | MLS     | Major League Soccer             |
   +-------+----------+---------+---------------------------------+
   ```

1. Connect ke database sebagai `dbadmin` pengguna.

1. Untuk membuat kebijakan RLS untuk `catdesc` kolom dalam `cat` tabel, gunakan contoh berikut.

   ```
   CREATE RLS POLICY policy_mlb_engineer
   WITH (catdesc VARCHAR(50)) 
   USING (catdesc = 'Major League Baseball');
   ```

1. Untuk melampirkan kebijakan RLS ke `sales_rw` peran, gunakan contoh berikut.

   ```
   ATTACH RLS POLICY policy_mlb_engineer ON sales.cat TO ROLE sales_rw; 
   ```

1. Untuk mengubah tabel untuk mengaktifkan RLS, gunakan contoh berikut.

   ```
   ALTER TABLE sales.cat ROW LEVEL SECURITY ON; 
   ```

1. Connect ke database sebagai `salesengineer` pengguna.

1. Untuk mencoba melihat 5 entri pertama dalam `cat` tabel, gunakan contoh berikut. Perhatikan bahwa hanya entri yang hanya muncul ketika `catdesc` kolom tersebut`Major League Baseball`.

   ```
   SELECT * 
   FROM sales.cat
   ORDER BY catid ASC
   LIMIT 5;
                  
   +-------+----------+---------+-----------------------+
   | catid | catgroup | catname |        catdesc        |
   +-------+----------+---------+-----------------------+
   |     1 | Sports   | MLB     | Major League Baseball |
   +-------+----------+---------+-----------------------+
   ```

1. Connect ke database sebagai `salesanalyst` pengguna.

1. Untuk mencoba melihat 5 entri pertama dalam `cat` tabel, gunakan contoh berikut. Perhatikan bahwa tidak ada entri yang muncul karena kebijakan penolakan default semua diterapkan.

   ```
   SELECT * 
   FROM sales.cat
   ORDER BY catid ASC
   LIMIT 5;
                  
   +-------+----------+---------+-----------------------+
   | catid | catgroup | catname |        catdesc        |
   +-------+----------+---------+-----------------------+
   ```

1. Connect ke database sebagai `dbadmin` pengguna.

1. Untuk memberikan izin IGNORE RLS ke `sales_ro` peran, gunakan contoh berikut. Ini memberi `salesanalyst` pengguna izin untuk mengabaikan kebijakan RLS karena mereka adalah anggota peran. `sales_ro`

   ```
   GRANT IGNORE RLS TO ROLE sales_ro; 
   ```

1. Connect ke database sebagai `salesanalyst` pengguna.

1. Untuk melihat 5 entri pertama dalam `cat` tabel, gunakan contoh berikut.

   ```
   SELECT * 
   FROM sales.cat
   ORDER BY catid ASC
   LIMIT 5;
                  
   +-------+----------+---------+---------------------------------+
   | catid | catgroup | catname |             catdesc             |
   +-------+----------+---------+---------------------------------+
   |     1 | Sports   | MLB     | Major League Baseball           |
   |     2 | Sports   | NHL     | National Hockey League          |
   |     3 | Sports   | NFL     | National Football League        |
   |     4 | Sports   | NBA     | National Basketball Association |
   |     5 | Sports   | MLS     | Major League Soccer             |
   +-------+----------+---------+---------------------------------+
   ```

1. Connect ke database sebagai `dbadmin` pengguna.

1. Untuk mencabut izin IGNORE RLS dari `sales_ro` peran, gunakan contoh berikut.

   ```
   REVOKE IGNORE RLS FROM ROLE sales_ro;
   ```

1. Connect ke database sebagai `salesanalyst` pengguna.

1. Untuk mencoba melihat 5 entri pertama dalam `cat` tabel, gunakan contoh berikut. Perhatikan bahwa tidak ada entri yang muncul karena kebijakan penolakan default semua diterapkan.

   ```
   SELECT * 
   FROM sales.cat
   ORDER BY catid ASC
   LIMIT 5;
                  
   +-------+----------+---------+-----------------------+
   | catid | catgroup | catname |        catdesc        |
   +-------+----------+---------+-----------------------+
   ```

1. Connect ke database sebagai `dbadmin` pengguna.

1. Untuk melepaskan kebijakan RLS dari `cat` tabel, gunakan contoh berikut.

   ```
   DETACH RLS POLICY policy_mlb_engineer ON cat FROM ROLE sales_rw;
   ```

1. Connect ke database sebagai `salesanalyst` pengguna.

1. Untuk mencoba melihat 5 entri pertama dalam `cat` tabel, gunakan contoh berikut. Perhatikan bahwa tidak ada entri yang muncul karena kebijakan penolakan default semua diterapkan.

   ```
   SELECT * 
   FROM sales.cat
   ORDER BY catid ASC
   LIMIT 5;
                  
   +-------+----------+---------+---------------------------------+
   | catid | catgroup | catname |             catdesc             |
   +-------+----------+---------+---------------------------------+
   |     1 | Sports   | MLB     | Major League Baseball           |
   |     2 | Sports   | NHL     | National Hockey League          |
   |     3 | Sports   | NFL     | National Football League        |
   |     4 | Sports   | NBA     | National Basketball Association |
   |     5 | Sports   | MLS     | Major League Soccer             |
   +-------+----------+---------+---------------------------------+
   ```

1. Connect ke database sebagai `dbadmin` pengguna.

1. Untuk menghapus kebijakan RLS, gunakan contoh berikut.

   ```
   DROP RLS POLICY policy_mlb_engineer;
   ```

1. Untuk menghapus RLS, gunakan contoh berikut.

   ```
   ALTER TABLE cat ROW LEVEL SECURITY OFF;
   ```

## Topik terkait
<a name="tutorial-rbac-related-topics"></a>

Untuk informasi selengkapnya tentang RBAC, lihat dokumentasi berikut:
+ [Hirarki peran](t_role_hierarchy.md)
+ [Penugasan peran](t_role_assignment.md)
+ [Izin objek database](r_roles-database-privileges.md)
+ [UBAH HAK ISTIMEWA DEFAULT untuk RBAC](r_roles-alter-default-privileges.md)