Membuat dan mengelola pengguna

Halaman ini menjelaskan cara mengaktifkan dan menggunakan autentikasi bawaan Cloud SQL.

Untuk ringkasan, lihat Autentikasi database bawaan Cloud SQL.

Sebelum membuat pengguna

  1. Buat instance Cloud SQL Untuk mengetahui informasi selengkapnya, baca Membuat instance.
  2. Aktifkan kebijakan sandi untuk instance. Untuk mengetahui informasi selengkapnya, lihat Kebijakan sandi instance.
  3. Jika Anda berencana menggunakan klien administratif database untuk mengelola pengguna, lakukan hal berikut:

    1. Menghubungkan klien ke instance Anda. Lihat Opsi koneksi untuk aplikasi eksternal.

    2. Mengonfigurasikan pengguna default pada instance dengan menyetel sandi. Lihat Menyetel sandi untuk akun pengguna default.

Menyetel sandi untuk akun pengguna default

Saat membuat instance Cloud SQL baru, Anda harus menetapkan sandi untuk akun pengguna default sebelum dapat terhubung ke instance.

Untuk Cloud SQL untuk PostgreSQL, pengguna defaultnya adalah postgres.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Users dari menu navigasi SQL.
  4. Temukan pengguna postgres dan pilih Change password dari menu tindakan lainnya Ikon tindakan lainnya..
  5. Berikan sandi kuat yang dapat Anda ingat, lalu klik OK.

gcloud

Gunakan perintah gcloud sql users set-password seperti berikut untuk menetapkan sandi bagi pengguna default.

Ganti INSTANCE_NAME dengan nama instance sebelum menjalankan perintah.

gcloud sql users set-password postgres \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

Untuk memperbarui sandi akun pengguna default, gunakan permintaan PUT dengan metode users:update.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • instance-id: ID instance yang diinginkan
  • user-id: ID pengguna
  • password: Sandi untuk pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

Meminta isi JSON:

