All Products
Search
Document Center

MaxCompute:Kontrol izin unduh

Last Updated:Mar 27, 2026

Kontrol unduh memungkinkan Anda mengelola siapa yang dapat mengekspor data dari proyek MaxCompute melalui perintah Tunnel. Tanpa fitur ini, setiap pengguna dan role dalam proyek dapat mengunduh tabel atau instans apa pun secara bebas, sehingga berisiko menyebabkan kebocoran data. Setelah fitur ini diaktifkan, hanya pengguna atau role yang memiliki izin unduh eksplisit yang dapat mengekspor data.

Cara kerja

Secara default, kontrol unduh dinonaktifkan untuk proyek baru. Setelah diaktifkan di tingkat proyek, semua operasi unduh berbasis Tunnel akan dibatasi oleh izin eksplisit.

Tabel berikut menunjukkan objek yang mendukung izin unduh beserta cara otorisasinya:

Jenis objekNilai yang validDukungan wildcard
TableNama tabel atau viewHanya berbasis role (*)
InstanceNama instans (sama dengan ID instans)Tidak mendukung wildcard

Tersedia dua model otorisasi:

ModelCara kerjaPaling cocok untuk
Otorisasi pengguna tunggalMemberikan izin unduh langsung kepada satu pengguna pada tabel atau instans tertentuAkses terarah untuk pengguna individu
Otorisasi berbasis roleMemberikan izin unduh kepada suatu role, lalu menetapkan role tersebut ke beberapa penggunaMengelola akses untuk kelompok; mendukung pola wildcard (*) dalam nama objek

Batasan dan catatan penggunaan

Batasan:

  • Otorisasi hanya berlaku untuk subjek (pengguna atau role) dan objek yang sudah ada. Anda tidak dapat memberikan otorisasi sebelumnya untuk subjek atau objek yang belum ada.

  • Saat memberikan izin langsung kepada pengguna, wildcard (*) tidak didukung dalam nama objek. Pembatasan ini bertujuan mencegah pemberian akses luas yang tidak disengaja—gunakan otorisasi berbasis role jika Anda memerlukan pola wildcard.

Catatan penggunaan:

Mengaktifkan kontrol unduh

Izin yang diperlukan: Pemilik proyek atau role Super_Administrator.

Jalankan perintah berikut di tingkat proyek:

setproject odps.security.enabledownloadprivilege=true;

Untuk menonaktifkan kontrol unduh:

setproject odps.security.enabledownloadprivilege=false;

Memberikan dan mencabut izin unduh

Izin yang diperlukan: Untuk memberikan atau mencabut izin pada suatu objek, lihat kolom Authorized by di Izin.

Jalankan semua perintah pada client MaxCompute, MaxCompute Studio, atau Konsol DataWorks.

    Alur kerja

    Untuk otorisasi berbasis pengguna tunggal maupun berbasis role, ikuti langkah-langkah berikut:

    1. Pastikan pengguna atau role tersebut merupakan anggota proyek. Jalankan list users; atau list roles; pada client MaxCompute untuk memverifikasi keberadaannya. Untuk menambahkan pengguna atau role, lihat Perencanaan dan manajemen pengguna atau Perencanaan role.

    2. Pastikan nama tabel atau instans yang ingin dikendalikan. Jalankan show tables; atau show instances; untuk menampilkan daftar objek yang tersedia.

    3. Jalankan perintah grant atau revoke.

    4. Verifikasi hasilnya dengan show grants atau describe role.

    Sintaksis

    Memberikan izin unduh:

    grant Download on <object_type> <object_name> to <subject_type> <subject_name>;

    Mencabut izin unduh:

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

    Parameter

    ParameterWajibDeskripsi
    object_typeYaJenis objek. Nilai yang valid: Table, Instance. Satu jenis objek per perintah.
    object_nameYaNama tabel, view, atau instans. Untuk otorisasi berbasis role, wildcard didukung—misalnya, table taobao* cocok dengan semua tabel yang namanya diawali dengan taobao. Jalankan show tables; atau show instances; untuk mendapatkan nama.
    subject_typeYaJenis subjek. Nilai yang valid: USER (Akun Alibaba Cloud atau RAM user), ROLE (suatu role).
    subject_nameYaNama pengguna atau role. Satu subjek per perintah. Gunakan ALIYUN$<account> untuk Akun Alibaba Cloud dan RAM$<account>:<username> untuk RAM user. Jalankan list users; atau list roles; untuk mendapatkan nama.

    Contoh

    Contoh berikut menggunakan konfigurasi berikut: username@example.com memiliki test_project_a. Allen, Tom, dan Alice adalah RAM user di bawah akun tersebut. Kontrol unduh telah diaktifkan untuk proyek ini.

    Contoh 1: Memberikan izin unduh kepada RAM user

    Tambahkan Allen sebagai anggota proyek dan berikan izin unduh pada tabel sale_detail:

    -- Beralih ke proyek.
    use test_project_a;
    -- Tambahkan Allen sebagai anggota proyek.
    add user RAM$username@example.com:Allen;
    -- Berikan izin unduh Allen pada sale_detail.
    grant Download on table sale_detail to USER RAM$username@example.com:Allen;
    -- Verifikasi izin Allen.
    show grants for RAM$username@example.com:Allen;

    Output yang diharapkan:

    Authorization Type: ACL
    [user/RAM$username@example.com:Allen]
    A       projects/test_project_a/tables/sale_detail: Download

    Contoh 2: Mencabut izin unduh dari RAM user

    Mencabut izin yang diberikan pada Contoh 1:

    -- Beralih ke proyek.
    use test_project_a;
    -- Cabut izin unduh Allen.
    revoke Download on table sale_detail from USER RAM$username@example.com:Allen;
    -- Verifikasi bahwa izin telah dihapus.
    show grants for RAM$username@example.com:Allen;

    Contoh 3: Memberikan izin unduh kepada beberapa pengguna melalui role

    Berikan Alice dan Tom izin unduh pada semua tabel yang namanya diawali dengan tb_:

    -- Beralih ke proyek.
    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 role.
    create role Worker;
    -- Tetapkan role tersebut kepada Alice dan Tom.
    grant Worker TO RAM$username@example.com:Alice;
    grant Worker TO RAM$username@example.com:Tom;
    -- Berikan role Worker izin unduh pada semua tabel tb_*.
    grant Download on table tb_* to ROLE Worker;
    -- Verifikasi izin role tersebut.
    describe role Worker;

    Output yang diharapkan:

    Authorization Type: Policy
    [role/worker]
    A       projects/test_project_a/tables/tb_*: Download

    Contoh 4: Mencabut izin unduh berbasis role

    Mencabut izin yang diberikan pada Contoh 3 dari Alice dan Tom:

    -- Beralih ke proyek.
    use test_project_a;
    -- Hapus role Worker dari Alice dan Tom.
    revoke Worker from RAM$username@example.com:Alice;
    revoke Worker from RAM$username@example.com:Tom;
    -- Verifikasi bahwa izin Alice tidak lagi mencakup akses unduh.
    show grants for RAM$username@example.com:Alice;

    Langkah selanjutnya