Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Tutorial: Membuat peran dan query dengan RBAC

Mode fokus
Tutorial: Membuat peran dan query dengan RBAC - Amazon Redshift

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

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

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 dansales_rw. Anda membuat data sales_ro peran dan kueri sebagai pengguna dengan sales_ro peran tersebut. sales_roPengguna 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_rwPengguna 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

Langkah 1: Buat pengguna administrator

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.

  1. Untuk membuat peran administrator db_admin, gunakan contoh berikut.

    CREATE ROLE db_admin;
  2. Untuk membuat pengguna database bernama dbadmin, gunakan contoh berikut.

    CREATE USER dbadmin PASSWORD 'Test12345';
  3. Untuk memberikan peran yang ditentukan sistem bernama sys:dba ke peran db_admin, gunakan contoh berikut. Ketika diberikan peran sys:dba, pengguna dbadmin dapat membuat skema dan tabel. Untuk informasi selengkapnya, lihat Peran yang ditentukan sistem Amazon Redshift.

Langkah 2: Mengatur skema

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.

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

    CREATE SCHEMA sales; CREATE SCHEMA marketing;
  3. 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);
  4. 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

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.

  2. Untuk membuat peran sales_ro, gunakan contoh berikut.

    CREATE ROLE sales_ro;
  3. Untuk membuat pengguna salesanalyst, gunakan contoh berikut.

    CREATE USER salesanalyst PASSWORD 'Test12345';
  4. Untuk memberikan penggunaan peran sales_ro 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;
  5. Untuk memberi pengguna salesanalyst peran sales_ro, gunakan contoh berikut.

    GRANT ROLE sales_ro TO salesanalyst;

Langkah 4: Kueri data sebagai pengguna hanya-baca

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.

  2. 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 | +--------+------------+----------+
  3. 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 | +---------+---------+-------+--------+--------------------+---------------------+
  4. 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_ro ke UPDATE. Untuk informasi selengkapnya tentang pemberian izin untuk memperbarui tabel, lihat parameter UPDATE untuk. HIBAH Untuk informasi selengkapnya tentang perintah UPDATE, lihatUPDATE.

    UPDATE sales.events SET eventname = 'Comment event' WHERE eventid = 1; ERROR: permission denied for relation events
  5. 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_ro pada tabel peristiwa dalam skema pemasaran.

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

Langkah 5: Buat pengguna baca-tulis

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.

  2. Untuk membuat peran sales_rw dalam skema penjualan, gunakan contoh berikut.

    CREATE ROLE sales_rw;
  3. Untuk membuat pengguna salesengineer, gunakan contoh berikut.

    CREATE USER salesengineer PASSWORD 'Test12345';
  4. Untuk memberikan penggunaan peran sales_rw dan memilih akses ke objek skema penjualan dengan menetapkan peran sales_ro untuk itu, gunakan contoh berikut. Untuk informasi selengkapnya tentang cara peran mewarisi izin di Amazon Redshift, lihat. Hirarki peran

    GRANT ROLE sales_ro TO ROLE sales_rw;
  5. Untuk menetapkan peran sales_rw ke pengguna salesengineer, gunakan contoh berikut.

    GRANT ROLE sales_rw TO salesengineer;

Langkah 6: Kueri data sebagai pengguna dengan peran hanya-baca yang diwariskan

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

  1. Connect ke database sebagai pengguna salesengineer.

  2. 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 | +---------+---------+-------+--------+-----------------+---------------------+
  3. 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_rw pada tabel peristiwa dalam skema pemasaran.

    SELECT * FROM marketing.events; ERROR: permission denied for schema marketing
  4. 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_rw 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

Pada langkah ini, Anda memberikan pembaruan dan menyisipkan izin ke peran sales_rw.

  1. Connect ke database sebagai pengguna dbadmin.

  2. Untuk memberikan izin UPDATE, INSERT, dan DELETE ke peran sales_rw, gunakan contoh berikut.

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

Langkah 8: Kueri data sebagai pengguna baca-tulis

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.

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

    UPDATE sales.events SET eventname = 'Comment event' WHERE eventid = 1;
  3. 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 | +---------+---------+-------+--------+---------------+---------------------+
  4. 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_rw untuk MENGANALISIS menggunakan perintah GRANT. Untuk informasi selengkapnya tentang perintah ANALYZE, lihatMENGANALISA.

    ANALYZE sales.events; ERROR: skipping "events" --- only table or database owner can analyze
  5. 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_rw ke VACUUM menggunakan perintah GRANT. Untuk informasi lebih lanjut tentang perintah VACUUM, lihatVAKUM.

    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

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.

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

    ANALYZE sales.events;
  3. Untuk menyedot tabel acara dalam skema penjualan, gunakan contoh berikut.

    VACUUM sales.events;
  4. Untuk menganalisis tabel peristiwa dalam skema pemasaran, gunakan contoh berikut.

    ANALYZE marketing.events;
  5. Untuk menyedot tabel acara dalam skema pemasaran, gunakan contoh berikut.

    VACUUM marketing.events;

