全部产品
Search
文档中心

MaxCompute:Kontrol Unduhan

更新时间:Jul 02, 2025

MaxCompute menyediakan fitur kontrol unduhan yang memungkinkan Anda mengelola izin pengguna atau peran untuk mengunduh tabel atau instans menggunakan perintah Tunnel. Fitur ini meningkatkan keamanan data proyek dan mencegah kebocoran data. Topik ini menjelaskan perintah yang digunakan untuk kontrol unduhan di MaxCompute serta memberikan contoh cara menggunakannya.

Informasi latar belakang

Anda dapat menjalankan perintah Tunnel untuk mengunduh tabel atau instans dalam Proyek MaxCompute. Namun, operasi unduhan dapat menyebabkan kebocoran data. Untuk mencegah hal tersebut, Anda harus mengontrol izin unduhan.

Setelah membuat Proyek MaxCompute, fitur kontrol unduhan dinonaktifkan secara default. Semua pengguna atau peran dalam proyek dapat mengunduh semua tabel dan instans. Pemilik proyek atau pengguna dengan peran Super_Administrator dapat menjalankan perintah setproject odps.security.enabledownloadprivilege=true|false; pada tingkat proyek untuk mengaktifkan atau menonaktifkan fitur kontrol unduhan.

Tabel berikut menjelaskan skenario di mana fitur kontrol unduhan cocok digunakan.

Skenario

Deskripsi

Diberi otorisasi oleh

Platform operasi

Otorisasi pengguna tunggal

Memberikan izin kepada satu pengguna untuk mengunduh tabel atau instans tertentu.

Lihat kolom Diberi otorisasi oleh dalam Izin.

Otorisasi berbasis peran

Memberikan izin kepada satu peran untuk mengunduh tabel atau instans tertentu dan menetapkan peran tersebut kepada beberapa pengguna. Dengan cara ini, pengguna diberikan izin unduhan.

Prasyarat

Sebelum menggunakan fitur kontrol unduhan, pastikan informasi berikut telah diperoleh:

  • Akun pengguna atau nama peran yang ingin diberi izin telah diperoleh. Peran atau akun ditambahkan ke Proyek MaxCompute. Jika akun pengguna adalah Akun Alibaba Cloud, catat dalam format ALIYUN$<account_id>. Jika akun pengguna adalah Pengguna RAM, catat dalam format RAM$<account_id>:<ID Pengguna RAM>. Jika akun pengguna adalah Peran RAM, catat dalam format `RAM$<account_id>:role/<Nama Peran RAM>`.

    Anda dapat menjalankan perintah list users; atau list roles; pada Klien MaxCompute untuk menanyakan nama akun atau peran.

    Jika ingin menambahkan pengguna atau peran, lihat Perencanaan dan Manajemen Pengguna atau Perencanaan Peran.

  • Jenis dan nama objek.

    Anda dapat mengeksekusi pernyataan show tables;, list resources;, list functions;, atau show instances; pada Klien MaxCompute untuk mendapatkan nama tabel (tampilan) atau instans.

Batasan

Sebelum menggunakan fitur kontrol unduhan, perhatikan batasan berikut:

  • Hanya subjek dan objek yang ada yang mendukung otorisasi untuk kontrol unduhan.

  • Saat memberikan izin unduhan kepada pengguna, karakter wildcard (*) tidak dapat digunakan untuk menentukan objek. Jika perlu menggunakan karakter wildcard (*), lakukan otorisasi berbasis peran.

Perhatian

Sebelum menggunakan fitur kontrol unduhan, perhatikan poin-poin berikut:

  • Jika objek dihapus, MaxCompute secara otomatis mencabut semua izin unduhan yang diberikan pada objek tersebut.

  • Setelah pengguna dihapus, izin yang diberikan kepada pengguna tetap ada. Jika pengguna ditambahkan kembali ke proyek, izin akses historis akan diaktifkan kembali. Untuk informasi lebih lanjut tentang cara membersihkan informasi izin residu dari pengguna yang dihapus, lihat Hapus Sepenuhnya Informasi Izin Residu dari Pengguna yang Dihapus.

Sintaksis

  • Sintaksis untuk perintah yang digunakan untuk memberikan izin unduhan

    grant Download on <object_type> <object_name> to <subject_type> <subject_name>;
  • Sintaksis untuk perintah yang digunakan untuk mencabut izin unduhan

    revoke Download on <object_type> <object_name> from <subject_type> <subject_name>;

Tabel berikut menjelaskan parameter yang digunakan dalam perintah kontrol unduhan.

Parameter

Wajib

Deskripsi

object_type

Ya

Jenis objek. Anda hanya dapat menentukan satu jenis objek untuk satu operasi otorisasi.

Nilai valid:

  • Tabel

  • Instans

object_name

Ya

