Saat mengembangkan data di Hologres, Anda mungkin menerima pesan kesalahan terkait izin. Topik ini memberikan jawaban atas pertanyaan umum tentang izin pengembangan pada instans Hologres.
Ikhtisar
Anda hanya dapat mengembangkan data pada instans Hologres setelah memiliki izin pengembangan pada instans tersebut. Untuk melihat solusi pertanyaan umum tentang izin, klik tautan berikut:
Bagaimana cara memilih model izin Hologres yang sesuai?
Hologres menyediakan model otorisasi PostgreSQL standar, model izin sederhana (SPM), atau model izin tingkat skema (SLPM). Pilih model izin berdasarkan aturan berikut:
Model otorisasi PostgreSQL standar adalah model izin asli PostgreSQL. Jika Anda sudah familiar dengan PostgreSQL dan manajemen izin terkait, Anda dapat menggunakan model ini untuk dengan mudah memberikan izin kepada pengguna. Jika Anda perlu mengelola izin pada tabel dan memiliki waktu serta energi, Anda dapat menggunakan model ini untuk memberikan setiap pengguna izin untuk mengelola tabel dan mencabut izin tersebut.
SPM adalah model izin sederhana tingkat basis data. Dalam model ini, semua pengguna yang perlu mengakses basis data ditambahkan ke grup pengguna tertentu. Setiap grup pengguna diberikan izin akses tertentu pada semua objek di skema apa pun dari basis data. Anda mungkin jarang melakukan pengembangan data berdasarkan skema atau hanya menggunakan skema untuk mengklasifikasikan objek tabel seperti direktori tanpa perlu mengisolasi izin berdasarkan skema. Dalam hal ini, kami sarankan Anda menggunakan SPM.
Dalam SLPM, setiap skema mencakup grup pengembang, grup penulis, dan grup peninjau. Jika Anda perlu melakukan isolasi pengguna dan izin tingkat skema untuk tabel, kami sarankan Anda menggunakan SLPM.
Mengapa saya menerima pesan kesalahan berikut saat mengembangkan data pada instans Hologres: role “RAM$xxx” tidak ada?
Deskripsi Masalah
Ketika saya terhubung ke instans Hologres dan melakukan kueri pada instans tersebut, pesan kesalahan berikut dikembalikan: role “RAM$xxx” tidak ada.
Penyebab
Pengguna RAM saat ini belum ditambahkan ke instans.
Solusi
Berikan izin relevan kepada pengguna RAM saat ini pada instans berdasarkan kebutuhan bisnis Anda. Sebagai contoh, Anda dapat menetapkan peran superuser kepada pengguna RAM. Untuk informasi lebih lanjut tentang otorisasi izin, lihat Berikan izin pengembangan pada instans Hologres kepada pengguna RAM.
Mengapa saya menerima pesan kesalahan berikut saat terhubung ke instans Hologres: otentikasi kata sandi gagal untuk pengguna “xxx”?
Deskripsi Masalah
Pesan kesalahan berikut dilaporkan ketika saya terhubung ke instans Hologres: otentikasi kata sandi gagal untuk pengguna “xxx”.
Penyebab
Jika Anda masuk ke instans Hologres menggunakan pasangan AccessKey akun, pesan kesalahan ini dilaporkan karena akun tidak ada pada instans Hologres atau pasangan AccessKey tidak valid atau dinonaktifkan.
Jika Anda masuk ke instans Hologres menggunakan akun BASIC, pesan kesalahan ini dilaporkan karena akun BASIC tidak ada pada instans Hologres atau kata sandi logon tidak valid.
Solusi
Jika Anda masuk ke instans Hologres menggunakan pasangan AccessKey, lakukan langkah-langkah berikut:
Periksa apakah akun yang Anda gunakan untuk masuk ke instans Hologres ada. Jika akun tidak ada, tambahkan pengguna dengan mengikuti petunjuk di Kelola Pengguna.
Periksa apakah ID AccessKey dan Rahasia AccessKey valid atau diaktifkan.
Jika Anda masuk ke instans Hologres menggunakan akun BASIC, lakukan langkah-langkah berikut:
Periksa apakah akun BASIC ada pada instans. Jika akun tidak ada, tambahkan akun dengan mengikuti petunjuk di Kelola Pengguna.
Periksa apakah kata sandi akun BASIC valid.
Mengapa saya menerima pesan kesalahan berikut saat menanyai tabel: izin ditolak untuk tabel xxxx?
Deskripsi Masalah
Ketika saya melakukan operasi seperti kueri data pada instans, pesan kesalahan berikut dikembalikan: Execution failed: ERROR: izin ditolak untuk tabel xxxx.
Penyebab
Pengguna RAM tidak memiliki izin untuk melihat tabel tertentu.
Solusi
Pilih solusi berdasarkan model izin yang Anda gunakan.
Model Otorisasi PostgreSQL Standar: Eksekusi pernyataan berikut untuk memberikan izin kepada pengguna RAM. Dalam pernyataan tersebut, p4_UID menentukan informasi akun pengguna RAM. Untuk informasi lebih lanjut tentang model otorisasi PostgreSQL standar, lihat Model Otorisasi PostgreSQL Standar.
grant select on table tablename to "p4_UID";SPM: Tambahkan pengguna RAM ke grup pengguna viewer atau grup pengguna lain yang memiliki izin lebih tinggi daripada grup pengguna viewer. Untuk informasi lebih lanjut, lihat Gunakan SPM.
Mengapa saya menerima pesan kesalahan berikut saat mengembangkan data pada instans Hologres: izin ditolak untuk database“xxx” detail: pengguna tidak memiliki hak CONNECT?
Deskripsi Masalah
Ketika saya terhubung ke instans Hologres untuk melakukan operasi seperti kueri data, pesan kesalahan berikut dikembalikan: FATAL:izin ditolak untuk database''xxx'' detail: pengguna tidak memiliki hak CONNECT.
Penyebab
Pengguna RAM saat ini hanya ditambahkan ke instans tetapi tidak diberikan izin pengembangan pada instans.
Solusi
Berikan pengguna RAM izin relevan pada instans berdasarkan kebutuhan bisnis Anda. Sebagai contoh, Anda dapat menetapkan peran superuser kepada pengguna RAM. Untuk informasi lebih lanjut tentang otorisasi izin, lihat Berikan izin pengembangan pada instans Hologres kepada pengguna RAM.
Mengapa saya menerima pesan kesalahan berikut saat menjalankan perintah call spm_enable(): karena konflik peran?
Deskripsi Masalah
Ketika saya menjalankan perintah
call spm_enable()untuk mengelola basis data yang menggunakan mode otorisasi PostgreSQL standar, pesan kesalahan serupa dengan konten berikut dikembalikan: karena konflik peran.Penyebab
Sistem mempertahankan informasi tentang SPM yang sebelumnya diaktifkan untuk basis data saat ini.
Solusi
Jalankan perintah
call spm_enable ('t');untuk mengaktifkan SPM.
Mengapa saya menerima pesan kesalahan berikut saat memberikan izin: basis data saat ini TIDAK dalam mode izin sederhana?
Deskripsi Masalah
Pesan kesalahan berikut dikembalikan saat saya memberikan izin: basis data saat ini TIDAK dalam mode izin sederhana.
Penyebab
SPM tidak diaktifkan untuk basis data saat ini.
Solusi
Jalankan perintah
show hg_experimental_enable_spm;untuk memeriksa apakah SPM dinonaktifkan.Jalankan perintah berikut untuk mengaktifkan SPM untuk basis data saat ini:
-- Aktifkan SPM untuk basis data. call spm_enable ('t'); -- Ubah pemilik objek dalam basis data ke pengguna dalam grup pengguna pengembang dan gunakan SPM untuk mengelola objek. call spm_migrate ();Jika Anda menjalankan perintah
call spm_enable ('t');, peran sistem dan izin yang ada dipertahankan setelah Anda menonaktifkan SPM dengan menjalankan perintahcall spm_disable. Jika Anda menjalankan perintahspm_enable(), SPM akan gagal diaktifkan karena konflik peran sistem. Jika Anda menjalankan perintahspm_enable ('t'), konflik peran sistem diabaikan, dan peran sistem dapat digunakan.
Mengapa saya menerima pesan kesalahan berikut saat mengelola tabel: harus menjadi pemilik tabel xxxx?
Deskripsi Masalah
Ketika saya melakukan operasi data pada instans, pesan kesalahan berikut dikembalikan: harus menjadi pemilik tabel xxxx.
Penyebab
Pengguna RAM saat ini tidak memiliki kepemilikan tabel dan tidak diizinkan untuk membuat tabel anak atau menghapus tabel.
Solusi
Pilih solusi berdasarkan model izin yang Anda gunakan.
Model Otorisasi PostgreSQL Standar: Jalankan perintah berikut untuk memberikan izin pemilik tabel kepada pengguna RAM saat ini. Dalam perintah tersebut, p4_UID menentukan informasi akun pengguna RAM. Untuk informasi lebih lanjut tentang model otorisasi PostgreSQL standar, lihat Model Otorisasi PostgreSQL Standar.
alter table tablename owner to "p4_UID";SPM: Tambahkan pengguna RAM saat ini ke grup pengguna pengembang atau grup pengguna lain yang memiliki izin lebih tinggi daripada grup pengguna pengembang. Untuk informasi lebih lanjut, lihat Gunakan SPM.
Mengapa saya menerima pesan kesalahan berikut saat membuat tampilan lintas skema: izin ditolak untuk tabel xxx?
Penyebab
SLPM diaktifkan untuk instans. Model ini tidak mengizinkan Anda membuat tampilan lintas skema. Untuk informasi lebih lanjut tentang SLPM, lihat Ikhtisar.
Solusi
Periksa apakah tampilan dibuat lintas skema saat SLPM digunakan.
Mengapa saya menerima pesan kesalahan berikut saat mengeksekusi pernyataan SQL: izin ditolak untuk Skema xxx?
Penyebab
Pengguna RAM saat ini tidak diberikan izin pada skema.
Solusi
Periksa model izin yang digunakan oleh pengguna RAM saat ini dan pilih solusi berdasarkan model izin.
Jika Anda menggunakan SPM atau SLPM dan pesan kesalahan dikembalikan saat Anda menanyai data, tambahkan pengguna RAM saat ini ke grup pengguna viewer atau grup pengguna tingkat lebih tinggi. Jika Anda menggunakan SPM atau SLPM dan pesan kesalahan dikembalikan saat Anda membuat tabel, tambahkan pengguna RAM saat ini ke grup pengguna pengembang atau grup pengguna tingkat lebih tinggi. Untuk informasi lebih lanjut, lihat Gunakan SPM dan Gunakan SLPM.
Jika Anda menggunakan model otorisasi PostgreSQL standar, secara eksplisit berikan izin kueri pada skema kepada pengguna RAM saat ini berdasarkan kebutuhan bisnis Anda. Untuk informasi lebih lanjut, lihat Model Otorisasi PostgreSQL Standar. Anda dapat menjalankan perintah berikut untuk memberikan izin pada skema kepada pengguna RAM saat ini:
-- Berikan pengguna RAM izin USAGE pada skema. GRANT USAGE ON SCHEMA <schema_name> TO "ID akun Alibaba Cloud/Alamat email Alibaba Cloud"; -- Berikan pengguna RAM izin CREATE pada skema. GRANT CREATE ON SCHEMA <schema_name> TO "ID akun Alibaba Cloud/Alamat email Alibaba Cloud";
Mengapa saya menerima pesan kesalahan berikut saat mengeksekusi pernyataan SQL: ALTER TABLE xxx tidak didukung dalam Simple Privilege Mode?
Deskripsi Masalah
Ketika saya mengeksekusi pernyataan SQL, pesan kesalahan berikut dikembalikan: ALTER TABLE xxx tidak didukung dalam Simple Privilege Mode.
Penyebab
SPM diaktifkan untuk basis data saat ini. Model ini tidak mengizinkan Anda mengeksekusi pernyataan ALTER TABLE.
Solusi
Metode 1: Berikan izin pada tabel menggunakan SPM berdasarkan kebutuhan bisnis Anda.
Metode 2: Alihkan model izin basis data dari SPM ke model otorisasi PostgreSQL standar. Untuk informasi lebih lanjut, lihat Alihkan antara model izin.
PentingKami sarankan Anda tidak beralih ke model otorisasi PostgreSQL standar karena izin diberikan secara mendetail dan pernyataan otorisasi PostgreSQL kompleks dalam model ini.