全部产品
Search
文档中心

Hologres:FAQ izin pengembangan

更新时间:Mar 13, 2026

Masalah izin dapat menyebabkan error selama pengembangan Hologres. Topik ini menjelaskan solusi untuk masalah izin umum yang terjadi pada instans Hologres.

FAQ

Bagaimana cara memilih model izin Hologres yang tepat?

Hologres menyediakan model otorisasi PostgreSQL standar, model izin sederhana, dan model izin tingkat skema (SLPM). Topik ini menjelaskan skenario untuk membantu Anda memilih model izin yang paling sesuai.

  • Model otorisasi PostgreSQL standar adalah model izin native PostgreSQL. Jika Anda sudah familiar dengan PostgreSQL dan pengelolaan izinnya, Anda dapat menggunakan model ini tanpa kurva pembelajaran tambahan. Gunakan model ini jika Anda memerlukan pengelolaan izin detail halus di tingkat tabel dan perlu memberikan serta mencabut izin untuk setiap tabel dan pengguna.

  • Model izin sederhana (SPM) adalah model pengelolaan izin tingkat database yang sederhana. Semua pengguna yang perlu mengakses database harus ditambahkan ke kelompok pengguna. Setiap kelompok pengguna memiliki izin akses tertentu untuk objek di skema mana pun dalam database tersebut. Anda dapat menggunakan SPM jika jarang menggunakan skema untuk pengembangan atau hanya menggunakan skema untuk mengklasifikasikan objek tabel seperti folder dan tidak memerlukan isolasi izin tingkat skema.

  • Model izin tingkat skema (SLPM) menyediakan kelompok pengguna developer, writer, dan viewer tersendiri untuk setiap skema. Anda dapat menggunakan SLPM jika sangat bergantung pada isolasi izin pengguna dan tabel tingkat skema.

Error saat beroperasi di instans Hologres: role "RAM$xxx" does not exist

  • Gejala

    Saat Anda melakukan operasi, seperti kueri, di instans setelah terhubung ke tool pengembangan, muncul error `role "RAM$xxx" does not exist`.

  • Penyebab

    Pengguna Resource Access Management (RAM) saat ini belum ditambahkan ke instans.

  • Solusi

    Anda dapat memberikan izin yang diperlukan, seperti Superuser, kepada pengguna RAM saat ini untuk instans tersebut. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Berikan izin pengembangan pada instans kepada pengguna RAM.

Error saat menghubungkan ke instans: password authentication failed for user "xxx"

  • Gejala

    Saat Anda menghubungkan ke instans menggunakan tool pengembangan, muncul error `password authentication failed for user "xxx"`.

  • Penyebab

    • Jika Anda login ke instans menggunakan AccessKey, error ini menunjukkan bahwa pengguna saat ini tidak ada di instans Hologres, atau AccessKey salah atau dinonaktifkan.

    • Jika Anda login ke instans menggunakan akun kustom (akun BASIC), error ini menunjukkan bahwa akun kustom saat ini tidak ada di instans Hologres, atau password salah.

  • Solusi

    • Jika Anda login ke instans menggunakan AccessKey, periksa hal-hal berikut secara berurutan:

      1. Periksa apakah pengguna saat ini ada di instans. Jika tidak ada, tambahkan pengguna tersebut. Untuk informasi lebih lanjut, lihat Manajemen pengguna.

      2. Periksa apakah ID AccessKey dan Rahasia AccessKey benar dan tidak dinonaktifkan.

    • Jika Anda login ke instans menggunakan akun kustom (akun BASIC), periksa hal-hal berikut secara berurutan:

      1. Periksa apakah akun kustom saat ini ada di instans. Jika tidak ada, tambahkan akun tersebut. Untuk informasi lebih lanjut, lihat Manajemen pengguna.

      2. Periksa apakah password untuk akun kustom tersebut benar.

Error saat mengkueri tabel: permission denied for table xxxx

  • Gejala

    Saat Anda melakukan operasi, seperti kueri, di instans, muncul error `Execution failed: ERROR: permission denied for table xxxx`.

  • Penyebab

    Akun saat ini tidak memiliki izin untuk melihat tabel tersebut.

  • Solusi

    Solusi bervariasi tergantung pada model otorisasi yang digunakan.

    • Model otorisasi PostgreSQL standar: Eksekusi perintah berikut untuk memberikan izin kepada pengguna. Dalam perintah tersebut, `p4_UID` menentukan informasi pengguna RAM. Untuk informasi lebih lanjut tentang model otorisasi PostgreSQL standar, lihat Model otorisasi PostgreSQL standar.

      grant select on table tablename to "p4_UID";
    • Model izin sederhana: Tambahkan pengguna saat ini ke kelompok pengguna viewer atau kelompok pengguna dengan izin yang lebih tinggi. Untuk informasi lebih lanjut, lihat Gunakan model izin sederhana.

Error saat beroperasi di instans Hologres: permission denied for database "xxx" detail: user does not have CONNECT privilege

  • Gejala

    Saat Anda melakukan operasi, seperti kueri, di instans setelah terhubung ke tool pengembangan, muncul error `FATAL: permission denied for database "xxx" detail: user does not have CONNECT privilege`.

  • Penyebab

    Akun saat ini telah dibuat di instans tetapi tidak memiliki izin pengembangan pada instans tersebut.

  • Solusi

    Anda dapat memberikan izin yang diperlukan, seperti Superuser, kepada pengguna saat ini untuk instans tersebut. Untuk informasi lebih lanjut tentang cara memberikan izin, lihat Berikan izin pengembangan pada instans kepada pengguna RAM.

