全部产品
Search
文档中心

Hologres:MEMBUAT PEMETAAN PENGGUNA

更新时间:Jul 06, 2025

Di Hologres V3.0 dan versi lebih baru, Anda dapat mengonfigurasi pemetaan antara Peran RAM dan akun pada instance Hologres. Pemetaan ini memungkinkan pengguna untuk mengakses sistem eksternal dengan mengasumsikan peran RAM. Saat ini, metode ini hanya mendukung akses ke Data Lake Formation (DLF) 2.0 dan instance Hologres lainnya. Topik ini menjelaskan penggunaan dan batasan dari pernyataan MEMBUAT PEMETAAN PENGGUNA.

Informasi latar belakang

Anda dapat mengeksekusi pernyataan MEMBUAT PEMETAAN PENGGUNA untuk membuat pemetaan antara pengguna logon Hologres (termasuk pengguna BASIC) dan akun Alibaba Cloud dari layanan eksternal. Ini memungkinkan pengguna untuk mengakses layanan seperti MaxCompute, DLF, Object Storage Service (OSS), atau database Hologres lainnya. Untuk informasi lebih lanjut, lihat MEMBUAT PEMETAAN PENGGUNA.

Batasan

  • Hanya superuser dari instance Hologres atau pemilik server asing yang dapat memberikan izin terkait kepada pengguna biasa. Pengguna dengan izin PENGGUNAAN pada server asing dapat membuat pemetaan pengguna untuk diri mereka sendiri.

  • Pemetaan pengguna tidak dapat dibuat untuk Peran RAM yang digunakan untuk mengakses data di MaxCompute atau DLF 1.0.

Sintaksis

Konfigurasi untuk database eksternal

Sumber data MaxCompute

  • Sintaksis

    CREATE USER MAPPING FOR "<user_name>"
    EXTERNAL DATABASE <ext_db_name>
    OPTIONS
    (
        access_id '<Access_id>',
        access_key '<Access_key>'
    );
  • Parameter

    Parameter

    Deskripsi

    user_name

    Akun yang ingin Anda berikan izin, seperti pengguna RAM, akun internal Hologres (pengguna BASIC), atau akun publik. Akun publik tersedia untuk semua pengguna dan harus digunakan dengan hati-hati.

    Access_id

    ID AccessKey dari akun yang digunakan untuk masuk ke Hologres. Anda dapat masuk ke Konsol Resource Access Management (RAM) untuk mendapatkan ID AccessKey.

    Access_key

    Rahasia AccessKey dari akun yang digunakan untuk masuk ke Hologres.

Sumber data DLF

  • Sintaksis

    CREATE USER MAPPING FOR "<user_name>"
    EXTERNAL DATABASE <ext_db_name>
    OPTIONS
    (
        -- Untuk DLF1.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx',
        oss_access_id 'LTxxxxxxxxxx',
        oss_access_key 'y8xxxxxxxxxxxxx'] 
    
        -- Untuk DLF2.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx'] | 
        [rolearn 'RoleARN']
    );
    Catatan

    Kebijakan hologram::GrantAssumeRole harus dikonfigurasi di konsol RAM untuk mengizinkan pengguna membuat pemetaan pengguna untuk Nama Sumber Daya Alibaba Cloud (ARN) dari peran RAM. Hologres memeriksa apakah pengguna memiliki izin untuk membuat pemetaan pengguna untuk ARN dari peran RAM berdasarkan kebijakan ini. Pengguna yang berwenang dapat membuat pemetaan pengguna antara ARN tertentu dari peran RAM dan pengguna mana pun pada instance Hologres. Contoh:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "hologram:GrantAssumeRole",
          "Resource": "<Role_ARN>"
        }
      ]
    }
  • Parameter

    Parameter

    Deskripsi

    user_name

    Akun yang ingin Anda berikan izin, seperti pengguna RAM, akun internal Hologres (pengguna BASIC), atau akun publik. Akun publik tersedia untuk semua pengguna dan harus digunakan dengan hati-hati.

    ext_db_name

    Database eksternal yang dibuat di Hologres dengan mengeksekusi pernyataan MEMBUAT DATABASE EKSTERNAL. Database eksternal digunakan untuk memuat metadata sumber data eksternal ke Hologres. Untuk informasi lebih lanjut, lihat MEMBUAT DATABASE EKSTERNAL.

    access_id

    ID AccessKey dari akun yang digunakan untuk masuk ke Hologres. Anda dapat masuk ke Konsol RAM untuk mendapatkan ID AccessKey.

    access_key

    Rahasia AccessKey dari akun yang digunakan untuk masuk ke Hologres.

    dlf_access_id

    ID AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada DLF.

    dlf_access_key

    Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada DLF.

    oss_access_id

    ID AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada Object Storage Service (OSS).

    oss_access_key

    Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada OSS.

    rolearn

    ARN dari peran RAM, yang merupakan pengenal sumber daya unik global dari peran RAM. Sebuah ARN dalam format acs:ram::<account-id>:role/<role-name>. <role-name> adalah nama peran RAM dalam huruf kecil. Untuk informasi lebih lanjut tentang cara melihat ARN dari peran RAM, lihat Lihat informasi tentang peran RAM.

