View a markdown version of this page

Contoh - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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

Contoh

Contoh berikut memberikan hak istimewa SELECT pada tabel SALES kepada penggunafred.

grant select on table sales to fred;

Contoh berikut memberikan hak istimewa SELECT pada semua tabel dalam skema QA_TICKIT kepada pengguna. fred

grant select on all tables in schema qa_tickit to fred;

Contoh berikut memberikan semua hak istimewa skema pada skema QA_TICKIT ke grup pengguna QA_USERS. Hak istimewa skema adalah CREATE dan USAGE. USAGE memberi pengguna akses ke objek dalam skema, tetapi tidak memberikan hak istimewa seperti INSERT atau SELECT pada objek tersebut. Berikan hak istimewa pada setiap objek secara terpisah.

create group qa_users; grant all on schema qa_tickit to group qa_users;

Contoh berikut memberikan semua hak istimewa pada tabel SALES dalam skema QA_TICKIT kepada semua pengguna dalam grup QA_USERS.

grant all on table qa_tickit.sales to group qa_users;

Contoh berikut memberikan semua hak istimewa pada tabel SALES dalam skema QA_TICKIT kepada semua pengguna dalam grup QA_USERS dan RO_USERS.

grant all on table qa_tickit.sales to group qa_users, group ro_users;

Contoh berikut memberikan hak istimewa DROP pada tabel SALES dalam skema QA_TICKIT kepada semua pengguna dalam grup QA_USERS.

grant drop on table qa_tickit.sales to group qa_users;>

Urutan perintah berikut menunjukkan bagaimana akses ke skema tidak memberikan hak istimewa pada tabel dalam skema.

create user schema_user in group qa_users password 'Abcd1234'; create schema qa_tickit; create table qa_tickit.test (col1 int); grant all on schema qa_tickit to schema_user; set session authorization schema_user; select current_user; current_user -------------- schema_user (1 row) select count(*) from qa_tickit.test; ERROR: permission denied for relation test [SQL State=42501] set session authorization dw_user; grant select on table qa_tickit.test to schema_user; set session authorization schema_user; select count(*) from qa_tickit.test; count ------- 0 (1 row)

Urutan perintah berikut menunjukkan bagaimana akses ke tampilan tidak menyiratkan akses ke tabel yang mendasarinya. Pengguna bernama VIEW_USER tidak dapat memilih dari tabel DATE, meskipun pengguna ini telah diberikan semua hak istimewa pada VIEW_DATE.

create user view_user password 'Abcd1234'; create view view_date as select * from date; grant all on view_date to view_user; set session authorization view_user; select current_user; current_user -------------- view_user (1 row) select count(*) from view_date; count ------- 365 (1 row) select count(*) from date; ERROR: permission denied for relation date

Contoh berikut memberikan hak istimewa SELECT pada cust_phone kolom cust_name dan cust_profile tabel kepada penggunauser1.

grant select(cust_name, cust_phone) on cust_profile to user1;

Contoh berikut memberikan hak istimewa SELECT pada cust_phone kolom cust_name dan dan hak istimewa cust_contact_preference UPDATE pada kolom cust_profile tabel ke sales_group grup.

grant select(cust_name, cust_phone), update(cust_contact_preference) on cust_profile to group sales_group;

Contoh berikut menunjukkan penggunaan kata kunci ALL untuk memberikan hak istimewa SELECT dan UPDATE pada tiga kolom tabel cust_profile ke sales_admin grup.

grant ALL(cust_name, cust_phone,cust_contact_preference) on cust_profile to group sales_admin;

Contoh berikut memberikan hak istimewa SELECT pada cust_name kolom cust_profile_vw tampilan kepada user2 pengguna.

grant select(cust_name) on cust_profile_vw to user2;

Contoh pemberian akses ke datashares

Contoh berikut menunjukkan izin penggunaan berbagi data GRANT pada database atau skema tertentu yang dibuat dari datashare.

Dalam contoh berikut, admin sisi produsen memberikan izin USAGE pada salesshare datashare ke namespace yang ditentukan.

GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';

Dalam contoh berikut, admin sisi konsumen memberikan izin USAGE pada kesales_db. Bob

GRANT USAGE ON DATABASE sales_db TO Bob;

Dalam contoh berikut, admin sisi konsumen memberikan izin GRANT USAGE pada sales_schema skema ke peran tersebutAnalyst_role. sales_schemaadalah skema eksternal yang menunjuk ke sales_db.

GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;

Pada titik ini, Bob dan Analyst_role dapat mengakses semua objek database di sales_schema dansales_db.

Contoh berikut menunjukkan pemberian izin tingkat objek tambahan untuk objek dalam database bersama. Izin tambahan ini hanya diperlukan jika perintah CREATE DATABASE yang digunakan untuk membuat database bersama menggunakan klausa WITH PERMISSIONS. Jika perintah CREATE DATABASE tidak menggunakan WITH PERMISSIONS, pemberian USE pada database bersama memberikan akses penuh ke semua objek dalam database tersebut.

