Halaman ini menjelaskan cara mengaktifkan dan menggunakan autentikasi bawaan Cloud SQL.
Untuk ringkasan, lihat Autentikasi database bawaan Cloud SQL.Sebelum membuat pengguna
- Buat instance Cloud SQL Untuk mengetahui informasi selengkapnya, baca Membuat instance.
- Aktifkan kebijakan sandi untuk instance. Untuk mengetahui informasi selengkapnya, lihat Kebijakan sandi instance.
Jika Anda berencana menggunakan klien administratif database untuk mengelola pengguna, lakukan hal berikut:
Menghubungkan klien ke instance Anda. Lihat Opsi koneksi untuk aplikasi eksternal.
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 agar dapat terhubung ke instance.
Untuk Cloud SQL untuk MySQL, pengguna defaultnya adalahroot@%
. Hal ini menandakan bahwa pengguna database dengan nama pengguna root
dapat terhubung dari host mana pun (@%
).
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Users dari menu navigasi SQL.
- Temukan pengguna
root
, lalu pilih Ubah sandi dari menu tindakan lainnya .Pertimbangkan ketentuan yang tercantum untuk sandi yang berasal dari kebijakan sandi yang ditetapkan untuk instance.
- Berikan sandi yang kuat dan mudah diingat, 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 root \ --host=% \ --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
- password: Sandi untuk pengguna
Metode HTTP dan URL:
PUT https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/users?name=root&host=%25
Meminta isi JSON:
{ "name": "root", "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
- password: Sandi untuk pengguna
Metode HTTP dan URL:
PUT https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?name=root&host=%25
Meminta isi JSON:
{ "name": "root", "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.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Pengguna dari menu navigasi SQL.
- 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.
- Pilih Built-in authentication (default) dan tambahkan
informasi berikut:
- Nama pengguna.
- Opsional. Sandi. Berikan sandi yang kuat dan mudah diingat.
- Opsional. Kebijakan sandi pengguna.
- Pada bagian Nama host, defaultnya adalah Izinkan host apa pun, yang artinya pengguna dapat terhubung dari alamat IP mana pun. Secara opsional, pilih Batasi host berdasarkan alamat IP atau rentang alamat IP dan masukkan alamat IP atau rentang alamat IP di bagian Host. Setelah itu, pengguna hanya dapat terhubung dari alamat IP atau alamat yang ditentukan.
- Klik Tambahkan.
Pengguna yang dibuat pada instance yang menggunakan MySQL 8.0 atau yang lebih baru dan metode autentikasi Cloud SQL
diberikan peran cloudsqlsuperuser
secara otomatis dan memiliki hak istimewa berikut
yang terkait dengan peran ini: CREATEROLE
, CREATEDB
, dan LOGIN
.
Pengguna yang dibuat pada instance yang menggunakan MySQL 5.7 dan metode autentikasi Cloud SQL diberikan semua hak istimewa kecuali untuk FILE
dan SUPER
secara otomatis. Jika Anda perlu mengubah
hak istimewa untuk pengguna ini, gunakan perintah
BERI IZIN atau
CABUT IZIN pada
mysql
klien.
Untuk mengetahui informasi selengkapnya tentang akun pengguna dan hak istimewa ini, lihat Akun pengguna MySQL lainnya.
gcloud
Untuk membuat pengguna, gunakan perintah
gcloud sql users create
.
Ganti kode berikut:
- USER_NAME: Nama pengguna.
- HOST: Nama host pengguna sebagai alamat IP tertentu, rentang
alamat IP, atau host apa pun (
%
). - INSTANCE_NAME: Nama instance.
- PASSWORD: Sandi untuk pengguna.
gcloud sql users create USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME \ --password=PASSWORD
Pengguna yang dibuat pada instance yang menggunakan MySQL 8.0 atau yang lebih baru dan metode autentikasi Cloud SQL
diberikan peran cloudsqlsuperuser
secara otomatis dan memiliki hak istimewa berikut
yang terkait dengan peran ini: CREATEROLE
, CREATEDB
, dan LOGIN
.
Pengguna yang dibuat pada instance yang menggunakan MySQL 5.7 dan metode autentikasi Cloud SQL diberikan semua hak istimewa kecuali untuk FILE
dan SUPER
secara otomatis. Jika Anda perlu mengubah
hak istimewa untuk pengguna ini, gunakan perintah
BERI IZIN atau
CABUT IZIN pada
mysql
klien.
Untuk mengetahui informasi selengkapnya tentang akun pengguna dan hak istimewa ini, lihat Akun pengguna MySQL lainnya.
Batas panjang nama pengguna untuk Cloud SQL dan MySQL lokal; 32 karakter untuk MySQL 8.0 dan yang lebih baru, 16 karakter untuk versi sebelumnya.
Saat membuat pengguna, Anda dapat menambahkan parameter kebijakan sandi pengguna.
Terraform
Untuk membuat pengguna, gunakan resource Terraform.
Menerapkan perubahan
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
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).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
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.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
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
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- 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:
- Untuk menonaktifkan perlindungan penghapusan, di file konfigurasi Terraform Anda, tetapkan
argumen
deletion_protection
kefalse
.deletion_protection = "false"
- Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan
memasukkan
yes
pada prompt:terraform apply
-
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 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: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" }
Pengguna yang dibuat pada instance yang menggunakan MySQL 8.0 atau yang lebih baru dan metode autentikasi Cloud SQL
diberikan peran cloudsqlsuperuser
secara otomatis dan memiliki hak istimewa berikut
yang terkait dengan peran ini: CREATEROLE
, CREATEDB
, dan LOGIN
.
Pengguna yang dibuat pada instance yang menggunakan MySQL 5.7 dan metode autentikasi Cloud SQL diberikan semua hak istimewa kecuali untuk FILE
dan SUPER
secara otomatis. Jika Anda perlu mengubah
hak istimewa untuk pengguna ini, gunakan perintah
BERI IZIN atau
CABUT IZIN pada
mysql
klien.
Untuk mengetahui informasi selengkapnya tentang akun pengguna dan hak istimewa ini, lihat Akun pengguna MySQL lainnya.
Batas panjang nama pengguna untuk Cloud SQL dan MySQL lokal; 32 karakter untuk MySQL 8.0 dan yang lebih baru, 16 karakter untuk versi sebelumnya.
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 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 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: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" }
Pengguna yang dibuat pada instance yang menggunakan MySQL 8.0 atau yang lebih baru dan metode autentikasi Cloud SQL
diberikan peran cloudsqlsuperuser
secara otomatis dan memiliki hak istimewa berikut
yang terkait dengan peran ini: CREATEROLE
, CREATEDB
, dan LOGIN
.
Pengguna yang dibuat pada instance yang menggunakan MySQL 5.7 dan metode autentikasi Cloud SQL diberikan semua hak istimewa kecuali untuk FILE
dan SUPER
secara otomatis. Jika Anda perlu mengubah
hak istimewa untuk pengguna ini, gunakan perintah
BERI IZIN atau
CABUT IZIN pada
mysql
klien.
Untuk mengetahui informasi selengkapnya tentang akun pengguna dan hak istimewa ini, lihat Akun pengguna MySQL lainnya.
Batas panjang nama pengguna untuk Cloud SQL dan MySQL lokal; 32 karakter untuk MySQL 8.0 dan yang lebih baru, 16 karakter untuk versi sebelumnya.
Saat membuat pengguna, Anda dapat menambahkan parameter kebijakan sandi pengguna.
Klien mysql
- Untuk membuat pengguna, pada prompt
mysql
, gunakan perintah BUAT PENGGUNA berikut:CREATE USER 'USER_NAME'@'%' IDENTIFIED BY 'PASSWORD';
Secara opsional, tambahkan parameter kebijakan sandi pengguna.
- Anda dapat mengonfirmasi pembuatan pengguna dengan menampilkan tabel pengguna:
Untuk instance Generasi Kedua, output-nya terlihat mirip dengan contoh ini:SELECT user, host FROM mysql.user;
+----------+-----------+ | user | host | +----------+-----------+ | root | % | | newuser | % | +----------+-----------+ 1 row in set (0.01 sec)
- Berikan hak istimewa kepada pengguna dengan
perintah
GRANT
. Untuk mengetahui informasi selengkapnya, lihat Hak Istimewa yang Diberikan oleh MySQL. -
Kosongkan tabel
mysql.user
untuk memastikan bahwa perubahan tetap ada:FLUSH TABLES mysql.user;
Menetapkan kebijakan sandi pengguna
Anda dapat menetapkan kebijakan sandi dengan jenis autentikasi bawaan.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Users dari menu navigasi SQL.
- Klik tindakan lainnya untuk pengguna yang kebijakannya ingin Anda ubah.
- Pilih Edit kebijakan sandi.
- Pada bagian Kebijakan sandi, pilih satu atau beberapa
opsi berikut:
- Tetapkan masa berlaku sandi: Tentukan jumlah hari setelah masa sandi berakhir dan pengguna harus membuat sandi baru.
- Kunci setelah percobaan gagal: Tentukan berapa kali
pengguna dapat mencoba sandi yang salah sebelum akun terkunci.
Hanya didukung di Cloud SQL untuk MySQL 8.0 dan yang lebih baru.
- Wajib gunakan sandi saat ini jika sandi diubah: Pengguna wajib memasukkan sandi yang sudah ada saat mencoba mengubah sandi.
gcloud
Untuk menetapkan kebijakan sandi pengguna, gunakan perintah
gcloud sql users set-password-policy
.
Gunakan --password-policy-enable-password-verification
untuk mewajibkan
pengguna memasukkan sandi yang sudah ada saat mencoba mengubah
sandi. Untuk menonaktifkan parameter ini, gunakan --no-password-policy-enable-password-verification
.
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 \ --password-policy-enable-password-verification
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 setelah masa sandi berakhir dan pengguna harus membuat sandi baru
- VERIFY_PASSWORD: ditetapkan ke
true
untuk mewajibkan pengguna memasukkan sandi yang sudah ada saat mencoba mengubah sandi
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", "enablePasswordVerification" : "VERIFY_PASSWORD" } }, } }
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 setelah masa sandi berakhir dan pengguna harus membuat sandi baru
- VERIFY_PASSWORD: ditetapkan ke
true
untuk mewajibkan pengguna memasukkan sandi yang sudah ada saat mencoba mengubah sandi
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", "enablePasswordVerification" : "VERIFY_PASSWORD" } }, } }
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.
Klien mysql
Untuk menetapkan kebijakan sandi pengguna, pada prompt mysql
, gunakan perintah
UBAH PENGGUNA berikut:
ALTER USER USER_NAME FAILED_LOGIN_ATTEMPTS ALLOWED_FAILED_ATTEMPTS PASSWORD EXPIRE INTERVAL PASSWORD_EXPIRATION_DURATION DAY PASSWORD REQUIRE CURRENT;
Ganti kode berikut:
- USER_NAME: Nama pengguna.
- ALLOWED_FAILED_ATTEMPTS: Opsional: Berapa kali pengguna mencoba memasukkan sandi yang salah sebelum akun terkunci.
- PASSWORD_EXPIRATION_DURATION: Opsional: Tentukan jumlah hari berakhirnya sandi dan pengguna harus membuat sandi baru.
Gunakan opsi PASSWORD REQUIRE CURRENT
untuk mewajibkan
pengguna memasukkan sandi yang sudah ada saat mencoba mengubah
sandi.
Untuk melihat kebijakan sandi pengguna, lihat Mencantumkan pengguna.
Mencantumkan pengguna
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Pengguna dari menu navigasi SQL.
Daftar ini menunjukkan jenis
User name
,Host name
, danAuthentication
untuk setiap pengguna.Selain itu, untuk jenis autentikasi bawaan,
Password status
juga ditunjukkan.
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, 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", "enablePasswordVerification" : true } }, ... }
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 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", "enablePasswordVerification" : true } }, ... }
Klien mysql
Untuk menampilkan daftar pengguna MySQL, pada prompt mysql
, gunakan perintah
PILIH berikut:
SELECT user, host FROM mysql.user;
Untuk instance Generasi Kedua dengan hanya akun pengguna root
yang dikonfigurasi,
output-nya terlihat mirip dengan contoh ini:
+------+-----------+ | user | host | +------+-----------+ | root | % | +------+-----------+ 1 row in set (0.01 sec)
Contoh ini menunjukkan pengguna untuk instance dengan
pengguna root
. Pengguna ini dapat terhubung dari host mana pun (%
). Kolom sandi menunjukkan hash sandi.
Mengubah sandi pengguna
Sandi pengguna dapat diubah dengan salah satu cara berikut.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Users dari menu navigasi SQL.
- Klik tindakan lainnya untuk pengguna yang ingin Anda perbarui.
- Pilih Change Password.
- Tentukan sandi baru.
Selain itu, jika Anda ingin terus menggunakan sandi lama, pilih kotak centang Pertahankan sandi saat ini.
- Klik Oke.
gcloud
Gunakan perintah
gcloud sql users set-password
untuk mengubah sandi.
Ganti kode berikut:
- USER_NAME: Nama pengguna.
- HOST: Nama host pengguna sebagai alamat IP tertentu, rentang
alamat IP, atau host apa pun (
%
). - INSTANCE_NAME: Nama instance.
- PASSWORD: Sandi. Sandi harus memenuhi persyaratan kebijakan sandi, jika ditetapkan.
Secara opsional, untuk MySQL 8.0 dan yang lebih baru, Anda tetap dapat mengizinkan pengguna untuk menggunakan sandi lama
dengan opsi --retain-password
. Untuk menghapus
sandi lama, gunakan opsi --discard-dual-password
.
gcloud sql users set-password USER_NAME \ --host=HOST \ --instance=INSTANCE_NAME \ --password=PASSWORD
REST v1
Untuk mengubah sandi pengguna, gunakan permintaan PUT dengan metode users:update
Permintaan berikut memperbarui sandi untuk akun pengguna
user_name'@'%
. Jika pengguna memiliki host yang berbeda, Anda harus
mengubah panggilan dengan host yang benar.
Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:
- project-id: project ID Anda
- instance-id: ID instance yang diinginkan
- user-id: ID pengguna
- password: Sandi baru untuk pengguna
- dual-password: Salah satu nilai enum berikut:
DUAL_PASSWORD
: Pengguna dapat terus menggunakan sandi lama.NO_DUAL_PASSWORD
: Pengguna tidak dapat menggunakan sandi lama.NO_MODIFY_DUAL_PASSWORD
: Status sandi ganda tetap tidak berubah.
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'@'%
. Jika pengguna memiliki host yang berbeda, Anda harus
mengubah panggilan dengan host yang benar.
Sebelum menggunakan data permintaan apa pun, lakukan penggantian berikut:
- project-id: project ID Anda
- instance-id: ID instance yang diinginkan
- user-id: ID pengguna
- password: Sandi baru untuk pengguna
- dual-password: Salah satu nilai enum berikut:
DUAL_PASSWORD
: Pengguna dapat terus menggunakan sandi lama.NO_DUAL_PASSWORD
: Pengguna tidak dapat menggunakan sandi lama.NO_MODIFY_DUAL_PASSWORD
: Status sandi ganda tetap tidak berubah.
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 serupa 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 mysql
- Untuk mengubah sandi, pada prompt
mysql
, gunakan perintah TETAPKAN SANDI berikut:SET PASSWORD FOR USER_NAME = PASSWORD('auth_string');
- Kosongkan tabel
mysql.user
untuk memastikan bahwa perubahan tetap ada:FLUSH TABLES mysql.user;
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.
Sebelum menghapus pengguna, Anda harus menghapus semua objek yang dimilikinya atau menetapkan kembali kepemilikannya, dan mencabut hak istimewa apa pun yang telah diberikan peran pada objek lain.
Konsol
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Untuk membuka halaman Ringkasan instance, klik nama instance.
- Pilih Users dari menu navigasi SQL.
- Klik tindakan lainnya untuk pengguna yang ingin Anda hapus.
- Pilih Remove, lalu pilih Remove lagi.
gcloud
Gunakan perintah
gcloud sql users delete
untuk menghapus pengguna.
Ganti kode berikut:
- USER_NAME: Nama pengguna.
- HOST: Nama host pengguna sebagai alamat IP tertentu, rentang
alamat IP, atau host apa pun (
%
). - INSTANCE_NAME: Nama instance.
gcloud sql users delete USER_NAME \ --host=HOST \ --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 menerima respons JSON yang serupa 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 mysql
- Untuk menghapus pengguna, pada prompt
mysql
, gunakan perintah HAPUS PENGGUNA berikut:DROP USER 'USER_NAME'@'HOST_NAME';
- Kosongkan tabel
mysql.user
untuk memastikan bahwa perubahan tetap ada:FLUSH TABLES mysql.user;
Perbarui properti pengguna
Untuk memperbarui properti pengguna seperti host atau hak istimewa, Anda harus menggunakan klienmysql
. Untuk mengetahui informasi selengkapnya, lihat
Pengelolaan Akun Pengguna MySQL dalam
dokumentasi MySQL.
Langkah berikutnya
- Pelajari lebih lanjut cara kerja Cloud SQL dengan pengguna.
- Baca dokumentasi MySQL tentang pembuatan pengguna.
- Pelajari cara terhubung ke instance.