All Products
Search
Document Center

Hologres:BUAT PEMETAAN PENGGUNA

Last Updated:Jun 21, 2026

Hologres V3.0 dan versi yang lebih baru mendukung pemetaan role RAM ke akun dalam suatu instans. Fitur ini memungkinkan akun login untuk mengasumsikan role RAM guna mengakses sistem eksternal lintas akun. Saat ini, Anda hanya dapat menggunakan role RAM untuk mengakses sumber data DLF 2.5 dan instans Hologres lainnya. Topik ini menjelaskan penggunaan dan kondisi perintah CREATE USER MAPPING.

Informasi latar belakang

Pemetaan pengguna mendefinisikan hubungan antara pengguna login Hologres dan Akun Alibaba Cloud. Pemetaan ini memungkinkan pengguna Hologres—termasuk pengguna BASIC—untuk mengakses layanan eksternal lintas akun, seperti MaxCompute, DLF, OSS, dan kueri lintas database di Hologres. Untuk informasi selengkapnya, lihat PostgreSQL CREATE USER MAPPING.

Batasan

  • Untuk memberikan izin kepada pengguna biasa, Anda harus memiliki izin SuperUser pada instans Hologres atau izin Owner pada foreign server. Pengguna dengan izin Foreign Server Usage juga dapat membuat pemetaan pengguna untuk dirinya sendiri.

  • Sumber data MaxCompute dan DLF 1.0 tidak mendukung konfigurasi pemetaan pengguna dengan role RAM.

Deskripsi 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>'
    );
  • Deskripsi parameter

    Nama Parameter

    Deskripsi

    user_name

    Akun yang akan diberikan izin. Ini bisa berupa RAM user lain, akun internal Hologres (akun BASIC), atau public untuk akses publik ke semua pengguna. Gunakan public dengan hati-hati.

    Access_id

    ID AccessKey dari akun saat ini. Untuk mendapatkan ID AccessKey, buka Konsol Resource Access Management (RAM).

    Access_key

    Rahasia AccessKey dari akun saat ini.

Sumber data DLF

  • Sintaksis

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

    Saat Anda menggunakan RoleARN untuk mengonfigurasi pemetaan pengguna, Anda harus mengonfigurasi kebijakan akses hologram::GrantAssumeRole di RAM. Hologres menggunakan kebijakan ini untuk memeriksa apakah pengguna saat ini memiliki izin untuk membuat pemetaan pengguna ke RoleARN yang ditentukan. Pengguna dengan izin tersebut dapat membuat pemetaan pengguna ke RoleARN tersebut untuk pengguna mana pun di Hologres. Contoh kebijakan sebagai berikut:

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

    Nama parameter

    Deskripsi

    user_name

    Akun yang akan diberikan izin. Ini bisa berupa RAM user lain, akun internal Hologres (akun BASIC), atau public untuk akses publik ke semua pengguna. Gunakan public dengan hati-hati.

    ext_db_name

    Database eksternal yang dibuat di instans Hologres menggunakan CREATE EXTERNAL DATABASE. Database ini digunakan untuk memuat metadata dari sumber data eksternal ke Hologres. Untuk informasi selengkapnya, lihat CREATE EXTERNAL DATABASE.

    access_id

    ID AccessKey dari akun saat ini. Untuk mendapatkan ID AccessKey, buka Konsol Resource Access Management (RAM).

    access_key

    Rahasia AccessKey dari akun saat ini.

    dlf_access_id

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

    dlf_access_key

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

    oss_access_id

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

    oss_access_key

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

    rolearn

    Nama Sumber Daya Alibaba Cloud (ARN) dari role tersebut. ARN merupakan Deskriptor Sumber Daya Global untuk role dan digunakan untuk menentukan role. Formatnya adalah acs:ram::<account-id>:role/<role-name>. Bagian <role-name> diubah menjadi huruf kecil. Untuk informasi cara melihat ARN suatu role, lihat View a RAM role.

Kueri pemetaan pengguna yang telah dikonfigurasi untuk database eksternal

SELECT
    datname,
    usename,
    eumoptions
FROM
    pg_holo_external_user_mappings;

Konfigurasi untuk foreign server

Sumber data MaxCompute

  • Sintaksis

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

    Nama parameter

    Deskripsi

    user_name

    Akun yang akan diberikan izin. Ini bisa berupa RAM user lain, akun internal Hologres (akun BASIC), atau public untuk akses publik ke semua pengguna. Gunakan public dengan hati-hati.

    access_id

    ID AccessKey dari akun saat ini. Untuk mendapatkan ID AccessKey, buka Konsol Resource Access Management (RAM).

    access_key

    Rahasia AccessKey dari akun saat ini.