GRANT SELECT ON sales_db.sales_schema.tickit_sales_redshift to Bob;

Contoh pemberian izin bercakupan

Contoh berikut memberikan penggunaan untuk semua skema saat ini dan masa depan dalam Sales_db database ke Sales peran.

GRANT USAGE FOR SCHEMAS IN DATABASE Sales_db TO ROLE Sales;

Contoh berikut memberikan izin SELECT untuk semua tabel saat ini dan yang akan datang dalam Sales_db database kepada penggunaalice, dan juga memberikan alice izin untuk memberikan izin cakupan pada tabel Sales_db ke pengguna lain.

GRANT SELECT FOR TABLES IN DATABASE Sales_db TO alice WITH GRANT OPTION;

Contoh berikut memberikan izin EXECUTE untuk fungsi dalam Sales_schema skema kepada penggunabob.

GRANT EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema TO bob;

Contoh berikut memberikan semua izin untuk semua tabel dalam ShareSchema skema ShareDb database ke Sales peran. Saat menentukan skema, Anda dapat menentukan database skema menggunakan format database.schema dua bagian.

GRANT ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema TO ROLE Sales;

Contoh berikut adalah sama dengan yang sebelumnya. Anda dapat menentukan database menggunakan DATABASE kata kunci alih-alih menggunakan format dua bagian.

GRANT ALL FOR TABLES IN SCHEMA ShareSchema DATABASE ShareDb TO ROLE Sales;

Contoh pemberian hak istimewa ASSUMEROLE

Berikut ini adalah contoh pemberian hak istimewa ASSUMEROLE.

Contoh berikut menunjukkan pernyataan REVOKE bahwa superuser berjalan sekali pada cluster untuk mengaktifkan penggunaan hak istimewa ASSUMEROLE untuk pengguna dan grup. Kemudian, superuser memberikan hak istimewa ASSUMEROLE kepada pengguna dan grup untuk perintah yang sesuai. Untuk informasi tentang mengaktifkan penggunaan hak istimewa ASSUMEROLE untuk pengguna dan grup, lihat. Catatan penggunaan untuk memberikan izin ASSUMEROLE

revoke assumerole on all from public for all;

Contoh berikut memberikan hak istimewa ASSUMEROLE kepada pengguna reg_user1 untuk peran IAM Redshift-S3-Read untuk melakukan operasi COPY.

grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-S3-Read' to reg_user1 for copy;

Contoh berikut memberikan hak istimewa ASSUMEROLE kepada pengguna reg_user1 untuk rantai peran IAMRoleA, RoleB untuk melakukan operasi UNLOAD.

grant assumerole on 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB' to reg_user1 for unload;

Berikut ini adalah contoh perintah UNLOAD menggunakan rantai RoleA peran IAM,. RoleB

unload ('select * from venue limit 10') to 's3://companyb/redshift/venue_pipe_' iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Contoh berikut memberikan hak istimewa ASSUMEROLE kepada pengguna reg_user1 untuk peran IAM Redshift-Exfunc untuk membuat fungsi eksternal.

grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-Exfunc' to reg_user1 for external function;

Contoh berikut memberikan hak istimewa ASSUMEROLE kepada pengguna reg_user1 untuk peran IAM Redshift-model untuk membuat model pembelajaran mesin.

grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-ML' to reg_user1 for create model;

Contoh pemberian hak istimewa ROLE

Contoh berikut memberikan sample_role1 ke user1.

CREATE ROLE sample_role1; GRANT ROLE sample_role1 TO user1;

Contoh berikut memberikan sample_role1 kepada user1 dengan OPSI WITH ADMIN, menetapkan sesi saat ini untuk user1, dan user1 memberikan sample_role1 ke user2.

GRANT ROLE sample_role1 TO user1 WITH ADMIN OPTION; SET SESSION AUTHORIZATION user1; GRANT ROLE sample_role1 TO user2;

Contoh berikut memberikan sample_role1 ke sample_role2.

GRANT ROLE sample_role1 TO ROLE sample_role2;

Contoh berikut memberikan sample_role2 ke sample_role3 dan sample_role4. Kemudian mencoba memberikan sample_role3 ke sample_role1.

GRANT ROLE sample_role2 TO ROLE sample_role3; GRANT ROLE sample_role3 TO ROLE sample_role2; ERROR: cannot grant this role, a circular dependency was detected between these roles

Contoh berikut memberikan hak istimewa sistem CREATE USER ke sample_role1.

GRANT CREATE USER TO ROLE sample_role1;

Contoh berikut memberikan peran yang ditentukan sistem kepada user1sys:dba.

GRANT ROLE sys:dba TO user1;

Contoh berikut mencoba memberikan sample_role3 dalam ketergantungan melingkar ke sample_role2.

CREATE ROLE sample_role3; GRANT ROLE sample_role2 TO ROLE sample_role3; GRANT ROLE sample_role3 TO ROLE sample_role2; -- fail ERROR: cannot grant this role, a circular dependency was detected between these roles