Permintaan pemetaan pengguna yang dikonfigurasi dari database eksternal

SELECT
    datname,
    usename,
    eumoptions
FROM
    pg_holo_external_user_mappings;

Konfigurasi untuk server asing

Sumber data MaxCompute

  • Sintaksis

    CREATE USER MAPPING FOR "<user_name>"
    SERVER odps_server  -- Server tetap.
    OPTIONS
    (  
       access_id '<access_id>', 
       access_key '<access_key>'
    );
  • Parameter

    Parameter

    Deskripsi

    user_name

    Akun yang ingin Anda berikan izin, seperti pengguna RAM, akun internal Hologres (pengguna BASIC), atau akun publik. Akun publik tersedia untuk semua pengguna dan harus digunakan dengan hati-hati.

    access_id

    ID AccessKey dari akun yang digunakan untuk masuk ke Hologres. Anda dapat masuk ke Konsol RAM untuk mendapatkan ID AccessKey.

    access_key

    Rahasia AccessKey dari akun yang digunakan untuk masuk ke Hologres.

Sumber data DLF

  • Sintaksis

    CREATE USER MAPPING FOR "<user_name>"
    SERVER <server_name>
    OPTIONS
    (
        -- Untuk DLF1.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx',
        oss_access_id 'LTxxxxxxxxxx',
        oss_access_key 'y8xxxxxxxxxxxxx'] 
    
        -- Untuk DLF2.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx'] | 
        [rolearn 'RoleARN']
    );
  • Parameter

    Parameter

    Deskripsi

    user_name

    Akun yang ingin Anda berikan izin, seperti pengguna RAM, akun internal Hologres (pengguna BASIC), atau akun publik. Akun publik tersedia untuk semua pengguna dan harus digunakan dengan hati-hati.

    server_name

    Nama server asing. Untuk sumber data MaxCompute, nilainya tetap sebagai odps_server. Untuk sumber data lainnya, Anda dapat menentukan nilai kustom. Untuk informasi lebih lanjut, lihat Buat server asing.

    access_id

    ID AccessKey dari akun yang digunakan untuk masuk ke Hologres. Anda dapat masuk ke Konsol RAM untuk mendapatkan ID AccessKey.

    access_key

    Rahasia AccessKey dari akun yang digunakan untuk masuk ke Hologres.

    dlf_access_id

    ID AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada DLF.

    dlf_access_key

    Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada DLF.

    oss_access_id

    ID AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada OSS.

    oss_access_key

    Rahasia AccessKey dari akun Alibaba Cloud atau pengguna RAM yang memiliki izin baca dan tulis pada OSS.

    rolearn

    ARN dari peran RAM, yang merupakan pengenal sumber daya unik global dari peran RAM. Sebuah ARN dalam format acs:ram::<account-id>:role/<role-name>. <role-name> adalah nama peran RAM dalam huruf kecil. Untuk informasi lebih lanjut tentang cara melihat ARN dari peran RAM, lihat Lihat informasi tentang peran RAM.