Error saat menggunakan perintah call spm_enable(): karena roles conflict

  • Gejala

    Dalam mode expert, menjalankan call spm_enable() menghasilkan error serupa karena konflik role.

  • Penyebab

    Error ini terjadi karena model izin sederhana sebelumnya telah diaktifkan untuk database saat ini dan masih terdapat informasi sisa.

  • Solusi

    Anda dapat mengeksekusi perintah call spm_enable ('t'); untuk mengaktifkan model tersebut.

Kesalahan selama otorisasi: database saat ini TIDAK dalam mode hak istimewa sederhana

  • Gejala

    Saat Anda melakukan operasi otorisasi, muncul error `current database is NOT in simple privilege mode`.

  • Penyebab

    Model izin sederhana tidak diaktifkan untuk database saat ini.

  • Solusi

    1. Anda dapat mengeksekusi perintah show hg_experimental_enable_spm; untuk memeriksa apakah model izin sederhana dinonaktifkan.

    2. Anda dapat menggunakan perintah berikut untuk mengaktifkan model izin sederhana pada database saat ini.

      -- Aktifkan model izin sederhana untuk DB saat ini.  
      call spm_enable ('t');
      -- Ubah pemilik objek yang sudah ada di DB ke role developer agar dapat dikelola menggunakan SPM.
      call spm_migrate (); 

      `t` dalam perintah call spm_enable ('t'); menentukan bahwa role sistem asli dan izinnya dipertahankan alih-alih dihapus setelah Anda menjalankan perintah call spm_disable. Jika nanti Anda menjalankan perintah spm_enable() tanpa `t`, akan muncul error konflik role dan model tidak dapat diaktifkan. Perintah spm_enable ('t') mengabaikan konflik ini dan menggunakan kembali role sistem yang sudah ada.

Kesalahan saat mengoperasikan tabel: harus menjadi Pemilik tabel xxxx

  • Gejala

    Saat Anda melakukan operasi di instans, muncul error `must be the owner of table xxxx`.

  • Penyebab

    Pengguna RAM saat ini tidak dapat membuat partisi anak atau menghapus tabel karena bukan pemilik tabel tersebut.

  • Solusi

    Solusi bervariasi tergantung pada model otorisasi yang digunakan.

    • Model otorisasi PostgreSQL standar: Eksekusi perintah berikut untuk memberikan kepemilikan tabel kepada akun saat ini. Dalam perintah tersebut, `p4_UID` menentukan informasi pengguna RAM. Untuk informasi lebih lanjut tentang model otorisasi PostgreSQL standar, lihat Model otorisasi PostgreSQL standar.

      alter table tablename owner to "p4_UID";
    • Model izin sederhana: Tambahkan pengguna saat ini ke kelompok pengguna developer atau kelompok pengguna dengan izin yang lebih tinggi. Untuk informasi lebih lanjut, lihat Gunakan model izin sederhana.

Error saat mengkueri view yang dibuat lintas skema: permission denied for table xxx

  • Penyebab

    Model izin tingkat skema (SLPM) diaktifkan untuk instans tersebut. SLPM tidak mendukung pembuatan view lintas skema.

  • Solusi

    Anda dapat memeriksa apakah Anda sedang membuat view lintas skema dalam SLPM.

Error saat mengeksekusi SQL: permission denied for Schema xxx

  • Penyebab

    Kueri gagal karena pengguna saat ini tidak memiliki izin pada skema tersebut.

  • Solusi

    Anda dapat memastikan model izin untuk pengguna saat ini dan memilih solusi yang sesuai.

    • Jika Anda menggunakan SPM atau SLPM, Anda dapat menambahkan pengguna ke kelompok pengguna viewer atau kelompok pengguna dengan izin yang lebih tinggi untuk kueri. Untuk mengatasi error yang terjadi selama pembuatan tabel, Anda dapat menambahkan pengguna ke kelompok pengguna developer atau kelompok pengguna dengan izin yang lebih tinggi. Untuk informasi lebih lanjut, lihat Otorisasi SPM dan Otorisasi SLPM.

    • Jika Anda menggunakan model otorisasi PostgreSQL standar, Anda harus secara eksplisit memberikan izin kueri pengguna pada skema tersebut. Anda dapat memberikan izin yang diperlukan kepada pengguna. Untuk informasi lebih lanjut, lihat Model otorisasi PostgreSQL standar. Anda dapat menggunakan perintah berikut untuk memberikan izin kueri pada skema:

      -- Berikan izin USAGE pada skema untuk melihat semua tabel di skema tersebut.
      GRANT USAGE ON SCHEMA <schema_name> TO "Akun Alibaba Cloud/email";
      -- Berikan izin CREATE pada skema untuk membuat tabel di skema tersebut.
      GRANT CREATE ON SCHEMA <schema_name>  TO "Akun Alibaba Cloud/email";
                                  

Error saat mengeksekusi SQL: ALTER TABLE xxx is not supported in Simple Privilege Mode

  • Error

    Saat Anda mengeksekusi pernyataan SQL, muncul error `ALTER TABLE xxx is not supported in Simple Privilege Mode`.

  • Penyebab

    Error ini terjadi karena model izin sederhana diaktifkan untuk database saat ini. Model ini tidak mendukung eksekusi langsung operasi ALTER TABLE.

  • Solusi

    • Metode 1: Berikan izin yang diperlukan dalam model izin sederhana.

    • Metode 2: Alihkan model izin database dari model izin sederhana ke model otorisasi PostgreSQL standar. Untuk informasi lebih lanjut, lihat Alihkan model izin.

      Penting

      Model otorisasi PostgreSQL standar memiliki granularitas izin yang detail dan sulit dikelola. Kami tidak menyarankan Anda beralih ke model ini kecuali benar-benar diperlukan.