全部产品
Search
文档中心

MaxCompute:Otorisasi peran tingkat proyek

更新时间:Nov 10, 2025

Jika ingin memberikan izin yang sama kepada beberapa pengguna dalam proyek MaxCompute, Anda dapat membuat peran, memberikan izin kepada peran tersebut, lalu menyambungkan peran tersebut ke pengguna. Pengguna tersebut kemudian mewarisi izin dari peran tersebut. Topik ini menjelaskan sintaks otorisasi peran tingkat proyek dan menyediakan contoh.

Skenario otorisasi peran

MaxCompute mendukung skenario otorisasi peran yang dijelaskan dalam tabel berikut. Setelah memberikan izin kepada suatu peran, Anda dapat menyambungkan peran tersebut ke pengguna. Jika suatu pengguna tidak lagi memerlukan izin tersebut, Anda dapat memutuskan peran tersebut dari pengguna.

Skenario otorisasi peran

Metode otorisasi

Pemberi Otorisasi

Entri otorisasi

Memberikan izin operasi pada objek kepada peran

Untuk informasi selengkapnya, lihat kolom Pemberi otorisasi yang didukung dalam topik Izin.

Mencabut izin operasi pada objek dari peran

Berikan izin Unduh kepada peran

Kontrol izin unduh

Cabut izin Unduh dari peran

Memberikan izin untuk mengakses data sensitivitas tinggi kepada peran

Pengendalian akses berbasis label

Mencabut izin untuk mengakses data sensitivitas tinggi dari peran

Memberikan izin operasi pada objek kepada peran

Anda dapat memberikan izin operasi pada proyek, tabel, model, sumber daya, fungsi, atau instans kepada peran.

  • Format perintah

    • Berikan izin operasi pada proyek kepada peran

      • Otorisasi ACL

        GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Otorisasi kebijakan menggunakan sintaks ACL

        GRANT Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Memberikan izin operasi pada table kepada peran

      • Otorisasi ACL

        GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Otorisasi kebijakan menggunakan sintaks ACL

        GRANT Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Memberikan izin operasi pada model kepada peran

      • Otorisasi ACL

        GRANT Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Otorisasi kebijakan menggunakan sintaks ACL

        GRANT Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name> 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Memberikan izin operasi pada sumber daya kepada suatu peran

      • Otorisasi ACL

        GRANT Read|Write|Delete|All 
              ON resource <resource_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Otorisasi kebijakan menggunakan sintaks ACL

        GRANT Read|Write|Delete|All 
              ON resource <resource_name> 
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Memberikan izin operasi pada function kepada peran

      • Otorisasi ACL

        GRANT Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Otorisasi kebijakan menggunakan sintaks ACL

        GRANT Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name>  
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
    • Memberikan izin operasi pada instance kepada peran

      • Otorisasi ACL

        GRANT Read|Write|All 
              ON instance <instance_id> 
              TO ROLE <role_name> [privilegeproperties("conditions" = "<conditions>", "expires"="<days>")];
      • Otorisasi kebijakan menggunakan sintaks ACL

        GRANT Read|Write|All  
              ON instance <instance_id>   
              TO ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}"[, "conditions"= "<conditions>", "expires"="<days>"]);
  • Parameter

    Untuk informasi lebih lanjut tentang parameter, lihat Pengendalian Akses Berbasis ACL atau Pengendalian Akses Berbasis Kebijakan.

  • Contoh

    Asumsikan bahwa `Bob@aliyun.com` adalah pemilik proyek `test_project_a` dan sebuah peran bernama `Worker` dibuat dalam proyek tersebut. Contoh berikut menunjukkan cara memberikan izin kepada peran `Worker`.

    • Contoh 1: Memberikan peran izin untuk membuat tabel, fungsi, dan instans, serta melihat daftar semua objek dalam project.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Memberikan izin menggunakan ACL.
      GRANT CreateTable, CreateFunction, CreateInstance, List on project test_project_a to ROLE Worker;
      -- Memberikan izin menggunakan sintaks ACL untuk otorisasi kebijakan.
      GRANT CreateTable, CreateFunction, CreateInstance, List 
            ON project test_project_a  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 2: Memberikan peran izin untuk membaca metadata dan data table.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Memberikan izin menggunakan ACL.
      GRANT Describe, Select ON TABLE sale_detail TO ROLE Worker;
      -- Memberikan izin menggunakan sintaks ACL untuk otorisasi kebijakan.
      GRANT Describe, Select  
            ON TABLE sale_detail   
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 3: Memberikan peran semua izin pada model.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Memberikan izin menggunakan ACL.
      GRANT All ON MODEL my_model TO ROLE Worker;
      -- Memberikan izin menggunakan sintaks ACL untuk otorisasi kebijakan.
      GRANT All  
            ON MODEL my_model  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 4: Memberikan peran izin untuk membaca dan memperbarui resource.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Memberikan izin menggunakan ACL.
      GRANT Read, Write ON resource udtf.jar TO ROLE Worker;
      -- Memberikan izin menggunakan sintaks ACL untuk otorisasi kebijakan.
      GRANT Read, Write   
            ON resource udtf.jar  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 5: Memberikan peran izin untuk membaca dan memperbarui function.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Memberikan izin menggunakan ACL.
      GRANT Read, Write ON FUNCTION udf_test TO ROLE Worker;
      -- Memberikan izin menggunakan sintaks ACL untuk otorisasi kebijakan.
      GRANT Read, Write   
            ON FUNCTION udf_test  
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 6: Memberikan peran semua izin operasi pada instance.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Memberikan izin menggunakan ACL.
      GRANT All ON instance 202112300224**** TO ROLE Worker;
      -- Memberikan izin menggunakan sintaks ACL untuk otorisasi kebijakan.
      GRANT All    
            ON instance 202112300224****   
            TO ROLE Worker privilegeproperties("policy" = "true", "allow"="true");