{
  "name": "user-id",
  "password": "password"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Untuk memperbarui sandi akun pengguna default, gunakan permintaan PUT dengan metode users:update.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • instance-id: ID instance yang diinginkan
  • user-id: ID pengguna
  • password: Sandi untuk pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

Meminta isi JSON:

{
  "name": "user-id",
  "password": "password"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Membuat pengguna

Setelah menyiapkan akun pengguna default, Anda dapat membuat pengguna lainnya.

Saat membuat pengguna bawaan, Anda dapat menetapkan satu atau beberapa peran database kepada pengguna.

Untuk menetapkan peran database kustom kepada pengguna, Anda harus membuat peran di database PostgreSQL terlebih dahulu. Untuk membuat peran di PostgreSQL, lihat Peran database.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Pengguna dari menu navigasi SQL.
  4. Klik Add user account.

    Di halaman Add a user account to instance instance_name, Anda dapat memilih apakah pengguna melakukan autentikasi dengan metode database bawaan (nama pengguna dan sandi) atau sebagai pengguna IAM.

  5. Pilih Built-in authentication (default) dan tambahkan informasi berikut:
    • Nama pengguna.
    • Opsional. Sandi. Berikan sandi yang kuat dan dapat Anda ingat.
  6. Klik Tambahkan.

Jika Anda membuat pengguna PostgreSQL yang menggunakan autentikasi bawaan, pengguna tersebut akan otomatis diberi peran cloudsqlsuperuser. Pengguna diberi hak istimewa berikut yang terkait dengan peran ini: CREATEROLE, CREATEDB, dan LOGIN.

Jika ingin mengubah hak istimewa pengguna, Anda dapat membuat dan menetapkan satu atau beberapa peran database PostgreSQL kustom saat membuat pengguna di Cloud SQL. Jika Anda menetapkan satu atau beberapa peran database kustom saat membuat pengguna di Cloud SQL, pengguna tersebut tidak akan diberi peran cloudsqlsuperuser.

Jika Anda perlu mengubah atribut untuk pengguna ini, gunakan perintah ALTER ROLE di klien psql. Tidak semua atribut dapat diubah dengan ALTER ROLE. Pengecualian ini mencakup peran NOSUPERUSER dan NOREPLICATION.

Untuk mengetahui informasi selengkapnya tentang akun dan hak istimewa pengguna ini, lihat Akun pengguna PostgreSQL lainnya.

gcloud

Untuk membuat pengguna, gunakan perintah gcloud sql users create.

Ganti kode berikut:

  • USER_NAME: nama pengguna.
  • INSTANCE_NAME: nama instance.
  • PASSWORD: sandi untuk pengguna.
  • ROLE_1, ROLE_2 ..., ROLE_N: opsional. Peran database yang akan ditetapkan kepada pengguna.
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD \
--database-roles=ROLE_1, ROLE_2, ..., ROLE_N

Jika Anda membuat pengguna PostgreSQL yang menggunakan autentikasi bawaan, pengguna tersebut akan otomatis diberi peran cloudsqlsuperuser. Pengguna diberi hak istimewa berikut yang terkait dengan peran ini: CREATEROLE, CREATEDB, dan LOGIN.

Jika ingin mengubah hak istimewa pengguna, Anda dapat membuat dan menetapkan satu atau beberapa peran database PostgreSQL kustom saat membuat pengguna di Cloud SQL. Jika Anda menetapkan satu atau beberapa peran database kustom saat membuat pengguna di Cloud SQL, pengguna tersebut tidak akan diberi peran cloudsqlsuperuser.

Jika Anda perlu mengubah atribut untuk pengguna ini, gunakan perintah ALTER ROLE di klien psql. Tidak semua atribut dapat diubah dengan ALTER ROLE. Pengecualian ini mencakup peran NOSUPERUSER dan NOREPLICATION.

Untuk mengetahui informasi selengkapnya tentang akun dan hak istimewa pengguna ini, lihat Akun pengguna PostgreSQL lainnya.

Batas panjang nama pengguna untuk Cloud SQL sama seperti PostgreSQL lokal.

Saat membuat pengguna, Anda dapat menambahkan parameter kebijakan sandi pengguna.

Terraform

Untuk membuat pengguna, gunakan resource Terraform.

resource "random_password" "pwd" {
  length  = 16
  special = false
}

resource "google_sql_user" "user" {
  name     = "user"
  instance = google_sql_database_instance.default.name
  password = random_password.pwd.result
}

Menerapkan perubahan

Untuk menerapkan konfigurasi Terraform di project, selesaikan langkah-langkah di bagian berikut. Google Cloud

Menyiapkan Cloud Shell

  1. Luncurkan Cloud Shell.
  2. Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.

    Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.

Menyiapkan direktori

Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).

  1. Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki ekstensi .tf—misalnya main.tf. Dalam tutorial ini, file ini disebut sebagai main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.

    Salin kode contoh ke dalam main.tf yang baru dibuat.

    Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.

  3. Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
  4. Simpan perubahan Anda.
  5. Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
    terraform init

    Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi -upgrade:

    terraform init -upgrade

Menerapkan perubahan

  1. Tinjau konfigurasi dan pastikan resource yang akan dibuat atau diupdate oleh Terraform sesuai yang Anda inginkan:
    terraform plan

    Koreksi konfigurasi jika diperlukan.

  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply

    Tunggu hingga Terraform menampilkan pesan "Apply complete!".

  3. Buka Google Cloud project Anda untuk melihat hasilnya. Di konsol Google Cloud , buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.

Menghapus perubahan

Untuk menghapus perubahan Anda, lakukan langkah-langkah berikut:

  1. Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan argumen deletion_protection ke false.
    deletion_protection =  "false"
  2. Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan yes pada prompt:
    terraform apply
  1. Hapus resource yang sebelumnya diterapkan dengan konfigurasi Terraform Anda dengan menjalankan perintah berikut dan memasukkan yes pada prompt:

    terraform destroy

REST v1

Untuk membuat pengguna, gunakan permintaan POST dengan metode users:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance
  • USER_ID: ID pengguna
  • PASSWORD: sandi untuk pengguna
  • ROLE_1, ROLE_2 ..., ROLE_N: opsional. Peran database yang akan ditetapkan kepada pengguna

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

Meminta isi JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "databaseRoles": [
    "ROLE_1",
    "ROLE_2"
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Jika Anda membuat pengguna PostgreSQL yang menggunakan autentikasi bawaan, pengguna tersebut akan otomatis diberi peran cloudsqlsuperuser. Pengguna diberi hak istimewa berikut yang terkait dengan peran ini: CREATEROLE, CREATEDB, dan LOGIN.

Jika ingin mengubah hak istimewa pengguna, Anda dapat membuat dan menetapkan satu atau beberapa peran database PostgreSQL kustom saat membuat pengguna di Cloud SQL. Jika Anda menetapkan satu atau beberapa peran database kustom saat membuat pengguna di Cloud SQL, pengguna tersebut tidak akan diberi peran cloudsqlsuperuser.

Jika Anda perlu mengubah atribut untuk pengguna ini, gunakan perintah ALTER ROLE di klien psql. Tidak semua atribut dapat diubah dengan ALTER ROLE. Pengecualian ini mencakup peran NOSUPERUSER dan NOREPLICATION.

Untuk mengetahui informasi selengkapnya tentang akun dan hak istimewa pengguna ini, lihat Akun pengguna PostgreSQL lainnya.

Batas panjang nama pengguna untuk Cloud SQL sama seperti PostgreSQL lokal.

Saat membuat pengguna, Anda dapat menambahkan parameter kebijakan sandi pengguna.

REST v1beta4

Untuk membuat pengguna, gunakan permintaan POST dengan metode users:insert.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance
  • USER_ID: ID pengguna
  • PASSWORD: sandi untuk pengguna
  • ROLE_1, ROLE_2 ..., ROLE_N: opsional. Peran database yang akan ditetapkan kepada pengguna

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

Meminta isi JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "databaseRoles": [
    "ROLE_1",
    "ROLE_2"
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "CREATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Jika Anda membuat pengguna PostgreSQL yang menggunakan autentikasi bawaan, pengguna tersebut akan otomatis diberi peran cloudsqlsuperuser. Pengguna diberi hak istimewa berikut yang terkait dengan peran ini: CREATEROLE, CREATEDB, dan LOGIN.

Jika ingin mengubah hak istimewa pengguna, Anda dapat membuat dan menetapkan satu atau beberapa peran database PostgreSQL kustom saat membuat pengguna di Cloud SQL. Jika Anda menetapkan satu atau beberapa peran database kustom saat membuat pengguna di Cloud SQL, pengguna tersebut tidak akan diberi peran cloudsqlsuperuser.

Jika Anda perlu mengubah atribut untuk pengguna ini, gunakan perintah ALTER ROLE di klien psql. Tidak semua atribut dapat diubah dengan ALTER ROLE. Pengecualian ini mencakup peran NOSUPERUSER dan NOREPLICATION.

Untuk mengetahui informasi selengkapnya tentang akun dan hak istimewa pengguna ini, lihat Akun pengguna PostgreSQL lainnya.

Batas panjang nama pengguna untuk Cloud SQL sama seperti PostgreSQL lokal.

Saat membuat pengguna, Anda dapat menambahkan parameter kebijakan sandi pengguna.

Klien psql

  1. Pada prompt psql, buat pengguna:
      CREATE USER USER_NAME
          WITH PASSWORD PASSWORD
          ATTRIBUTE1
          ATTRIBUTE2...;
      

    Masukkan sandi saat diminta.

    Untuk mengetahui informasi selengkapnya tentang atribut peran, lihat dokumentasi PostgreSQL.

  2. Anda dapat mengonfirmasi pembuatan pengguna dengan menampilkan tabel pengguna:
      SELECT * FROM pg_roles;
      

Menetapkan kebijakan sandi pengguna

Anda dapat menetapkan kebijakan sandi dengan jenis autentikasi bawaan.

gcloud

Untuk menetapkan kebijakan sandi pengguna, gunakan perintah gcloud sql users set-password-policy.

Ganti kode berikut:

  • USER_NAME: Nama pengguna.
  • INSTANCE_NAME: Nama instance
  • HOST: Nama host pengguna sebagai alamat IP, rentang alamat, atau host apa pun (%) tertentu.
  • PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS: Opsional: Berapa kali pengguna mencoba memasukkan sandi dengan tidak benar sebelum terkunci. Gunakan --password-policy-enable-failed-attempts-check untuk mengaktifkan dan --no-password-policy-enable-failed-attempts-check untuk menonaktifkan pemeriksaan.
  • PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION: Opsional: Tentukan jumlah hari berakhirnya sandi dan pengguna harus membuat sandi baru.
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--password-policy-enable-failed-attempts-check \
--password-policy-allowed-failed-attempts=PASSWORD_POLICY_ALLOWED_FAILED_ATTEMPTS \
--password-policy-password-expiration-duration=PASSWORD_POLICY_PASSWORD_EXPIRATION_DURATION

Untuk menghapus kebijakan sandi pengguna, gunakan parameter --clear-password-policy.

gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

Untuk melihat kebijakan sandi pengguna, lihat Mencantumkan pengguna.

REST v1

Untuk menetapkan kebijakan sandi pengguna, gunakan permintaan PUT dengan metode users:update.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance
  • USER_ID: ID pengguna
  • PASSWORD: sandi pengguna
  • FAILED_ATTEMPTS_CHECK: Tetapkan ke true untuk mengaktifkan pemeriksaan jumlah upaya login yang gagal saat akun terkunci
  • NUMBER_OF_ATTEMPTS: jumlah upaya login yang gagal saat akun terkunci
  • PASSWORD_EXPIRATION_DURATION: jumlah hari masa berlakunya sandi dan pengguna harus membuat ulang sandi baru

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Meminta isi JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
      }
    },
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Untuk melihat kebijakan sandi pengguna, lihat Mencantumkan pengguna.

REST v1beta4

Untuk menetapkan kebijakan sandi pengguna, gunakan permintaan PUT dengan metode users:update.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance
  • USER_ID: ID pengguna
  • PASSWORD: sandi pengguna
  • FAILED_ATTEMPTS_CHECK: Tetapkan ke true untuk mengaktifkan pemeriksaan jumlah upaya login yang gagal saat akun terkunci
  • NUMBER_OF_ATTEMPTS: jumlah upaya login yang gagal saat akun terkunci
  • PASSWORD_EXPIRATION_DURATION: jumlah hari masa berlakunya sandi dan pengguna harus membuat ulang sandi baru

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Meminta isi JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {
      {
        "enableFailedAttemptsCheck" : "FAILED_ATTEMPTS_CHECK",
        "allowedFailedAttempts" : "NUMBER_OF_ATTEMPTS",
        "passwordExpirationDuration" : "PASSWORD_EXPIRATION_DURATION"
      }
    },
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Untuk melihat kebijakan sandi pengguna, lihat Mencantumkan pengguna.

Mencantumkan pengguna

Konsol

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Users dari menu navigasi SQL.

gcloud

Gunakan perintah daftar pengguna sql gcloud untuk mencantumkan pengguna instance ini:

gcloud sql users list \
--instance=INSTANCE_NAME

Perintah ini menampilkan Name, Host, dan Type autentikasi untuk setiap pengguna.

Selain itu, untuk jenis autentikasi bawaan, setelan dan status kebijakan sandi akan ditampilkan. Contoh:

    NAME    HOST    TYPE        PASSWORD_POLICY
    user1           BUILT_IN    {'allowedFailedAttempts': 2,
                                 'enableFailedAttemptsCheck': True,
                                 'passwordExpirationDuration': '7d',
                                 'status': {
                                   'locked': True,
                                   'passwordExpirationTime': '2022-07-01T19:53:45.822742904Z'
                                 }
                                }
   

REST v1

Untuk menampilkan daftar pengguna yang ditentukan untuk sebuah gunakan permintaan GET dengan metode users:list.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • instance-id: ID instance yang diinginkan

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Jika kebijakan sandi pengguna ditetapkan, bagian items dari respons akan menyertakan bagian passwordPolicy. Contoh kode berikut menunjukkan bagian passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d"
    }
  },
  ...
}
  

REST v1beta4

Untuk menampilkan daftar pengguna yang ditentukan untuk sebuah gunakan permintaan GET dengan metode users:list.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • instance-id: ID instance yang diinginkan

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#usersList",
  "items": [
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "sqlserver",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-1",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      "kind": "sql#user",
      "etag": "--redacted--",
      "name": "user-id-2",
      "host": "",
      "instance": "instance-id",
      "project": "project-id",
      "sqlserverUserDetails": {
        "serverRoles": [
          "CustomerDbRootRole"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

Jika kebijakan sandi pengguna ditetapkan, bagian items dari respons akan menyertakan bagian passwordPolicy. Contoh kode berikut menunjukkan bagian passwordPolicy.

  {
  ...
  "passwordValidationUserPolicy" : {
    {
      "enableFailedAttemptsCheck" : true,
      "allowedFailedAttempts" : 8,
      "passwordExpirationDuration" : "7d"
    }
  },
  ...
}
  

Klien psql

Pada prompt psql, cantumkan pengguna PostgreSQL:

SELECT * FROM pg_roles;

Menambahkan peran database ke pengguna yang sudah ada

Setelah membuat pengguna bawaan, Anda dapat menetapkan peran tambahan kepada pengguna tersebut. Peran ini ditambahkan ke peran yang sudah ada dan tidak menggantikan kumpulan peran yang sudah ada yang ditetapkan ke akun pengguna.

Sebelum Anda dapat menetapkan peran kepada pengguna di Cloud SQL untuk PostgreSQL, peran tersebut harus sudah ada. Jika Anda menggunakan peran kustom, Anda harus membuat peran di database PostgreSQL terlebih dahulu.

Untuk membuat peran di PostgreSQL, lihat Peran database.

Anda tidak dapat menetapkan peran sistem standar yang tercantum dalam Peran dan pengguna sistem Cloud SQL kepada pengguna PostgreSQL yang ada, kecuali untuk cloudsqlsuperuser.

gcloud

Untuk menetapkan peran kepada pengguna, gunakan perintah gcloud sql users assign-roles.

gcloud sql users assign-roles USER_NAME \
--instance=INSTANCE_NAME \
--type=BUILT-IN \
--database-roles=ROLE_1, ROLE_2, ..., ROLE_N

Ganti kode berikut:

  • USER_NAME: nama pengguna.
  • INSTANCE_NAME: nama instance.
  • ROLE_1, ROLE_2, ..., ROLE_N: peran database yang akan ditetapkan kepada pengguna.

REST v1

Untuk mengupdate pengguna, gunakan permintaan PUT dengan metode users:update.

Saat menetapkan peran database, Anda dapat memperbarui parameter kebijakan sandi pengguna.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda
  • INSTANCE_ID: ID instance yang diinginkan
  • USER_ID: ID pengguna
  • ROLE_1, ROLE_2 ..., ROLE_N: peran database yang akan ditetapkan kepada pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

Meminta isi JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Untuk mengupdate pengguna, gunakan permintaan PUT dengan metode users:update.

Saat menetapkan peran database, Anda dapat memperbarui parameter kebijakan sandi pengguna.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda
  • INSTANCE_ID: ID instance yang diinginkan
  • USER_ID: ID pengguna
  • ROLE_1, ROLE_2, ..., ROLE_N: peran database yang akan ditetapkan kepada pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

Meminta isi JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Mengganti peran database untuk pengguna yang sudah ada

Jika Anda ingin mengganti atau menghapus peran database dari pengguna, Anda harus mencabut semua peran yang ada sambil menentukan peran database baru, jika ada.

Secara default, saat Anda membuat pengguna PostgreSQL bawaan, pengguna tersebut diberi peran cloudsqlsuperuser secara otomatis. Jika Anda tidak ingin pengguna mempertahankan peran cloudsqlsuperuser, maka batalkan peran pengguna yang ada.

gcloud

Untuk mengganti peran database pengguna, Anda mencabut peran yang ada untuk pengguna dan menetapkan peran baru. Untuk mengganti peran database pengguna, gunakan perintah gcloud sql users assign-roles berikut.

gcloud sql users assign-roles USER_NAME \
--instance=INSTANCE_NAME \
--database-roles=ROLE_1,ROLE_2 \
--revoke-existing-roles

Ganti kode berikut:

  • USER_NAME: nama pengguna.
  • HOST: nama host pengguna sebagai alamat IP, rentang alamat, atau host apa pun (%) tertentu.
  • INSTANCE_NAME: nama instance.
  • ROLE_1, ROLE_2: peran database baru yang akan ditetapkan kepada pengguna.

Anda juga dapat mencabut peran yang ada untuk pengguna dan menetapkan nol peran. Contoh:

gcloud sql users assign-roles USER_NAME \
--instance=INSTANCE_NAME \
--database-roles= \
--revoke-existing-roles

REST v1

Untuk mengupdate pengguna, gunakan permintaan PUT dengan metode users:update.

Saat mengganti peran database pengguna, Anda dapat memperbarui parameter kebijakan sandi pengguna dalam permintaan API yang sama.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda
  • INSTANCE_ID: ID instance yang diinginkan
  • USER_ID: ID pengguna
  • ROLE_1, ROLE_2 ..., ROLE_N: peran database baru yang akan ditetapkan kepada pengguna. Anda juga dapat menentukan daftar kosong.

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users

Meminta isi JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ],
  "revokeExistingRoles": true
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Untuk mengupdate pengguna, gunakan permintaan PUT dengan metode users:update.

Saat mengganti peran database pengguna, Anda dapat memperbarui parameter kebijakan sandi pengguna dalam permintaan API yang sama.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda
  • INSTANCE_ID: ID instance yang diinginkan
  • USER_ID: ID pengguna
  • ROLE_1, ROLE_2, ..., ROLE_N: peran database baru yang akan ditetapkan kepada pengguna. Anda juga dapat menentukan daftar kosong.

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users

Meminta isi JSON:

{
  "name": "USER_ID",
  "type": "BUILT-IN",
  "databaseRoles": [
   "ROLE_1",
   "ROLE_2"
  ],
  "revokeExistingRoles": true
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2025-10-20T22:44:16.656Z",
  "startTime": "2025-10-20T22:44:16.686Z",
  "endTime": "2025-10-20T22:44:20.437Z",
  "operationType": "UPDATE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Mengubah sandi pengguna

Sandi pengguna dapat diubah dengan salah satu cara berikut.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Users dari menu navigasi SQL.
  4. Klik tindakan lainnya Ikon tindakan lainnya. untuk pengguna yang ingin Anda perbarui.
  5. Pilih Change Password.
  6. Tentukan sandi baru.
  7. Klik OK.

gcloud

Gunakan perintah gcloud sql users set-password untuk mengubah sandi.

Ganti kode berikut:

  • USER_NAME: Nama pengguna.
  • INSTANCE_NAME: Nama instance
gcloud sql users set-password USER_NAME \
--instance=INSTANCE_NAME \
--prompt-for-password

REST v1

Untuk mengubah sandi pengguna, gunakan permintaan PUT dengan metode users:update

Permintaan berikut memperbarui sandi untuk akun pengguna user_name.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • instance-id: ID instance yang diinginkan
  • user-id: ID pengguna
  • password: Sandi baru untuk pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=user-id

Meminta isi JSON:

{
  "name": "user-id",
  "password": "password"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

REST v1beta4

Untuk mengubah sandi pengguna, gunakan permintaan PUT dengan metode users:update

Permintaan berikut memperbarui sandi untuk akun pengguna user_name.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • project-id: project ID Anda
  • instance-id: ID instance yang diinginkan
  • user-id: ID pengguna
  • password: Sandi baru untuk pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=user-id

Meminta isi JSON:

{
  "name": "user-id",
  "password": "password"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Klien psql

Pada perintah psql, jalankan perintah ALTER USER.
  1. Buka kunci pengguna.
    ALTER USER USER_NAME WITH LOGIN;
  2. Ubah sandi dan masukkan sandi saat diminta.
    ALTER USER USER_NAME WITH PASSWORD PASSWORD;

Jika pengguna terkunci karena setelan kebijakan sandi, ubah sandi untuk membukanya. Pastikan bahwa sandi, saat diubah, mematuhi kebijakan sandi.

Menghapus kebijakan sandi pengguna

Anda dapat menghapus kebijakan sandi dari pengguna yang memiliki jenis autentikasi bawaan.

gcloud

Untuk menghapus kebijakan sandi pengguna, gunakan perintah gcloud sql users set-password-policy dan parameter --clear-password-policy.

Ganti kode berikut:

  • USER_NAME: nama pengguna
  • INSTANCE_NAME: nama instance
  • HOST: nama host pengguna sebagai alamat IP, rentang alamat, atau host apa pun (%).
gcloud sql users set-password-policy USER_NAME \
--instance=INSTANCE_NAME \
--host=HOST \
--clear-password-policy

REST v1

Untuk menghapus kebijakan sandi pengguna, gunakan permintaan PUT dengan metode pengguna:update.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance
  • USER_ID: ID pengguna
  • PASSWORD: sandi pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Meminta isi JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

Untuk menghapus kebijakan sandi pengguna, gunakan permintaan PUT dengan metode pengguna:update.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda.
  • INSTANCE_ID: ID instance
  • USER_ID: ID pengguna
  • PASSWORD: sandi pengguna

Metode HTTP dan URL:

PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?name=USER_ID

Meminta isi JSON:

{
  "name": "USER_ID",
  "password": "PASSWORD",
  "data":
  {
    "passwordValidationUserPolicy" : {}
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Menghapus pengguna

Pengguna default dapat menghapus pengguna lain.

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.

Konsol

  1. Di konsol Google Cloud , buka halaman Instance Cloud SQL.

    Buka Instance Cloud SQL

  2. Untuk membuka halaman Ringkasan instance, klik nama instance.
  3. Pilih Users dari menu navigasi SQL.
  4. Klik tindakan lainnya Ikon tindakan lainnya. untuk pengguna yang ingin Anda hapus.
  5. Pilih Remove, lalu pilih Remove lagi.

gcloud

Gunakan perintah gcloud sql users delete untuk menghapus pengguna.

Ganti kode berikut:

  • USER_NAME: Nama pengguna.
  • INSTANCE_NAME: Nama instance
gcloud sql users delete USER_NAME \
--instance=INSTANCE_NAME

REST v1

Permintaan di bawah menggunakan metode users:delete untuk menghapus akun pengguna yang ditentukan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda
  • INSTANCE_ID: ID instance yang diinginkan
  • USERNAME: Alamat email untuk pengguna atau akun layanan

Metode HTTP dan URL:

DELETE https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

Permintaan di bawah menggunakan metode users:delete untuk menghapus akun pengguna yang ditentukan.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: project ID Anda
  • INSTANCE_ID: ID instance yang diinginkan
  • USERNAME: Alamat email untuk pengguna atau akun layanan

Metode HTTP dan URL:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID/users?host=&name=USERNAME

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON seperti berikut:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2020-02-07T22:38:41.217Z",
  "startTime": "2020-02-07T22:38:41.217Z",
  "endTime": "2020-02-07T22:38:44.801Z",
  "operationType": "DELETE_USER",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

Klien psql

  1. Pada prompt psql, hapus pengguna:
    DROP ROLE USER_NAME;

    Untuk informasi selengkapnya tentang pernyataan DROP ROLE, lihat dokumentasi PostgreSQL.

Memperbarui properti pengguna

Untuk memperbarui properti pengguna seperti atribut, Anda harus menggunakan klien psql. Untuk informasi selengkapnya, lihat Peran Database dalam dokumentasi PostgreSQL.

Langkah berikutnya