Mengelola peran pengguna AlloyDB

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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik nama cluster tempat Anda ingin menambahkan pengguna.

  3. Klik Pengguna.

  4. Klik Tambahkan akun pengguna.

  5. 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.

  1. Masukkan nama pengguna dan sandi untuk pengguna baru.

  2. 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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik nama cluster yang berisi pengguna database yang sandinya ingin Anda ubah.

  3. Klik Pengguna.

  4. Pada baris yang mewakili pengguna yang sandinya ingin Anda ubah, klik Buka tindakan untuk pengguna ini.

  5. Pilih Change Password.

  6. 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.

  7. 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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik nama cluster yang penggunanya ingin Anda lihat.

  3. 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

  1. Buka halaman Cluster.

    Buka Cluster

  2. Klik nama cluster tempat Anda ingin menghapus pengguna.

  3. Klik Pengguna.

  4. Pada baris yang merepresentasikan pengguna yang ingin Anda hapus, klik Buka tindakan untuk pengguna ini.

  5. Pilih Hapus.

  6. 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.

Langkah selanjutnya