Mencabut izin operasi pada objek dari peran

Anda dapat mencabut izin operasi pada proyek, tabel, model, sumber daya, fungsi, atau instans dari peran.

  • Format perintah

    • Mencabut izin operasi pada project dari peran

      • Mencabut izin yang diberikan menggunakan ACL

        REVOKE Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              FROM ROLE <role_name>;
      • Mencabut izin yang diberikan menggunakan otorisasi kebijakan

        REVOKE Read|Write|List|CreateTable|CreateInstance|CreateFunction|CreateResource|All 
              ON project <project_name> 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Mencabut izin operasi pada table dari peran

      • Mencabut izin yang diberikan menggunakan ACL

        REVOKE Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              FROM ROLE <role_name>;
      • Mencabut izin yang diberikan menggunakan otorisasi kebijakan

        REVOKE Describe|Select|Alter|Update|Drop|ShowHistory|All 
              ON TABLE <table_name> [(<column_list>)] 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Mencabut izin operasi pada model dari peran

      • Mencabut izin yang diberikan menggunakan ACL

        REVOKE Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name>
              FROM ROLE <role_name>;
      • Mencabut izin yang diberikan menggunakan otorisasi kebijakan

        REVOKE Describe|Execute|Alter|Drop|All 
              ON MODEL <model_name> 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Mencabut izin operasi pada resource dari peran

      • Mencabut izin yang diberikan menggunakan ACL

        REVOKE Read|Write|Delete|All 
              ON resource <resource_name> 
              FROM ROLE <role_name>;
      • Mencabut izin yang diberikan menggunakan otorisasi kebijakan

        REVOKE Read|Write|Delete|All 
              ON resource <resource_name> 
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Mencabut izin operasi pada function dari peran

      • Mencabut izin yang diberikan menggunakan ACL

        REVOKE Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name> 
              FROM ROLE <role_name>;
      • Mencabut izin yang diberikan menggunakan otorisasi kebijakan

        REVOKE Read|Write|Delete|Execute|All 
              ON FUNCTION <function_name>  
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
    • Mencabut izin operasi pada instance dari peran

      • Mencabut izin yang diberikan menggunakan ACL

        REVOKE Read|Write|All 
              ON instance <instance_id> 
              FROM ROLE <role_name>;
      • Mencabut izin yang diberikan menggunakan otorisasi kebijakan

        REVOKE Read|Write|All  
              ON instance <instance_id>   
              FROM ROLE <role_name> privilegeproperties("policy" = "true", "{allow}"="{true|false}");
  • Parameter

    Untuk informasi lebih lanjut tentang parameter, lihat Pengendalian Akses Berbasis ACL atau Pengendalian Akses Berbasis Kebijakan.

  • Contoh

    Contoh berikut menunjukkan cara mencabut izin dari peran `Worker`.

    • Contoh 1: Mencabut izin untuk membuat tabel, fungsi, dan instans, serta melihat daftar semua objek dalam project dari peran `Worker`.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Mencabut izin yang diberikan menggunakan ACL.
      REVOKE CreateTable, CreateFunction, CreateInstance, List ON project test_project_a FROM ROLE Worker;
      -- Mencabut izin yang diberikan menggunakan otorisasi kebijakan.
      REVOKE CreateTable, CreateFunction, CreateInstance, List 
            ON project test_project_a  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 2: Mencabut izin untuk membaca metadata dan data table dari peran `Worker`.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Mencabut izin yang diberikan menggunakan ACL.
      REVOKE Describe, Select ON TABLE sale_detail TO ROLE Worker;
      -- Mencabut izin yang diberikan menggunakan otorisasi kebijakan.
      REVOKE Describe, Select  
            ON TABLE sale_detail   
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 3: Mencabut semua izin pada model dari peran `Worker`.

      -- Bob masuk ke proyek test_project_a.
      use test_project_a;
      -- Mencabut izin yang diberikan menggunakan ACL.
      REVOKE All ON MODEL my_model FROM ROLE Worker;
      -- Mencabut izin yang diberikan menggunakan otorisasi kebijakan.
      REVOKE All  
            ON MODEL my_model  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 4: Mencabut izin untuk membaca dan memperbarui resource dari peran `Worker`.

      -- Bob masuk ke proyek test_project_a.
      USE test_project_a;
      -- Mencabut izin yang diberikan menggunakan ACL.
      REVOKE Read, Write ON resource udtf.jar FROM ROLE Worker;
      -- Mencabut izin yang diberikan menggunakan otorisasi kebijakan.
      REVOKE Read, Write   
            ON resource udtf.jar  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 5: Mencabut izin untuk membaca dan memperbarui function dari peran `Worker`.

      -- Bob masuk ke proyek test_project_a.
      USE test_project_a;
      -- Mencabut izin yang diberikan menggunakan ACL.
      REVOKE Read, Write ON FUNCTION udf_test FROM ROLE Worker;
      -- Mencabut izin yang diberikan menggunakan otorisasi kebijakan.
      REVOKE Read, Write   
            ON FUNCTION udf_test  
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");
    • Contoh 6: Mencabut semua izin operasi pada instance dari peran `Worker`.

      -- Bob masuk ke proyek test_project_a.
      USE test_project_a;
      -- Mencabut izin yang diberikan menggunakan ACL.
      REVOKE All ON instance 202112300224**** FROM ROLE Worker;
      -- Mencabut izin yang diberikan menggunakan otorisasi kebijakan.
      REVOKE All    
            ON instance 202112300224****   
            FROM ROLE Worker privilegeproperties("policy" = "true", "allow"="true");

Berikan izin Unduh kepada peran

Anda dapat memberikan peran izin untuk mengunduh data dari tabel, sumber daya, fungsi, atau instans.

  • Format perintah

    GRANT Download ON {Table|Resource|Function|Instance} <object_name> TO ROLE <role_name>;
  • Parameter

    Untuk informasi lebih lanjut tentang parameter, lihat Pengendalian Izin Unduh.

  • Contoh

    Asumsikan kontrol izin unduh diaktifkan untuk proyek `test_project_a`. Contoh berikut menunjukkan cara memberikan peran `Worker` izin untuk mengunduh data dari tabel tertentu.

    -- Bob masuk ke proyek test_project_a.
    USE test_project_a;
    -- Bob memberikan izin kepada peran Worker.
    GRANT Download ON TABLE sale_detail TO ROLE Worker;

Cabut izin Unduh dari peran

Anda dapat mencabut izin untuk mengunduh data dari tabel, sumber daya, fungsi, atau instans dari peran.

  • Format perintah

    REVOKE Download ON {Table|Resource|Function|Instance} <object_name> FROM ROLE <role_name>;
  • Parameter

    Untuk informasi lebih lanjut tentang parameter, lihat Pengendalian Izin Unduh.

  • Contoh

    Contoh berikut menunjukkan cara mencabut izin untuk mengunduh data dari tabel tertentu dari peran `Worker`.

    -- Bob masuk ke proyek test_project_a.
    USE test_project_a;
    -- Bob mencabut izin dari peran Worker.
    REVOKE Download ON TABLE sale_detail FROM ROLE Worker;

Memberikan izin untuk mengakses data sensitivitas tinggi kepada peran

