

 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.

# Contoh
<a name="r_GRANT-examples"></a>

 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\$1TICKIT kepada pengguna. `fred` 

```
grant select on all tables in schema qa_tickit to fred;
```

Contoh berikut memberikan semua hak istimewa skema pada skema QA\$1TICKIT ke grup pengguna QA\$1USERS. 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\$1TICKIT untuk semua pengguna dalam grup QA\$1USERS.

```
grant all on table qa_tickit.sales to group qa_users;
```

Contoh berikut memberikan semua hak istimewa pada tabel PENJUALAN dalam skema QA\$1TICKIT untuk semua pengguna dalam grup QA\$1USERS dan RO\$1USERS.

```
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\$1TICKIT untuk semua pengguna dalam grup QA\$1USERS.

```
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 dasarnya. Pengguna bernama VIEW\$1USER tidak dapat memilih dari tabel DATE, meskipun pengguna ini telah diberikan semua hak istimewa pada VIEW\$1DATE. 

```
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
<a name="r_GRANT-examples-datashare"></a>

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\$1db.

```
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` dan`sales_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 cakupan
<a name="r_GRANT-examples-scoped"></a>

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 pengguna`alice`, 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
<a name="r_GRANT-examples-assumerole"></a>

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](r_GRANT-usage-notes.md#r_GRANT-usage-notes-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
<a name="r_GRANT-examples-role"></a>

Contoh berikut memberikan sample\$1role1 ke user1.

```
CREATE ROLE sample_role1;
GRANT ROLE sample_role1 TO user1;
```

Contoh berikut memberikan sample\$1role1 ke user1 dengan OPSI WITH ADMIN, menetapkan sesi saat ini untuk user1, dan user1 memberikan sample\$1role1 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\$1role1 ke sample\$1role2.

```
GRANT ROLE sample_role1 TO ROLE sample_role2;
```

Contoh berikut memberikan sample\$1role2 ke sample\$1role3 dan sample\$1role4. Kemudian mencoba memberikan sample\$1role3 ke sample\$1role1.

```
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\$1role1.

```
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\$1role3 dalam ketergantungan melingkar ke sample\$1role2.

```
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
```