Nama objek. Anda dapat memperoleh nama objek dengan menggunakan salah satu metode berikut:

  • Nama tabel atau tampilan: Anda dapat menjalankan perintah show tables; pada Klien MaxCompute untuk mendapatkan nama tabel atau tampilan.

  • Nama instans: Anda dapat menjalankan perintah show instances; pada Klien MaxCompute untuk mendapatkan ID instans. Nama instans sama dengan ID instans di MaxCompute.

Jika Anda memberikan izin unduhan kepada peran, Anda dapat menggunakan karakter wildcard (*) untuk menentukan objek. Misalnya, table taobao* menunjukkan semua tabel yang namanya dimulai dengan taobao.

subject_type

Ya

Jenis subjek. Nilai valid:

  • USER: Akun Alibaba Cloud atau Pengguna RAM.

  • ROLE: Peran.

subject_name

Ya

Nama subjek. Anda hanya dapat menentukan satu pengguna atau peran untuk satu operasi otorisasi.

Anda dapat menjalankan perintah list users; atau list roles; pada Klien MaxCompute untuk menanyakan nama akun atau peran.

Contoh

Pada contoh-contoh berikut, username@example.com adalah pemilik proyek test_project_a. Allen, Tom, dan Alice adalah Pengguna RAM yang termasuk dalam akun username@example.com. Fitur kontrol unduhan diaktifkan untuk proyek test_project_a. Semua operasi otorisasi dilakukan pada Klien MaxCompute.

  • Contoh 1: Memberikan izin unduhan kepada Pengguna RAM.

    Tambahkan Allen ke proyek test_project_a dan berikan izin untuk mengunduh data dari tabel sale_detail. Contoh perintah:

    -- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com.
    use test_project_a;
    -- Tambahkan Allen sebagai anggota proyek.
    add user RAM$username@example.com:Allen;
    -- Berikan Allen izin untuk mengunduh data dari tabel sale_detail di proyek test_project_a.
    grant Download on table sale_detail to USER RAM$username@example.com:Allen;
    -- Tanyakan izin Allen.
    show grants for RAM$username@example.com:Allen;
    -- Hasil berikut dikembalikan. Hasil menunjukkan bahwa Allen memiliki izin unduhan.
    Authorization Type: ACL
    [user/RAM$username@example.com:Allen]
    A       projects/test_project_a/tables/sale_detail: Download
  • Contoh 2: Mencabut izin unduhan dari Pengguna RAM.

    Mencabut izin unduhan yang diberikan pada Contoh 1 dari Allen.

    -- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com.
    use test_project_a;
    -- Mencabut izin unduhan dari Allen.
    revoke Download on table sale_detail from USER RAM$username@example.com:Allen;
    -- Tanyakan izin Allen. Izin Allen tidak termasuk izin unduhan.
    show grants for RAM$username@example.com:Allen;
  • Contoh 3: Memberikan izin unduhan kepada beberapa Pengguna RAM berdasarkan peran.

    Berikan Alice dan Tom izin untuk mengunduh data dari tabel yang namanya dimulai dengan tb_ di proyek test_project_a. Contoh perintah:

    -- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com.
    use test_project_a;
    -- Tambahkan Alice dan Tom sebagai anggota proyek.
    add user RAM$username@example.com:Alice;
    add user RAM$username@example.com:Tom;
    -- Buat peran bernama Worker.
    create role Worker;
    -- Tetapkan peran Worker kepada Alice dan Tom.
    grant Worker TO RAM$username@example.com:Alice;
    grant Worker TO RAM$username@example.com:Tom;
    -- Berikan peran Worker izin untuk mengunduh tabel yang namanya dimulai dengan tb_ di proyek test_project_a.
    grant Download on table tb_* to ROLE Worker;
    -- Tanyakan izin Alice.
    describe role Worker;
    -- Hasil berikut dikembalikan. A menunjukkan bahwa izin unduhan diberikan kepada Alice.
    Authorization Type: Policy
    [role/worker]
    A       projects/test_project_a/tables/tb_*: Download
  • Contoh 4: Mencabut izin unduhan yang diberikan berdasarkan peran dari beberapa Pengguna RAM.

    Mencabut izin unduhan yang diberikan berdasarkan peran Worker pada Contoh 3 dari Alice dan Tom.

    -- Masuk ke proyek test_project_a menggunakan Akun Alibaba Cloud Bob@aliyun.com.
    use test_project_a;
    -- Mencabut peran Worker dari Alice dan Tom.
    revoke Worker from RAM$username@example.com:Alice;
    revoke Worker from RAM$username@example.com:Tom;
    -- Tanyakan izin Alice. Izin Allen tidak termasuk izin unduhan.
    show grants for RAM$username@example.com:Alice;

Langkah selanjutnya

Setelah memahami fitur kontrol unduhan, Anda dapat melakukan operasi berikut sesuai kebutuhan bisnis: