All Products
Search
Document Center

MaxCompute:Berikan izin pada tabel eksternal federasi

Last Updated:Mar 25, 2026

Berikan izin pada tabel eksternal federasi

Pembuat skema eksternal menjadi pemiliknya. Topik ini menjelaskan cara memberikan izin pada skema atau tabel-tabelnya kepada pengguna lain.

Penting
  • Karena MaxCompute tidak menyimpan metadata sumber data dalam mode lakehouse secara persisten, kebijakan izin mengelola akses berdasarkan nama objek sumber data. Jika nama objek sumber data diubah, izin terkait menjadi tidak valid. Anda harus mencabut izin tersebut dengan menggunakan perintah REVOKE atau dengan menghapus kebijakan izin. Jika kebijakan lama tidak dihapus, objek baru dengan nama yang sama mungkin mewarisi izin tersebut, sehingga memberikan akses yang tidak disengaja kepada pengguna atas objek baru tersebut.

  • Jika otorisasi objek tingkat penyewa diaktifkan untuk proyek, Anda harus memasang proyek saat ini ke sumber data eksternal sebelum membuat skema eksternal. Jika tidak, operasi akan gagal.

Asumsikan proyek yang digunakan untuk mengelola skema eksternal bernama test_lakehouse_project.

Buat skema eksternal

  • Izin yang diperlukan

    • Izin CreateSchema pada proyek.

    • Jika kontrol akses resource penyewa tingkat proyek diaktifkan, Anda memerlukan izin Usage pada server asing.

  • Prosedur

    1. Tentukan proyek saat ini dan berikan izin CreateSchema.

      -- Setel proyek saat ini.
      use test_lakehouse_project;
      
      -- Berikan izin CreateSchema pada proyek kepada RAM user.
      GRANT CreateSchema ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
    2. (Opsional) Jika kontrol akses resource penyewa tingkat proyek diaktifkan dan Anda telah memasang sumber data eksternal ke proyek saat ini, berikan izin kepada pengguna dalam proyek tersebut.

      -- Tambahkan sistem akun RAM ke proyek saat ini.
      ADD accountprovider ram;
      
      -- Tambahkan RAM user.
      ADD USER `RAM$xxx@test.aliyunid.com:test_user`;
      
      -- Buat role proyek.
      CREATE role test_lakhouse_role;
      
      -- Lampirkan kebijakan izin ke role proyek untuk mengizinkan penggunaan sumber data eksternal.
      put policy /path/to/allow.policy ON role test_lakhouse_role;
      
      -- Berikan role proyek kepada RAM user.
      GRANT role test_lakhouse_role TO `RAM$xxx@test.aliyunid.com:test_user`;

      File allow.policy berisi:

      {
        "Version": "1",
        "Statement": [{
          "Action": "odps:Usage",
          "Effect": "Allow",
          "Resource": ["acs:odps:*:servers/fs_hive"]
        }]
      }
    3. Buat skema eksternal.

      CREATE EXTERNAL SCHEMA IF NOT EXISTS es_hive3
      with fs_hive
      ON 'default' ;

Daftar semua skema eksternal

  • Izin yang diperlukan

    Izin CreateInstance dan List pada proyek.

  • Prosedur

    1. Berikan izin CreateInstance pada proyek kepada RAM user.

      GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
    2. Berikan izin List pada proyek kepada RAM user.

      GRANT List ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
    3. Daftar semua skema.

      SHOW schemas;

Deskripsikan skema eksternal

  • Izin yang diperlukan

    Anda memerlukan izin Describe pada skema.

  • Prosedur

    1. Berikan izin Describe pada skema kepada RAM user.

      GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
    2. Deskripsikan skema eksternal.

      DESC SCHEMA es_hive3;

Ubah properti skema eksternal

Saat ini Anda tidak dapat mengubah properti skema eksternal.

Hapus skema eksternal

  • Izin yang diperlukan

    Anda memerlukan izin Drop pada skema.

  • Prosedur

    1. Berikan izin Drop pada skema kepada RAM user.

      GRANT DROP ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
    2. Hapus skema eksternal.

      DROP SCHEMA es_hive3;

Gunakan skema eksternal

  • Izin yang diperlukan

    • Tidak diperlukan izin khusus untuk proyek model tiga tingkat standar.

    • Jika proyek ditingkatkan dari model dua tingkat ke model tiga tingkat, Anda memerlukan izin Describe pada skema.

  • Prosedur

    • Tentukan skema eksternal yang akan digunakan.

      USE SCHEMA es_hive3;
    • Jika proyek ditingkatkan dari model dua tingkat ke model tiga tingkat, Anda harus memberikan izin Describe pada skema yang ditentukan.

      GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;

Daftar tabel dalam skema eksternal

  • Izin yang diperlukan

    Anda memerlukan izin List pada skema.

  • Prosedur

    1. Berikan izin List pada skema kepada RAM user.

    GRANT List ON schema es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
    1. Daftar tabel dalam skema eksternal.

    SHOW tables IN es_hive3;

Kueri tabel dalam skema eksternal

  • Izin yang diperlukan

    Anda memerlukan izin Select pada tabel.

  • Prosedur

    1. Berikan izin Select pada tabel tertentu dalam skema kepada RAM user.

      GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
    2. Kueri tabel dalam skema eksternal.

      SELECT * FROM es_hive3.t1;

Impor data dari tabel eksternal

  • Izin yang diperlukan

    • Anda memerlukan izin Select pada tabel eksternal.

    • Anda memerlukan izin CreateTable dan CreateInstance pada proyek.

  • Prosedur

    1. Berikan izin CreateTable pada proyek kepada RAM user.

      GRANT CreateTable ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
    2. Berikan izin CreateInstance pada proyek kepada RAM user.

      GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
    3. Berikan izin Select pada tabel.

      GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
    4. Impor data dari tabel eksternal ke tabel internal baru.

      CREATE TABLE default.t1_copy_ram3 AS SELECT * FROM t1;