Sumber data Hologres

  • Sintaksis

    CREATE USER MAPPING FOR "<user_name>"
    SERVER <server_name>
    OPTIONS (
      access_id '<access_id>', 
      access_key '<access_key>'
    );
  • Parameter

    Parameter

    Deskripsi

    user_name

    Akun yang ingin Anda berikan izin, seperti pengguna RAM, akun internal Hologres (pengguna BASIC), atau akun publik. Akun publik tersedia untuk semua pengguna dan harus digunakan dengan hati-hati.

    server_name

    Nama server yang dibuat untuk menerapkan kueri data lintas database di Hologres. Untuk informasi lebih lanjut, lihat Kueri data lintas database (beta).

    access_id

    ID AccessKey dari akun yang digunakan untuk masuk ke Hologres. Anda dapat masuk ke Konsol RAM untuk mendapatkan ID AccessKey.

    access_key

    Rahasia AccessKey dari akun yang digunakan untuk masuk ke Hologres.

Permintaan pemetaan pengguna yang dikonfigurasi dari database internal

SELECT
    um.srvname AS "Server",
    um.usename AS "Nama Pengguna"
FROM
    pg_catalog.pg_user_mappings um
WHERE
    um.srvname != 'query_log_store_server'
ORDER BY 1, 2;

Contoh

Database eksternal (direkomendasikan)

  1. Buat database eksternal di instance Hologres untuk memetakan katalog Apache Paimon di DLF 2.0. Hanya pengguna dengan izin superuser pada instance atau pemilik database eksternal yang dapat mengakses database tersebut.

    CREATE EXTERNAL DATABASE ext_db_dlf
    WITH 
      metastore_type 'dlf-paimon' 
      catalog_type 'paimon' 
      dlf_region 'cn-hangzhou' 
      dlf_endpoint 'dlfnext-share.cn-hangzhou.aliyuncs.com' 
      dlf_catalog 'clg-paimon-d241aee***********'; 
  2. Buat Peran RAM di Konsol RAM dan eksekusi pernyataan MEMBUAT PEMETAAN PENGGUNA di Hologres untuk membuat pemetaan antara Peran RAM dan pengguna RAM.

    1. Buat Peran RAM dan lampirkan kebijakan ke peran tersebut.

      1. Masuk ke Konsol RAM. Di panel navigasi kiri, pilih Identitas > Roles. Di halaman yang muncul, klik Create Role. Pilih Alibaba Cloud Service untuk Pilih Entitas Tepercaya dan Normal Service Role untuk Jenis Peran, konfigurasikan parameter Nama Peran RAM, dan pilih Hologres dari daftar drop-down Select Trusted Service. Lalu, klik OK.

      2. Di halaman Policies, klik Create Policy. Pada tab JSON, konfigurasikan kebijakan untuk pemeriksaan izin di Hologres dan DLF.

        Contoh kode untuk Hologres:

        {
            "Version": "1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": "hologram:GrantAssumeRole",
                    "Resource": "acs:ram::xxx:role/testramrole"
                }
            ]
        }

        Contoh kode untuk DLF:

        {
            "Version": "1",
            "Statement": [
                {
                    "Action": "dlf:CheckPermissions",
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
      3. Di halaman Roles, pilih Peran RAM dan klik Grant Permission untuk melampirkan kebijakan ke Peran RAM.

        role2222

    2. Eksekusi pernyataan MEMBUAT PEMETAAN PENGGUNA di Hologres untuk membuat pemetaan antara pengguna RAM dan Peran RAM. Dengan cara ini, pengguna RAM mendapatkan izin pada database ext_db_dlf.

      CREATE USER MAPPING FOR "p4_203535926287167253"
      EXTERNAL DATABASE ext_db_dlf
      OPTIONS
      (
          rolearn 'acs:ram::xxx:role/testramrole'
      );
  3. Masuk ke Konsol Hologres sebagai pengguna RAM dan gunakan editor SQL untuk mengkueri data.

    SELECT * FROM ext_db_dlf.dlf_db.paimon_table;

Server asing

Bagian ini menjelaskan cara memberikan izin pada tabel asing MaxCompute ke akun BASIC Hologres.

  1. Buat akun BASIC di Hologres.

    CREATE USER basicuser;
  2. Berikan izin akses pada odps_server ke akun BASIC.

    CREATE USER MAPPING
    FOR "basicuser"
    SERVER odps_server
    OPTIONS
    (
        access_id 'LTxxxxxxxxxx',
        access_key 'y8xxxxxxxxxxxxx'
    );