Sumber data DLF

  • Sintaksis

    CREATE USER MAPPING FOR "<user_name>"
    SERVER <server_name>
    OPTIONS
    (
        -- Untuk DLF 1.0
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx',
        oss_access_id 'LTxxxxxxxxxx',
        oss_access_key 'y8xxxxxxxxxxxxx'] 
        -- Untuk DLF 2.5
        [dlf_access_id 'LTxxxxxxxxxx',
        dlf_access_key 'y8xxxxxxxxxxxxx'] | 
        [rolearn 'RoleARN']
    );
  • Deskripsi parameter

    Nama parameter

    Deskripsi

    user_name

    Akun yang akan diberikan izin. Ini bisa berupa RAM user lain, akun internal Hologres (akun BASIC), atau public untuk akses publik ke semua pengguna. Gunakan public dengan hati-hati.

    server_name

    Nama foreign server. Ini adalah nama kustom yang Anda tetapkan pada langkah sebelumnya. Untuk sumber data MaxCompute, server-nya adalah server bawaan tetap odps_server. Untuk informasi selengkapnya, lihat Create a foreign server.

    access_id

    ID AccessKey dari akun saat ini. Untuk mendapatkan ID AccessKey, buka Konsol Resource Access Management (RAM).

    access_key

    Rahasia AccessKey dari akun saat ini.

    dlf_access_id

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

    dlf_access_key

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

    oss_access_id

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

    oss_access_key

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

    rolearn

    Nama Sumber Daya Alibaba Cloud (ARN) dari role tersebut. ARN merupakan Deskriptor Sumber Daya Global untuk role dan digunakan untuk menentukan role. Formatnya adalah acs:ram::<account-id>:role/<role-name>. Bagian <role-name> diubah menjadi huruf kecil. Untuk informasi cara melihat ARN suatu role, lihat View a RAM role.

Sumber data Hologres

  • Sintaksis

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

    Nama Parameter

    Deskripsi

    user_name

    Akun yang akan diberikan izin. Ini bisa berupa RAM user lain, akun internal Hologres (akun BASIC), atau public untuk akses publik ke semua pengguna. Gunakan public dengan hati-hati.

    server_name

    Server yang dibuat di Hologres untuk melakukan kueri lintas database. Untuk informasi selengkapnya, lihat Cross-database queries (Beta).

    access_id

    ID AccessKey dari akun saat ini. Untuk mendapatkan ID AccessKey, buka Konsol Resource Access Management (RAM).

    access_key

    Rahasia AccessKey dari akun saat ini.

Kueri pemetaan pengguna yang telah dikonfigurasi untuk database internal

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

Contoh penggunaan

Database eksternal (Direkomendasikan)

  1. Contoh ini menggunakan sumber data DLF 2.5. Pertama, buat database eksternal untuk mengaitkan dengan katalog Paimon di DLF.

    CREATE EXTERNAL DATABASE ext_db_dlf
    WITH 
      metastore_type 'dlf-rest' 
      catalog_type 'paimon' 
      dlf_catalog 'paimon_catalog'; 
  2. Setelah database eksternal dibuat, hanya Superuser instans dan DB Owner yang dapat mengaksesnya. Akun lain tidak dapat mengaksesnya. Anda kemudian dapat memberikan izin kepada RAM user dengan membuat role RAM di Konsol Resource Access Management (RAM) dan menjalankan perintah CREATE USER MAPPING di Hologres.

    1. Buat role dan konfigurasikan kebijakan di RAM.

      1. Login ke Konsol RAM dan klik Role > Create Role. Pilih Alibaba Cloud Service sebagai tipe entitas tepercaya, pilih Service Role sebagai tipe role, masukkan nama role, atur Select Trusted Service ke Interactive Analytics, lalu klik Complete.

      2. Buka halaman Permission Model. Klik Create Policy > Script Editor. Buat kebijakan terpisah untuk pemeriksaan izin yang diperlukan oleh Hologres dan DLF. Kebijakan tersebut sebagai berikut.

        Kebijakan pemeriksaan izin yang diperlukan oleh Hologres.

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

        Kebijakan pemeriksaan izin yang diperlukan oleh DLF.

        {
            "Version": "1",
            "Statement": [
                {
                    "Action": "dlf:CheckPermissions",
                    "Resource": "*",
                    "Effect": "Allow"
                }
            ]
        }
      3. Buka halaman Role. Klik Grant Permission. Tambahkan dua kebijakan yang telah Anda buat.

    2. Di Hologres, jalankan perintah CREATE USER MAPPING untuk memberikan izin RAM user pada database ext_db_dlf.

      CREATE USER MAPPING FOR "p4_203535926287167253"
      EXTERNAL DATABASE ext_db_dlf
      OPTIONS
      (
          rolearn 'acs:ram::xxx:role/testramrole'
      );
  3. Login ke Konsol Hologres sebagai RAM user dan jalankan kueri di editor SQL.

    SELECT * FROM ext_db_dlf.dlf_db.paimon_table;

Foreign server

Contoh ini menggunakan sumber data MaxCompute dan menunjukkan cara memberikan izin kepada akun BASIC Hologres untuk mengakses tabel eksternal MaxCompute.

  1. Buat akun BASIC di Hologres.

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

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