Halaman ini menjelaskan cara kerja AlloyDB untuk PostgreSQL dengan peran pengguna PostgreSQL.
Tentang peran pengguna di AlloyDB
Database AlloyDB menggunakan konsep PostgreSQL standar tentang peran. Peran dapat bertindak sebagai pengguna database, grup pengguna, atau keduanya.
Peran pengguna memiliki hak istimewa LOGIN
yang memungkinkan pengguna login ke
sistem. Peran grup memiliki peran anggota dengan berbagai hak istimewa, yang dapat Anda berikan atau cabut dari semua anggota sekaligus.
Peran PostgreSQL yang telah ditetapkan AlloyDB
PostgreSQL memiliki serangkaian peran bawaan dengan berbagai hak istimewa. AlloyDB menambahkan beberapa peran pengguna dan grup ke kumpulan peran standar PostgreSQL ini.
Tabel berikut mencantumkan peran PostgreSQL yang telah ditetapkan sebelumnya oleh AlloyDB:
Nama peran | Hak istimewa |
---|---|
alloydbsuperuser |
CREATEROLE , CREATEDB , dan LOGIN . |
postgres |
CREATEROLE , CREATEDB , dan LOGIN . |
alloydbimportexport |
CREATEROLE dan CREATEDB . |
alloydbagent |
CREATEROLE dan CREATEDB . |
alloydbreplica |
REPLICATION |
alloydbiamuser |
Secara default, peran ini tidak memiliki hak istimewa apa pun. |
Bagian berikut memberikan informasi tentang beberapa peran khusus AlloyDB yang paling sering digunakan.
Peran grup alloydbsuperuser
Peran alloydbsuperuser
adalah peran standar untuk menyiapkan
sistem database dan melakukan tugas superuser lainnya pada awalnya. Peran ini memiliki hak istimewa berikut:
- Membuat ekstensi yang memerlukan hak istimewa superuser
- Membuat pemicu peristiwa
- Membuat pengguna replikasi
- Membuat langganan dan publikasi replikasi
Sebagai layanan terkelola, AlloyDB
tidak mengizinkan Anda memberikan peran superuser
PostgreSQL kepada pengguna. Sebagai gantinya, Anda dapat memberikan hak istimewa superuser AlloyDB ke peran pengguna database apa pun dengan memberikan
peran alloydbsuperuser
.
Peran pengguna postgres
Pengguna postgres
adalah bagian dari peran
alloydbsuperuser
. Saat membuat cluster AlloyDB, Anda menetapkan sandi ke
peran pengguna postgres
. Kemudian, Anda login ke sistem menggunakan peran pengguna postgres
untuk membuat database, peran tambahan, dan sebagainya.
Peran pengguna alloydbimportexport
Saat Anda membuat cluster AlloyDB, cluster tersebut akan membuat pengguna default, alloydbimportexport
, dengan kumpulan hak istimewa minimum yang diperlukan untuk operasi impor dan ekspor.
Anda memiliki opsi untuk membuat pengguna sendiri guna melakukan operasi ini. Jika Anda tidak membuat pengguna alloydbimportexport
kustom, sistem akan menggunakan pengguna alloydbimportexport
default untuk operasi impor dan ekspor.
Pengguna alloydbimportexport
adalah pengguna sistem; Anda tidak dapat langsung
menggunakan pengguna alloydbimportexport
untuk login atau melakukan operasi
lain di database PostgreSQL.
Peran grup alloydbiamuser
Pengguna database dalam peran grup alloydbiamuser
mengautentikasi dengan instance AlloyDB menggunakan Identity and Access Management,
bukan menggunakan autentikasi berbasis sandi PostgreSQL standar.
AlloyDB tidak mengizinkan Anda memberikan peran ini kepada pengguna
menggunakan perintah PostgreSQL GRANT
atau metode serupa. Sebagai gantinya, Anda dapat menggunakan
alat administratif AlloyDB untuk membuat dan mengelola pengguna database berbasis Identity and Access Management. Untuk informasi selengkapnya, lihat Mengelola autentikasi IAM.
Membuat pengguna PostgreSQL lainnya di AlloyDB
Anda dapat membuat pengguna atau peran PostgreSQL lainnya. Pengguna ini memiliki kumpulan hak istimewa yang sama dengan pengguna postgres
: CREATE ROLE
, CREATEDB
, dan LOGIN
. Untuk mengetahui informasi selengkapnya tentang
hak istimewa ini, lihat CREATE ROLE
.
Anda dapat mengubah hak istimewa pengguna mana pun dengan menggunakan
perintah
ALTER ROLE
. Jika Anda membuat pengguna baru dengan psql
klien, Anda dapat
memilih untuk mengaitkannya dengan peran lain, atau menetapkan hak istimewa yang berbeda.
Kelola pengguna
Anda dapat membuat dan mengelola peran pengguna AlloyDB dengan Google Cloud CLI, atau menggunakan perintah PostgreSQL. Bagian berikut menunjukkan tugas pengelolaan pengguna umum menggunakan salah satu metode.
Sebelum memulai
Untuk menggunakan perintah PostgreSQL guna mengelola pengguna di cluster, Anda memerlukan hal berikut:
- Akses ke klien
psql
- Akses ke
pengguna database
postgres
, atau peran pengguna lain dengan hak istimewa administratif yang sesuai
Untuk menggunakan konsol Google Cloud atau Google Cloud CLI guna mengelola pengguna di cluster, cluster tersebut harus memiliki instance utama. Jika cluster Anda tidak memiliki instance utama, Anda harus membuatnya sebelum dapat mengelola pengguna.
Membuat pengguna database
Untuk membuat pengguna database yang melakukan autentikasi dengan database secara langsung menggunakan nama pengguna dan sandi—juga dikenal sebagai autentikasi bawaan—ikuti langkah-langkah di bagian ini.
Untuk membuat pengguna database yang menggunakan Identity and Access Management untuk melakukan autentikasi, lihat Mengelola autentikasi IAM.
Konsol
Buka halaman Cluster.
Klik nama cluster tempat Anda ingin menambahkan pengguna.
Klik Pengguna.
Klik Tambahkan akun pengguna.
Biarkan Built-in authentication dipilih.
Sebagai gantinya, Anda dapat memilih Cloud IAM untuk membuat pengguna database yang menggunakan IAM untuk melakukan autentikasi. Pilihan ini memerlukan langkah tambahan untuk menyiapkan project dan memberikan izin yang sesuai kepada pengguna database baru. Untuk informasi selengkapnya, lihat Mengelola autentikasi IAM.
Masukkan nama pengguna dan sandi untuk pengguna baru.
Klik Tambahkan.
psql
CREATE USER USERNAME WITH PASSWORD 'PASSWORD';
Untuk informasi selengkapnya tentang cara membuat dan menentukan pengguna database, lihat CREATE
USER
.
Setelah membuat peran pengguna, Anda dapat mengubah hak istimewanya menggunakan perintah ALTER
ROLE
di klien psql
.
gcloud
Gunakan perintah gcloud alloydb users create
:
gcloud alloydb users create USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID
Ganti kode berikut:
USERNAME
: Nama pengguna peran pengguna baru.PASSWORD
: Sandi peran pengguna baru. Untuk membuat pengguna tanpa sandi, hapus argumen ini.CLUSTER_ID
: ID cluster tempat peran pengguna baru akan ditambahkan.REGION_ID
: ID region tempat cluster berada—misalnya,us-central1
.
Setelah membuat peran pengguna, Anda dapat mengubah hak istimewanya dengan menggunakan
perintah gcloud alloydb users set-roles
.
Anda juga dapat memberikan peran atau hak istimewa superuser kepada pengguna saat membuatnya.
Untuk melakukannya, sertakan argumen --db-roles
atau --superuser
, seperti yang dijelaskan
di bagian berikut.
Memberikan peran kepada pengguna database
Konsol
Untuk memberikan peran kepada pengguna database, gunakan psql
atau gcloud CLI,
bukan Konsol Google Cloud.
psql
GRANT ROLE to USERNAME;
Untuk memberikan hak istimewa superuser kepada pengguna, berikan peran alloydbsuperuser
kepada pengguna tersebut.
gcloud
Gunakan perintah gcloud alloydb users set-roles
untuk menentukan semua peran yang ingin Anda berikan kepada pengguna:
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID
Ganti kode berikut:
USERNAME
: Peran pengguna yang akan diberi peran.ROLES
: Daftar yang dipisahkan koma dari semua peran yang ingin Anda berikan kepada pengguna yang ditentukan. Pastikan Anda mencantumkan semua peran, termasuk peran lama dan baru, yang ingin Anda tetapkan kepada pengguna.Untuk menemukan daftar peran yang ada yang ditetapkan ke pengguna, jalankan perintah berikut:
gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
CLUSTER_ID
: ID cluster yang berisi pengguna.REGION_ID
: ID region tempat cluster berada—misalnya,us-central1
.
Untuk memberikan hak istimewa superuser kepada pengguna, Anda dapat memberikan peran alloydbsuperuser
kepada pengguna tersebut secara manual menggunakan perintah yang dijelaskan sebelumnya, atau Anda dapat menjalankan perintah gcloud alloydb users set-superuser
dengan argumen --superuser=true
:
gcloud alloydb users set-superuser USERNAME \
--superuser=true \
--cluster=CLUSTER_ID \
--region=REGION_ID
Mengubah sandi pengguna database
Untuk menetapkan sandi baru bagi pengguna database PostgreSQL standar, ikuti langkah-langkah di bagian ini.
Anda tidak dapat mengubah atau menetapkan sandi pengguna berbasis IAM, karena pengguna berbasis IAM tidak menggunakan sandi untuk melakukan autentikasi. Untuk mengetahui informasi selengkapnya, lihat Terhubung menggunakan akun IAM.
Konsol
Buka halaman Cluster.
Klik nama cluster yang berisi pengguna database yang sandinya ingin Anda ubah.
Klik Pengguna.
Pada baris yang mewakili pengguna yang sandinya ingin Anda ubah, klik
Buka tindakan untuk pengguna ini.Pilih Change Password.
Tentukan sandi:
Untuk menetapkan sandi baru bagi pengguna ini, ketik sandi ke kolom Sandi.
Untuk tidak menetapkan sandi untuk pengguna ini, centang kotak Tidak ada sandi.
Klik Oke.
psql
ALTER USER USERNAME WITH PASSWORD 'PASSWORD';
Untuk informasi selengkapnya tentang cara mengubah sandi pengguna, lihat
ALTER ROLE
.
gcloud
Gunakan perintah gcloud alloydb users set-password
:
gcloud alloydb users set-password USERNAME \
--password=PASSWORD \
--cluster=CLUSTER_ID \
--region=REGION_ID
Ganti kode berikut:
USERNAME
: Nama pengguna peran pengguna.PASSWORD
: Sandi baru yang akan ditetapkan ke peran pengguna.CLUSTER_ID
: ID cluster tempat peran pengguna berada.REGION_ID
: ID region tempat cluster berada—misalnya,us-central1
.
Mencabut peran dari pengguna database
Konsol
Untuk mencabut peran dari pengguna database, gunakan psql
atau gcloud CLI,
bukan Konsol Google Cloud.
psql
Anda dapat mencabut hak istimewa yang sebelumnya diberikan dari satu atau beberapa peran atau mencabut keanggotaan pengguna dalam peran.
REVOKE ROLE FROM USERNAME;
Untuk menghapus hak istimewa superuser pengguna, cabut peran alloydbsuperuser
dari pengguna tersebut.
gcloud
Untuk mencabut peran dengan Google Cloud CLI, gunakan perintah gcloud alloydb users set-roles
untuk menentukan semua peran yang Anda inginkan dimiliki pengguna, dengan menghapus peran yang akan dicabut dari pengguna.
gcloud alloydb users set-roles USERNAME \
--db-roles=ROLES \
--cluster=CLUSTER_ID \
--region=REGION_ID
Ganti kode berikut:
USERNAME
: Peran pengguna yang akan dicabut perannya.ROLES
: Daftar yang dipisahkan koma dari semua peran yang ingin Anda berikan kepada pengguna yang ditentukan, dengan mengecualikan peran yang akan dicabut.Untuk menemukan daftar semua peran yang ditetapkan kepada pengguna, jalankan perintah berikut:
gcloud alloydb list users --cluster=CLUSTER_ID --region=REGION_ID
CLUSTER_ID
: ID cluster yang berisi pengguna.REGION_ID
: ID region tempat cluster berada—misalnya,us-central1
.
Untuk mencabut hak istimewa superuser, Anda dapat menghapus peran
alloydbsuperuser
pengguna secara manual menggunakan perintah yang dijelaskan sebelumnya, atau Anda dapat menjalankan
perintah gcloud alloydb users set-superuser
dengan argumen --superuser=false
.
Melihat daftar pengguna database
Konsol
Buka halaman Cluster.
Klik nama cluster yang penggunanya ingin Anda lihat.
Klik Pengguna.
psql
Perintah \du
mencetak tabel semua pengguna database, termasuk
keanggotaan grup mereka.
\du
gcloud
Gunakan perintah gcloud alloydb users list
:
gcloud alloydb users list \
--cluster=CLUSTER_ID \
--region=REGION_ID
Ganti kode berikut:
CLUSTER_ID
: ID cluster yang penggunanya akan dicantumkan.REGION_ID
: ID region tempat cluster berada—misalnya,us-central1
.
Menghapus pengguna database
Konsol
Buka halaman Cluster.
Klik nama cluster tempat Anda ingin menghapus pengguna.
Klik Pengguna.
Pada baris yang merepresentasikan pengguna yang ingin Anda hapus, klik
Buka tindakan untuk pengguna ini.Pilih Hapus.
Pada dialog Hapus akun pengguna?, klik Hapus.
psql
Sebelum menghapus pengguna, Anda harus menghapus semua objek yang dimilikinya atau menetapkan kembali kepemilikannya, dan mencabut hak istimewa peran yang telah diberikan pada objek lain.
DROP ROLE USERNAME;
gcloud
Gunakan perintah gcloud alloydb users delete
:
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION_ID
Ganti kode berikut:
USERNAME
: Peran pengguna yang akan dihapus.CLUSTER_ID
: ID cluster tempat peran pengguna akan dihapus.REGION_ID
: ID region tempat cluster berada—misalnya,us-central1
.