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 PENJUALAN kepada pengguna. fred
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 USE. PENGGUNAAN 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 PENJUALAN dalam skema QA_TICKIT untuk 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 PENJUALAN dalam skema QA_TICKIT untuk 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 PENJUALAN dalam skema QA_TICKIT untuk 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_name
dan cust_phone
kolom cust_profile
tabel kepada pengguna. user1
grant select(cust_name, cust_phone) on cust_profile to user1;
Contoh berikut memberikan hak istimewa SELECT pada cust_phone
kolom cust_name
dan hak istimewa UPDATE pada cust_contact_preference
kolom cust_profile
tabel ke grup. sales_group
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 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 pengguna. user2
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 PENGGUNAAN pada to. sales_db
Bob
GRANT USAGE ON DATABASE sales_db TO Bob;
Dalam contoh berikut, admin sisi konsumen memberikan izin PENGGUNAAN HIBAH pada sales_schema
skema untuk peran tersebut. Analyst_role
sales_schema
adalah 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 terbatas
Contoh berikut memberikan penggunaan untuk semua skema saat ini dan masa depan dalam Sales_db
database untuk peran tersebut. Sales
GRANT USAGE FOR SCHEMAS IN DATABASE Sales_db TO ROLE Sales;
Contoh berikut memberikan izin SELECT untuk semua tabel saat ini dan masa depan dalam Sales_db
database kepada penggunaalice
, dan juga memberikan alice
izin untuk memberikan izin cakupan pada Sales_db
tabel 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 pengguna. bob
GRANT EXECUTE FOR FUNCTIONS IN SCHEMA Sales_schema TO bob;
Contoh berikut memberikan semua izin untuk semua tabel dalam ShareSchema
skema ShareDb
database untuk peran. Sales
Saat menentukan skema, Anda dapat menentukan database skema menggunakan format dua bagian. database.schema
GRANT ALL FOR TABLES IN SCHEMA ShareDb.ShareSchema TO ROLE Sales;
Contoh berikut ini 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 di 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 untuk peran IAM untuk melakukan reg_user1
operasi COPY. Redshift-S3-Read
grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-S3-Read' to reg_user1 for copy;
Contoh berikut memberikan hak istimewa ASSUMEROLE kepada pengguna untuk rantai RoleA
peran IAM, reg_user1
untuk melakukan operasi UNLOAD. RoleB
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 untuk peran IAM reg_user1
untuk membuat fungsi eksternal. Redshift-Exfunc
grant assumerole on 'arn:aws:iam::123456789012:role/Redshift-Exfunc' to reg_user1 for external function;
Contoh berikut memberikan hak istimewa ASSUMEROLE kepada pengguna untuk peran Redshift-model
IAM reg_user1
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 PERAN
Contoh berikut memberikan sample_role1 ke user1.
CREATE ROLE sample_role1; GRANT ROLE sample_role1 TO user1;
Contoh berikut memberikan sample_role1 ke 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 sys:dba
yang ditentukan sistem ke user1.
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