Tüm Ürünler
Search
Belge Merkezi

MaxCompute:Grant permissions on federated external tables

Son Güncelleme:Oct 04, 2026

Birleşik Harici Tablolarda İzin Verme

Harici bir şemanın oluşturucusu bu şemanın sahibi olur. Diğer RAM kullanıcılarına harici bir şema veya içindeki tablolar için izin atamak üzere bu konuyu kullanın.

Önemli

MaxCompute, Lakehouse modunda veri kaynağı meta verilerini kalıcı olarak saklamaz. Erişim ilkeleri izinleri veri kaynağı adına göre eşleştirir. Bir veri kaynağını yeniden adlandırırsanız daha önce verilen tüm izinler geçersiz hale gelir. Yeniden adlandırmadan önce eski izinleri REVOKE komutuyla iptal edin veya erişim ilkesini silin. Bu adımı atlarsanız özgün adla oluşturulan yeni bir veri kaynağı eski izinleri devralabilir ve harici bir projedeki orijinal RAM kullanıcısına istenmeyen erişim sağlayabilir.

Önemli

Bir proje için Kiracı Tabanlı Nesne Yetkilendirmesi etkinleştirildiyse Harici Şema oluşturmadan önce projeyi bir harici veri kaynağına bağlayın. Aksi takdirde Harici Şema oluşturulurken hata oluşur.

Bu konudaki tüm örneklerde test_lakehouse_project projesi kullanılır.

İzin Referansı

Aşağıdaki tabloda her bir Harici Şema işlemi için gereken izinler gösterilir. Her bölümde açıklandığı gibi GRANT komutunu kullanarak izinleri atayın.


İşlem


Nesne Düzeyi


Gerekli İzinler


Harici Şema Oluşturma


Proje


CreateSchema; yabancı sunucu üzerinde Usage (yalnızca Kiracı Tabanlı Nesne Yetkilendirmesi etkinleştirildiğinde gereklidir)


Tüm Harici Şemaları Listeleme


Proje


CreateInstance, List


Harici Şemayı Açıklama


Şema


Describe


Harici Şema Özelliklerini Değiştirme


—


Desteklenmiyor


Harici Şemayı Silme


Şema


Drop


Harici Şemayı Kullanma (üç katmanlı model)


—


Gerekli değil


Harici Şemayı Kullanma (iki katmanlı modelden yükseltildi)


Şema


Describe


Harici Şemadaki Tabloları Listeleme


Şema


List


Harici Şemadaki Bir Tabloyu Sorgulama


Tablo


Select


Harici Şema Tablosundan Veri Aktarma


Tablo + Proje


Tablo üzerinde Select; proje üzerinde CreateTable, CreateInstance

Harici Şema Oluşturma

Gerekli izinler: Proje üzerinde CreateSchema. Kiracı Tabanlı Nesne Yetkilendirmesi etkinleştirildiyse yabancı sunucu üzerinde ayrıca Usage izni gerekir.

  1. Geçerli projeyi ayarlayın ve CreateSchema iznini atayın.

    -- Set the current project.
    use test_lakehouse_project;
    
    -- Grant the CreateSchema permission on the project to a RAM user.
    GRANT CreateSchema ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. (İsteğe bağlı) Kiracı Tabanlı Nesne Yetkilendirmesi etkinleştirildiyse ve projeye bir harici veri kaynağı bağladıysanız RAM kullanıcısına yabancı sunucuyu kullanma izni verin.

    -- Add the RAM account provider to the current project.
    ADD accountprovider ram;
    
    -- Add a RAM user.
    ADD USER `RAM$xxx@test.aliyunid.com:test_user`;
    
    -- Create a project role.
    CREATE role test_lakhouse_role;
    
    -- Add an access policy to the role to allow usage of the external data source.
    put policy D:\bin\allow.policy ON role test_lakhouse_role;
    
    -- Grant the role to the RAM user.
    GRANT role test_lakhouse_role TO `RAM$xxx@test.aliyunid.com:test_user`;

    allow.policy dosyası aşağıdaki içeriği içermelidir:

    {
      "Version": "1",
      "Statement": [{
        "Action": "odps:Usage",
        "Effect": "Allow",
        "Resource": ["acs:odps:*:servers/fs_hive"]
      }]
    }
  3. Harici Şemayı oluşturun.

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

Tüm Harici Şemaları Listeleme

Gerekli izinler: Proje üzerinde CreateInstance ve List.

  1. Proje üzerinde CreateInstance iznini atayın.

    GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. Proje üzerinde List iznini atayın.

    GRANT List ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  3. Tüm şemaları listeleyin.

    SHOW schemas;

Harici Şemayı Açıklama

Gerekli izinler: Şema üzerinde Describe.

  1. Şema üzerinde Describe iznini atayın.

    GRANT DESCRIBE ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. Harici Şemayı açıklayın.

    DESC SCHEMA es_hive3;

Harici Şema Özelliklerini Değiştirme

Harici Şema özelliklerinin değiştirilmesi desteklenmez.

Harici Şemayı Silme

Gerekli izinler: Şema üzerinde Drop.

  1. Şema üzerinde Drop iznini atayın.

    GRANT DROP ON SCHEMA es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. Harici Şemayı silin.

    DROP SCHEMA es_hive3;

Harici Şemayı Kullanma

Gerekli izin projenin nasıl oluşturulduğuna bağlıdır:

  • Üç katmanlı model (yerel): İzin gerekmez.

  • İki katmanlı modelden üç katmanlı modele yükseltildi: Şema üzerinde Describe izni gerekir.

Geçerli şemayı Harici Şema olarak ayarlayın.

USE SCHEMA es_hive3;

Proje iki katmanlı modelden yükseltildiyse USE SCHEMA komutunu çalıştırmadan önce Describe iznini atayın.

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

Harici Şemadaki Tabloları Listeleme

Gerekli izinler: Şema üzerinde List.

  1. Şema üzerinde List iznini atayın.

    GRANT List ON schema es_hive3 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. Harici Şemadaki tabloları listeleyin.

    SHOW tables IN es_hive3;

Harici Şemadaki Bir Tabloyu Sorgulama

Gerekli izinler: Tablo üzerinde Select.

  1. Tablo üzerinde Select iznini atayın.

    GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. Tabloyu sorgulayın.

    SELECT * FROM es_hive3.t1;

Harici Şema Tablosundan Veri Aktarma

Gerekli izinler: Kaynak tablo üzerinde Select; proje üzerinde CreateTable ve CreateInstance.

  1. Proje üzerinde CreateTable iznini atayın.

    GRANT CreateTable ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  2. Proje üzerinde CreateInstance iznini atayın.

    GRANT CreateInstance ON project test_lakehouse_project TO USER RAM$xxx@test.aliyunid.com:test_user;
  3. Kaynak tablo üzerinde Select iznini atayın.

    GRANT SELECT ON TABLE es_hive3.t1 TO USER RAM$xxx@test.aliyunid.com:test_user;
  4. Harici Şema tablosundaki verileri yeni bir yönetilen tabloya aktarın.

    CREATE TABLE default.t1_copy_ram3 AS SELECT * FROM t1;