Setelah menambahkan pengguna ke proyek MaxCompute, berikan izin yang diperlukan agar pengguna dapat melakukan operasi. MaxCompute mendukung dua pendekatan otorisasi: menetapkan role tingkat proyek kepada pengguna atau memberikan izin secara langsung kepada pengguna.
Prasyarat
Sebelum memulai, pastikan Anda telah menambahkan pengguna ke proyek MaxCompute. Untuk detailnya, lihat Perencanaan dan manajemen pengguna.
Berikan izin dengan menetapkan role
Menetapkan role tingkat proyek merupakan pendekatan yang direkomendasikan. Setelah Anda menetapkan role kepada pengguna, pengguna tersebut mewarisi semua izin dari role tersebut. Hal ini memungkinkan Anda memperbarui atau mencabut izin untuk beberapa pengguna sekaligus hanya dengan mengubah satu role.
Menetapkan role kepada pengguna
Sintaks
grant <role_name> to <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
role_name |
Nama role yang akan ditetapkan. Jalankan list roles; pada MaxCompute client untuk menampilkan daftar role yang tersedia. |
user_name |
Nama pengguna. Pengguna tersebut harus sudah ditambahkan ke proyek. Format yang didukung: Akun Alibaba Cloud (ALIYUN$<account_id>), RAM user (RAM$<account_id>:<RAM user ID>), atau RAM role (` RAM$<account_id>:role/<RAM role name> ). Jalankan list users;` pada MaxCompute client untuk menampilkan daftar anggota proyek. |
Catatan penggunaan
-
Role dapat ditetapkan ke beberapa pengguna.
-
Pengguna dapat memiliki beberapa role.
Contoh
Menetapkan role Worker ke akun Alibaba Cloud, RAM user, dan RAM role:
-- Beralih ke proyek.
use test_project_a;
-- Menetapkan role Worker ke akun Alibaba Cloud.
grant Worker to ALIYUN$5527xxxxxxxx5788;
-- Menetapkan role Worker ke RAM user.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-- Menetapkan role Worker ke RAM role.
grant Worker to `RAM$5527xxxxxxxx5788:role/ram_role`;
Mencabut role dari pengguna
Sintaks
revoke <role_name> from <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
role_name |
Nama role yang akan dicabut. Jalankan list roles; pada MaxCompute client untuk menampilkan daftar role yang tersedia.
|
user_name |
Nama pengguna. Format yang didukung: Akun Alibaba Cloud (ALIYUN$<account_id>), RAM user (RAM$<account_id>:<RAM user ID>), atau RAM role (` RAM$<account_id>:role/<RAM role name> ). Jalankan list users;` pada MaxCompute client untuk menampilkan daftar anggota proyek. |
Catatan penggunaan
-
Mencabut role dari pengguna akan menghapus semua izin yang diwarisi pengguna melalui role tersebut. Pengguna lain yang ditetapkan role yang sama tidak terpengaruh.
Contoh
Mencabut role Worker dari akun Alibaba Cloud, RAM user, dan RAM role:
-- Beralih ke proyek.
use test_project_a;
-- Mencabut role Worker dari akun Alibaba Cloud.
revoke Worker from ALIYUN$5527xxxxxxxx5788;
-- Mencabut role Worker dari RAM user.
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
-- Mencabut role Worker dari RAM role.
revoke Worker from `RAM$5527xxxxxxxx5788:role/ram_role`;
Skenario otorisasi berbasis role umum
| Skenario | Pendekatan |
|---|---|
| Memberikan izin operasi objek kepada pengguna melalui role | Berikan izin kepada role menggunakan Kontrol akses berbasis ACL atau Kontrol akses berbasis kebijakan, lalu tetapkan role tersebut kepada pengguna. |
| Memberikan izin unduh kepada pengguna melalui role | Berikan izin Download kepada role menggunakan kontrol unduh, lalu tetapkan role tersebut kepada pengguna. |
| Memberikan akses ke data sensitif melalui role | Berikan izin label kepada role menggunakan Kontrol akses berbasis label, lalu tetapkan role tersebut kepada pengguna. |
Memberikan izin operasi objek melalui role
Berikan izin kepada role menggunakan Kontrol akses berbasis ACL atau Kontrol akses berbasis kebijakan, lalu tetapkan role tersebut kepada beberapa pengguna.
Untuk detail cara memberikan izin kepada role, lihat Memberikan izin operasi pada objek kepada role.
Contoh
Pemilik proyek (ALIYUN$5527xxxxxxxx5789) perlu memberikan izin kepada RAM user Allen, Alice, dan Tom untuk membuat tabel, model, fungsi, dan instans, serta melihat semua daftar objek di test_project_a:
-- Beralih ke proyek.
use test_project_a;
-- Menambahkan RAM user ke proyek.
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
-- Membuat role.
create role Worker;
-- Memberikan izin kepada role menggunakan Kontrol akses berbasis ACL (Metode 1).
grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker;
-- Memberikan izin kepada role menggunakan Kontrol akses berbasis kebijakan (Metode 2).
grant CreateTable, CreateFunction, CreateInstance, List
on project test_project_a
to ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
-- Menetapkan role kepada ketiga pengguna tersebut.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Mencabut izin operasi objek dari pengguna berbasis role
Tersedia dua pendekatan. Pilih berdasarkan jumlah pengguna yang terdampak:
-
Mencabut izin dari role — semua pengguna yang ditetapkan ke role tersebut langsung kehilangan izin tersebut.
-
Mencabut role dari pengguna tertentu — hanya pengguna tersebut yang kehilangan izin; pengguna lain tidak terpengaruh.
Contoh
Mencabut izin operasi objek dari Allen, Alice, dan Tom (yang memiliki role Worker):
Metode 1: Mencabut izin dari role Worker (mempengaruhi ketiga pengguna):
--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari pengguna Allen.
revoke Label 4 on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Masuk ke proyek test_project_a.
use test_project_a;
--Memberikan izin kepada pengguna Allen.
grant Label 4 on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari Allen.
revoke Download on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Masuk ke proyek test_project_a.
use test_project_a;
--Memberikan izin kepada Allen.
grant Download on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari Tom.
revoke All on instance 202112300224**** from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari Tom.
revoke Read, Write on function udf_test from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari Alice.
revoke Read, Write on resource udtf.jar from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari Allen.
revoke Describe, Select on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut izin dari pengguna Alibaba Cloud.
revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from user ALIYUN$5527xxxxxxxx5788;--Masuk ke proyek test_project_a.
use test_project_a;
--Menambahkan Tom ke proyek test_project_a.
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
--Memberikan izin kepada Tom.
grant All on instance 202112300224**** to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;--Masuk ke proyek test_project_a.
use test_project_a;
--Menambahkan Tom ke proyek test_project_a.
add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
--Memberikan izin kepada Tom.
grant Read, Write on function udf_test to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;--Masuk ke proyek test_project_a.
use test_project_a;
--Menambahkan Alice ke proyek test_project_a.
add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650;
--Memberikan izin kepada Alice.
grant Read, Write on resource udtf.jar to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650;--Masuk ke proyek test_project_a.
use test_project_a;
--Menambahkan Allen ke proyek test_project_a.
add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
--Menambahkan RAM role ke proyek test_project_a.
add user `RAM$5527xxxxxxxx5789:role/ram_role`;
--Memberikan izin kepada RAM user Allen.
grant CreateTable, List on project test_project_a to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
grant Describe, Select on table sale_detail to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
--Memberikan izin kepada RAM role.
grant CreateTable, List on project test_project_a to USER `RAM$5527xxxxxxxx5789:role/ram_role`;
grant Describe, Select on table sale_detail to USER `RAM$5527xxxxxxxx5789:role/ram_role`;--ALIYUN$5527xxxxxxxx5789 masuk ke proyek test_project_a.
use test_project_a;
--Menambahkan ALIYUN$5527xxxxxxxx5788 ke proyek MaxCompute.
add user ALIYUN$5527xxxxxxxx5788;
--ALIYUN$5527xxxxxxxx5789 memberikan izin kepada ALIYUN$5527xxxxxxxx5788.
grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to user ALIYUN$5527xxxxxxxx5788;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut role Worker dari pengguna. Allen kini hanya dapat mengakses data dengan tingkat sensitivitas maksimum 2. Alice dan Tom masih dapat mengakses data dengan tingkat sensitivitas maksimum 4.
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Masuk ke proyek test_project_a.
use test_project_a;
--Membuat role Worker.
create role Worker;
--Memberikan izin kepada role Worker.
grant Label 4 on table <table_name> to ROLE Worker; --table_name adalah nama tabel tujuan.
--Menetapkan role Worker kepada pengguna.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut role Worker dari pengguna. Hanya Allen yang tidak lagi memiliki izin Download.
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;--Bob masuk ke proyek test_project_a.
use test_project_a;
--Bob menambahkan Allen, Alice, dan Tom ke proyek test_project_a.
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
--Bob membuat role Worker.
create role Worker;
--Bob memberikan izin kepada role Worker.
grant download on table sale_detail to ROLE Worker;
--Menetapkan role Worker kepada pengguna.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;--Masuk ke proyek test_project_a.
use test_project_a;
--Mencabut role Worker dari pengguna. Hanya Allen yang tidak lagi memiliki izin CreateTable, CreateFunction, CreateInstance, dan List.
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;-- Beralih ke proyek.
use test_project_a;
-- Mencabut izin berbasis ACL dari role.
revoke CreateTable, CreateModel, CreateFunction, CreateInstance, List on project test_project_a from ROLE Worker;
-- Mencabut izin berbasis kebijakan dari role.
revoke CreateTable, CreateModel, CreateFunction, CreateInstance, List
on project test_project_a
from ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
Metode 2: Mencabut role Worker hanya dari Allen:
-- Beralih ke proyek.
use test_project_a;
-- Mencabut role dari Allen. Alice dan Tom tidak terpengaruh.
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Memberikan izin unduh melalui role
Berikan izin Download kepada role menggunakan mekanisme kontrol unduh, lalu tetapkan role tersebut kepada pengguna.
Untuk detail cara memberikan izin unduh kepada role, lihat Memberikan izin Download kepada role.
Contoh
Berikan izin kepada RAM user Allen, Alice, dan Tom untuk mengunduh data dari tabel tertentu di test_project_a:
-- Beralih ke proyek.
use test_project_a;
-- Menambahkan RAM user ke proyek.
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
-- Membuat role.
create role Worker;
-- Memberikan izin Download role tersebut pada tabel.
grant Download on table sale_detail to ROLE Worker;
-- Menetapkan role kepada ketiga pengguna tersebut.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Mencabut izin unduh dari pengguna berbasis role
Tersedia dua pendekatan:
-
Mencabut izin dari role — semua pengguna yang ditetapkan ke role tersebut kehilangan izin tersebut.
-
Mencabut role dari pengguna tertentu — hanya pengguna tersebut yang kehilangan izin.
Contoh
Metode 1: Mencabut izin Download dari role Worker (mempengaruhi Allen, Alice, dan Tom):
-- Beralih ke proyek.
use test_project_a;
revoke Download on table sale_detail from ROLE Worker;
Metode 2: Mencabut role Worker hanya dari Allen:
-- Beralih ke proyek.
use test_project_a;
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Memberikan akses ke data sensitif melalui role
Berikan akses role ke data berlabel menggunakan Kontrol akses berbasis label atau Kontrol akses berbasis kebijakan, lalu tetapkan role tersebut kepada pengguna.
Untuk detail cara memberikan izin label kepada role, lihat Memberikan izin untuk mengakses data sensitivitas tinggi kepada role.
Contoh
Allen, Alice, dan Tom memiliki tingkat akses data 2. Berikan mereka akses ke data pada tingkat sensitivitas 4 di test_project_a:
-- Beralih ke proyek.
use test_project_a;
-- Membuat role.
create role Worker;
-- Memberikan akses role tersebut ke data tingkat sensitivitas 4.
grant Label 4 on table <table_name> to ROLE Worker;
-- Menetapkan role kepada pengguna.
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
grant Worker to RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Mencabut akses ke data sensitif dari pengguna berbasis role
Tersedia dua pendekatan:
-
Mencabut izin dari role — semua pengguna yang ditetapkan ke role tersebut kehilangan akses.
-
Mencabut role dari pengguna tertentu — hanya pengguna tersebut yang kehilangan akses.
Contoh
Metode 1: Mencabut izin label dari role Worker (Allen, Alice, dan Tom kembali ke tingkat akses 2):
-- Beralih ke proyek.
use test_project_a;
revoke Label on table <table_name> from ROLE Worker;
Metode 2: Mencabut role Worker hanya dari Allen (Alice dan Tom tetap memiliki akses tingkat 4):
-- Beralih ke proyek.
use test_project_a;
revoke Worker from RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Berikan izin secara langsung kepada pengguna
Berikan izin secara langsung kepada pengguna ketika otorisasi berbasis role tidak berlaku.
Setelah pengguna dihapus dari proyek, izin sisa tetap ada. Bersihkan menggunakan perintah purge privs. Untuk detailnya, lihat Membersihkan izin sisa dari pengguna yang dihapus.
Alat berikut mendukung otorisasi langsung:
Memberikan izin operasi objek kepada pengguna
Berikan izin operasi kepada pengguna pada proyek, tabel, model, resource, fungsi, atau instans menggunakan Kontrol akses berbasis ACL.
Untuk hak istimewa yang diperlukan per objek, lihat kolom "Diotorisasi oleh" di Izin pada proyek dan objek dalam proyek.
Semua perintah grant dalam bagian ini memiliki parameter opsional berikut:
Parameter opsional (berlaku untuk semua jenis objek)
| Parameter | Deskripsi | Bawaan |
|---|---|---|
conditions |
Membatasi akses berdasarkan sumber permintaan atau metode akses. Format: "<var_name> <Operation> constant" and .... Untuk nilai yang didukung, lihat Kondisi. |
Tanpa pembatasan kondisi |
expires |
Periode validitas izin dalam hari. Setelah periode ini, MaxCompute secara otomatis menghapus izin tersebut. | Permanen |
Memberikan izin pada proyek
Sintaks
grant Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All
on project <project_name>
to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
project_name |
Nama proyek. Temukan di tab Project management pada Konsol MaxCompute setelah memilih Wilayah. |
user_name |
Pengguna yang akan diberikan izin. Pengguna tersebut harus sudah ditambahkan ke proyek. Format yang didukung: Akun Alibaba Cloud (ALIYUN$<account_id>), RAM user (RAM$<account_id>:<RAM user ID>), atau RAM role (` RAM$<account_id>:role/<RAM role name> `). |
Memberikan izin pada tabel
Sintaks
grant Describe|Select|Alter|Update|Drop|ShowHistory|All
on table <table_name> [(<column_list>)]
to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
table_name |
Nama tabel. Jalankan show tables; pada MaxCompute client untuk menampilkan daftar tabel. |
user_name |
Pengguna yang akan diberikan izin. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Parameter opsional
| Parameter | Deskripsi | Bawaan |
|---|---|---|
column_list |
Satu atau beberapa nama kolom, dipisahkan koma. Tentukan untuk membatasi izin hanya pada kolom tertentu. | Semua kolom |
Memberikan izin pada model
Sintaks
grant Describe|Execute|Alter|Drop|All
on MODEL <model_name>
to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
model_name |
Nama model. Jalankan list models; pada MaxCompute client untuk menampilkan daftar model. |
user_name |
Pengguna yang akan diberikan izin. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Memberikan izin pada resource
Sintaks
grant Read|Write|Delete|All
on resource <resource_name>
to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
resource_name |
Nama resource. Jalankan list resources; pada MaxCompute client untuk menampilkan daftar resource. |
user_name |
Pengguna yang akan diberikan izin. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Memberikan izin pada fungsi
Sintaks
grant Read|Write|Delete|Execute|All
on function <function_name>
to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
function_name |
Nama fungsi. Jalankan list functions; pada MaxCompute client untuk menampilkan daftar fungsi. |
user_name |
Pengguna yang akan diberikan izin. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Memberikan izin pada instans
Sintaks
grant Read|Write|All
on instance <instance_id>
to USER <user_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
instance_id |
ID instans. Jalankan show instances; pada MaxCompute client untuk menampilkan daftar instans. |
user_name |
Pengguna yang akan diberikan izin. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Contoh
Contoh berikut semuanya menggunakan proyek test_project_a, di mana ALIYUN$5527xxxxxxxx5789 adalah pemilik proyek.
Contoh 1: Memberikan izin kepada akun Alibaba Cloud untuk membuat tabel, fungsi, dan instans, serta melihat semua daftar objek dalam proyek:
-- Beralih ke proyek.
use test_project_a;
-- Menambahkan akun Alibaba Cloud ke proyek.
add user ALIYUN$5527xxxxxxxx5788;
-- Memberikan izin tingkat proyek yang diperlukan.
grant CreateTable, CreateFunction, CreateInstance, List on project test_project_a to user ALIYUN$5527xxxxxxxx5788;
Contoh 2: Memberikan izin kepada RAM user dan RAM role untuk membuat tabel dan melihat semua daftar objek dalam proyek, ditambah membaca metadata dan data dari tabel tertentu:
-- Beralih ke proyek.
use test_project_a;
-- Menambahkan RAM user dan RAM role ke proyek.
add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
add user `RAM$5527xxxxxxxx5789:role/ram_role`;
-- Memberikan izin tingkat proyek.
grant CreateTable, List on project test_project_a to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
grant CreateTable, List on project test_project_a to USER `RAM$5527xxxxxxxx5789:role/ram_role`;
-- Memberikan izin tingkat tabel.
grant Describe, Select on table sale_detail to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1649;
grant Describe, Select on table sale_detail to USER `RAM$5527xxxxxxxx5789:role/ram_role`;
Contoh 3: Memberikan akses baca dan tulis kepada RAM user pada resource:
-- Beralih ke proyek.
use test_project_a;
add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650;
grant Read, Write on resource udtf.jar to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1650;
Contoh 4: Memberikan akses baca dan tulis kepada RAM user pada fungsi:
-- Beralih ke proyek.
use test_project_a;
add user RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
grant Read, Write on function udf_test to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
Contoh 5: Memberikan semua izin kepada RAM user pada instans:
-- Beralih ke proyek.
use test_project_a;
add user RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
grant All on instance 202112300224**** to USER RAM$5527xxxxxxxx5789:2763xxxxxxxxxx1651;
Mencabut izin operasi objek dari pengguna
Mencabut izin operasi pengguna pada proyek, tabel, model, resource, fungsi, atau instans.
Untuk hak istimewa yang diperlukan per objek, lihat kolom "Diotorisasi oleh" di Izin pada proyek dan objek dalam proyek.
Mencabut izin pada proyek
Sintaks
revoke Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All
on project <project_name>
from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
project_name |
Nama proyek. Temukan di tab Project management pada Konsol MaxCompute setelah memilih Wilayah. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud (ALIYUN$<account_id>), RAM user (RAM$<account_id>:<RAM user ID>), atau RAM role (` RAM$<account_id>:role/<RAM role name> `). |
Mencabut izin pada tabel
Sintaks
revoke Describe|Select|Alter|Update|Drop|ShowHistory|All
on table <table_name> [(<column_list>)]
from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
table_name |
Nama tabel. Jalankan show tables; pada MaxCompute client untuk menampilkan daftar tabel. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Mencabut izin pada model
Sintaks
revoke Describe|Execute|Alter|Drop|All
on MODEL <model_name>
from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
model_name |
Nama model. Jalankan list models; pada MaxCompute client untuk menampilkan daftar model. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Mencabut izin pada resource
Sintaks
revoke Read|Write|Delete|All
on resource <resource_name>
from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
resource_name |
Nama resource. Jalankan list resources; pada MaxCompute client untuk menampilkan daftar resource. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Mencabut izin pada fungsi
Sintaks
revoke Read|Write|Delete|Execute|All
on function <function_name>
from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
function_name |
Nama fungsi. Jalankan list functions; pada MaxCompute client untuk menampilkan daftar fungsi. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Mencabut izin pada instans
Sintaks
revoke Read|Write|All
on instance <instance_id>
from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
instance_id |
ID instans. Jalankan show instances; pada MaxCompute client untuk menampilkan daftar instans. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Contoh
Contoh 1: Mencabut izin akun Alibaba Cloud untuk membuat tabel, fungsi, dan instans serta melihat semua daftar objek dalam proyek:
use test_project_a;
revoke CreateTable, CreateFunction, CreateInstance, List on project test_project_a from user ALIYUN$5527xxxxxxxx5788;
Contoh 2: Mencabut akses baca dan metadata RAM user pada tabel:
use test_project_a;
revoke Describe, Select on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Contoh 3: Mencabut akses baca dan tulis RAM user pada resource:
use test_project_a;
revoke Read, Write on resource udtf.jar from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1650;
Contoh 4: Mencabut akses baca dan tulis RAM user pada fungsi:
use test_project_a;
revoke Read, Write on function udf_test from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Contoh 5: Mencabut semua izin pada instans dari RAM user:
use test_project_a;
revoke All on instance 202112300224**** from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1651;
Memberikan izin Download kepada pengguna
Kontrol unduh harus diaktifkan untuk proyek sebelum memberikan izin unduh.
Sintaks
grant Download on {Table|Resource|Function|Instance} <object_name> to USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
object_name |
Nama objek. Jalankan show tables;, list resources;, list functions;, atau show instances; pada MaxCompute client untuk menemukan nama tersebut. |
user_name |
Pengguna yang akan diberikan izin. Format yang didukung: Akun Alibaba Cloud (ALIYUN$<account_id>), RAM user (RAM$<account_id>:<RAM user ID>), atau RAM role (` RAM$<account_id>:role/<RAM role name> `). |
Contoh
Berikan izin kepada RAM user untuk mengunduh data dari tabel tertentu (kontrol unduh harus diaktifkan untuk proyek):
use test_project_a;
grant Download on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Mencabut izin Download dari pengguna
Sintaks
revoke Download on {Table|Resource|Function|Instance} <object_name> from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
object_name |
Nama objek. Jalankan show tables;, list resources;, list functions;, atau show instances; pada MaxCompute client untuk menemukan nama tersebut. |
user_name |
Pengguna yang akan dicabut izinnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Contoh
use test_project_a;
revoke Download on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Memberikan akses ke data sensitif kepada pengguna
Berikan akses pengguna ke data berlabel menggunakan Kontrol akses berbasis label.
Sintaks
grant Label <number> on table <table_name> [(<column_list>)] to USER <user_name> [with exp <days>];
Parameter wajib
| Parameter | Deskripsi |
|---|---|
number |
Tingkat sensitivitas tertinggi yang dapat diakses pengguna. Nilai valid: 0–9. |
table_name |
Nama tabel atau tampilan. Jalankan show tables; pada MaxCompute client untuk menampilkan daftar tabel. |
user_name |
Pengguna yang akan diberikan akses. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Parameter opsional
| Parameter | Deskripsi | Bawaan |
|---|---|---|
column_list |
Satu atau beberapa nama kolom, dipisahkan koma. Tentukan untuk membatasi akses hanya pada kolom tertentu. | Semua kolom |
days |
Periode validitas izin dalam hari. Nilai valid: 0–2<sup>63</sup>–1. | 180 hari |
Contoh
RAM user Allen memiliki tingkat akses data 2. Berikan Allen akses ke data pada tingkat sensitivitas 4 di tabel sale_detail:
use test_project_a;
grant Label 4 on table sale_detail to USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Mencabut akses ke data sensitif dari pengguna
Sintaks
revoke Label <number> on table <table_name> [(<column_list>)] from USER <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
number |
Tingkat sensitivitas yang akan dicabut. Nilai valid: 0–9. |
table_name |
Nama tabel atau tampilan. |
user_name |
Pengguna yang akan dicabut aksesnya. Format yang didukung: Akun Alibaba Cloud, RAM user, atau RAM role. |
Parameter opsional
| Parameter | Deskripsi | Bawaan |
|---|---|---|
column_list |
Satu atau beberapa nama kolom, dipisahkan koma. Tentukan untuk mencabut akses hanya pada kolom tertentu. | Semua kolom |
Contoh
Mencabut akses Allen ke data tingkat sensitivitas 4 di tabel sale_detail:
use test_project_a;
revoke Label 4 on table sale_detail from USER RAM$5527xxxxxxxx5788:2763xxxxxxxxxx1649;
Membersihkan izin sisa dari pengguna yang dihapus
Ketika pengguna dihapus dari proyek, izin berbasis ACL, berbasis label, dan berbasis kebijakan mereka tetap ada di proyek. Jika pengguna tersebut ditambahkan kembali nanti, mereka akan mendapatkan kembali izin tersebut — yang dapat menimbulkan risiko keamanan data jika pengguna ditambahkan kembali dengan role yang berbeda dari yang dimaksudkan.
Pemilik proyek, atau pengguna yang ditetapkan role Admin atau Super_Administrator, dapat membersihkan semua izin sisa untuk pengguna yang dihapus tersebut.
Sintaks
purge privs from user <user_name>;
Parameter wajib
| Parameter | Deskripsi |
|---|---|
user_name |
Nama pengguna yang dihapus yang izinnya akan dibersihkan. Format yang didukung: Akun Alibaba Cloud (ALIYUN$<account_id>), RAM user (RAM$<account_id>:<RAM user ID>), atau RAM role (` RAM$<account_id>:role/<RAM role name> `). |
Menjalankanpurge privspada pengguna yang masih ada di proyek akan mengembalikan error"Principal <username> still exist in the project". Pertama-tama jalankanremove user <user_name>untuk menghapus pengguna, lalu jalankanpurge privs.
Langkah selanjutnya
Setelah memberikan izin, verifikasi izin apa saja yang dimiliki pengguna. Untuk detailnya, lihat Memeriksa izin.