Setelah menetapkan label tingkat izin untuk peran, jika peran tersebut perlu mengakses data dengan tingkat sensitivitas yang lebih tinggi, Anda harus memberikan izin yang diperlukan. Untuk informasi selengkapnya tentang cara menetapkan label tingkat izin untuk pengguna atau peran, lihat Menetapkan label tingkat izin untuk pengguna atau peran.

  • Format perintah

    GRANT Label <number> ON TABLE <table_name> [(<column_list>)] TO ROLE <role_name> [WITH exp <days>];
  • Parameter

    Untuk informasi selengkapnya tentang parameter, lihat Otorisasi eksplisit berbasis label.

  • Contoh

    Asumsikan bahwa dalam proyek `test_project_a`, label tingkat izin peran `Worker` adalah 2. Contoh berikut menunjukkan cara memberikan peran ini izin untuk mengakses data dengan tingkat sensitivitas maksimum 4 dalam tabel `sale_detail`.

    -- Bob masuk ke proyek test_project_a.
    USE test_project_a;
    -- Bob memberikan izin kepada peran Worker.
    GRANT Label 4 ON TABLE sale_detail TO ROLE Worker;

Mencabut izin untuk mengakses data sensitivitas tinggi dari peran

Anda dapat mencabut izin untuk mengakses data sensitivitas tinggi dari peran. Tingkat izin peran itu sendiri tidak terpengaruh.

  • Format perintah

    REVOKE Label ON TABLE <table_name> [(<column_list>)] FROM ROLE <role_name>;
  • Parameter

    Untuk informasi selengkapnya tentang parameter, lihat Mencabut otorisasi eksplisit berbasis label.

  • Contoh

    Contoh berikut menunjukkan cara mencabut izin untuk mengakses data dengan tingkat sensitivitas maksimum 4 dalam tabel `sale_detail` dari peran `Worker`.

    -- Bob masuk ke proyek test_project_a.
    USE test_project_a;
    -- Bob mencabut izin dari peran Worker.
    REVOKE Label ON TABLE sale_detail FROM ROLE Worker;

Menyambungkan peran ke pengguna

Anda dapat menyambungkan peran bawaan atau kustom tingkat proyek ke pengguna. Pengguna tersebut kemudian mewarisi izin dari peran tersebut.

  • Format perintah

    GRANT <role_name> TO <user_name>;
  • Catatan

    Banyak pengguna dapat disambungkan ke peran yang sama, dan satu pengguna dapat disambungkan ke banyak peran.

  • Parameter

    Parameter

    Diperlukan

    Deskripsi

    role_name

    Ya

    Nama peran yang akan disambungkan ke pengguna.

    Anda dapat menjalankan perintah list roles; di Klien MaxCompute untuk melihat informasi peran.

    user_name

    Ya

    Nama pengguna yang akan disambungkan ke peran.

    Anda dapat menjalankan perintah list users; di Klien MaxCompute untuk melihat informasi pengguna.

  • Contoh

    Contoh ini menunjukkan cara menyambungkan peran `Worker` ke pengguna `Ka**@aliyun.com` dan Pengguna RAM `RAM$Bob@aliyun.com:Allen` dalam proyek MaxCompute.

    -- Bob masuk ke proyek test_project_a.
    USE test_project_a;
    -- Bob menyambungkan peran ke pengguna.
    GRANT Worker TO ALIYUN$Ka**@aliyun.com;
    GRANT Worker TO RAM$Bob@aliyun.com:Allen;

Memutuskan peran dari pengguna

Anda dapat memutuskan peran dari pengguna. Pengguna tersebut tidak lagi memiliki izin yang diberikan oleh peran tersebut.

  • Format perintah

    REVOKE <role_name> FROM <user_name>;
  • Parameter

    Parameter

    Diperlukan

    Deskripsi

    role_name

    Ya

    Nama peran yang akan diputuskan dari pengguna.

    Anda dapat menjalankan perintah list roles; di Klien MaxCompute untuk mendapatkan nama peran.

    user_name

    Ya

    Nama pengguna dari mana Anda ingin memutuskan peran.

    Anda dapat menggunakan Klien MaxCompute untuk menjalankan perintah list users; guna mendapatkan nama pengguna.

  • Contoh

    Contoh ini menunjukkan cara memutuskan peran `Worker` dari `Kate@aliyun.com` dan `RAM$Bob@aliyun.com:Allen`.

    -- Bob masuk ke proyek test_project_a.
    USE test_project_a;
    -- Bob memutuskan peran dari pengguna.
    REVOKE Worker FROM ALIYUN$Kate@aliyun.com;
    REVOKE Worker FROM RAM$Bob@aliyun.com:Allen;

Langkah selanjutnya

Setelah memberikan izin kepada peran, Anda dapat melakukan operasi berikut sesuai kebutuhan: