Membuat dan mengelola pengguna

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

Untuk informasi tambahan tentang pengguna yang Anda buat menggunakan Cloud SQL, lihat Pengguna SQL Server lainnya.

Sebelum membuat pengguna

  1. Buat instance Cloud SQL Untuk mengetahui informasi selengkapnya, baca Membuat instance
  2. Jika Anda berencana menggunakan klien administratif database untuk mengelola pengguna, konfigurasi pengguna default pada instance dengan menetapkan sandi. Lihat Menetapkan 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.

Cloud SQL untuk SQL Server pengguna defaultnya adalah sqlserver.

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 sqlserver 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 sqlserver \
--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 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": "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.

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 Tambahkan akun pengguna.
  5. Di halaman Tambahkan akun pengguna ke instance instance_name, tambahkan informasi berikut:
    • Nama pengguna.
    • Sandi (opsional).
  6. Klik Tambahkan.

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.
gcloud sql users create USER_NAME \
--instance=INSTANCE_NAME \
--password=PASSWORD

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

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.instance.name
  password = random_password.pwd.result
}

Menerapkan perubahan

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

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 project Google Cloud 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 terbaru dengan menjalankan perintah berikut dan memasukkan yes pada perintah:
    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 yang diinginkan
  • user-id: ID pengguna
  • password: Sandi untuk 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"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip 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:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22: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"
}

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

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 yang diinginkan
  • user-id: ID pengguna
  • password: Sandi untuk 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"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip 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:44:16.656Z",
  "startTime": "2020-02-07T22:44:16.686Z",
  "endTime": "2020-02-07T22: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"
}

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

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

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, 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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip 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"
        ]
      }
    },
    {
      ...
    },
    {
      ...
    }
  ]
}

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 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",
  "retainedPassword" : "dual-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 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",
  "retainedPassword" : "dual-password"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip 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"
}

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, 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, 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": "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"
}

Memperbarui properti pengguna

Untuk informasi yang terkait dengan peran tingkat database di SQL Server, lihat Penggunaan Peran Tingkat Database dalam dokumentasi SQL Server.

Langkah selanjutnya