Langkah 10: Potong tabel sebagai pengguna baca-tulis

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.

  2. 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_rw ke TRUNCATE menggunakan perintah GRANT. Untuk informasi selengkapnya tentang perintah TRUNCATE, lihat. MEMOTONG

    TRUNCATE sales.events; ERROR: must be owner of relation events
  3. Connect ke database sebagai pengguna dbadmin.

  4. Untuk memberikan hak istimewa tabel pemotongan ke peran sales_rw, gunakan contoh berikut.

    GRANT TRUNCATE TABLE TO role sales_rw;
  5. Connect ke database sebagai pengguna salesengineer menggunakan query editor v2.

  6. 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 | +---------+---------+-------+--------+-----------------------------+---------------------+
  7. Untuk memotong tabel acara dalam skema penjualan, gunakan contoh berikut.

    TRUNCATE sales.events;
  8. 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)

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

  1. Connect ke database sebagai pengguna dbadmin.

  2. 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)

Amazon Redshift memiliki dua fungsi untuk menyediakan informasi sistem tentang keanggotaan pengguna dan keanggotaan peran dalam grup atau peran tambahan: role_is_member_of dan user_is_member_of. 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_is_member_of

  1. Connect ke database sebagai pengguna salesengineer.

  2. Untuk memeriksa apakah peran sales_rw adalah anggota peran sales_ro, gunakan contoh berikut.

    SELECT role_is_member_of('sales_rw', 'sales_ro'); +-------------------+ | role_is_member_of | +-------------------+ | true | +-------------------+
  3. Untuk memeriksa apakah peran sales_ro adalah anggota peran sales_rw, gunakan contoh berikut.

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

Untuk menggunakan fungsi user_is_member_of

  1. Connect ke database sebagai pengguna salesengineer.

  2. 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
  3. Connect ke database sebagai superuser.

  4. 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 | +-------------------+
  5. Connect ke database sebagai pengguna dbadmin.

  6. 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)

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;
  2. Untuk melihat daftar peran yang secara eksplisit diberikan peran dalam klaster, gunakan contoh berikut.

    SELECT * FROM svv_role_grants;

Untuk daftar lengkap tampilan sistem, lihatTampilan metadata SVV.

Gunakan keamanan tingkat baris dengan RBAC (opsional)

Untuk memiliki kontrol akses terperinci atas data sensitif Anda, gunakan keamanan tingkat baris (RLS). Untuk informasi lebih lanjut tentang RLS, lihatKeamanan tingkat baris.

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.

  2. 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 | +-------+----------+---------+---------------------------------+
  3. Connect ke database sebagai dbadmin pengguna.

  4. 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');
  5. Untuk melampirkan kebijakan RLS ke sales_rw peran, gunakan contoh berikut.

    ATTACH RLS POLICY policy_mlb_engineer ON sales.cat TO ROLE sales_rw;
  6. Untuk mengubah tabel untuk mengaktifkan RLS, gunakan contoh berikut.

    ALTER TABLE sales.cat ROW LEVEL SECURITY ON;
  7. Connect ke database sebagai salesengineer pengguna.

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

    SELECT * FROM sales.cat ORDER BY catid ASC LIMIT 5; +-------+----------+---------+-----------------------+ | catid | catgroup | catname | catdesc | +-------+----------+---------+-----------------------+ | 1 | Sports | MLB | Major League Baseball | +-------+----------+---------+-----------------------+
  9. Connect ke database sebagai salesanalyst pengguna.

  10. 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 | +-------+----------+---------+-----------------------+
  11. Connect ke database sebagai dbadmin pengguna.

  12. 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;
  13. Connect ke database sebagai salesanalyst pengguna.

  14. 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 | +-------+----------+---------+---------------------------------+
  15. Connect ke database sebagai dbadmin pengguna.

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

    REVOKE IGNORE RLS FROM ROLE sales_ro;
  17. Connect ke database sebagai salesanalyst pengguna.

  18. 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 | +-------+----------+---------+-----------------------+
  19. Connect ke database sebagai dbadmin pengguna.

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

    DETACH RLS POLICY policy_mlb_engineer ON cat FROM ROLE sales_rw;
  21. Connect ke database sebagai salesanalyst pengguna.

  22. 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 | +-------+----------+---------+---------------------------------+
  23. Connect ke database sebagai dbadmin pengguna.

  24. Untuk menghapus kebijakan RLS, gunakan contoh berikut.

    DROP RLS POLICY policy_mlb_engineer;
  25. Untuk menghapus RLS, gunakan contoh berikut.

    ALTER TABLE cat ROW LEVEL SECURITY OFF;

Untuk informasi selengkapnya tentang RBAC, lihat dokumentasi berikut:

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.