Tentang pengguna MySQL

Halaman ini menjelaskan cara kerja Cloud SQL dengan pengguna MySQL. Akun pengguna MySQL memberikan keamanan dengan mengontrol akses ke database MySQL.

Untuk dokumentasi lengkap tentang pengguna MySQL, lihat dokumentasi MySQL. Untuk informasi tentang membuat dan mengelola pengguna Cloud SQL, lihat Membuat dan Mengelola Pengguna.

Mengapa Anda memerlukan akun pengguna MySQL

Dengan akun pengguna MySQL, Anda dapat login dan mengelola instance Cloud SQL. Akun pengguna juga diperlukan agar aplikasi dapat mengakses instance Anda.

Pembatasan superuser

Di Cloud SQL, pelanggan tidak dapat membuat atau mengakses pengguna dengan atribut superuser.

Karena merupakan layanan terkelola, Cloud SQL untuk MySQL membatasi akses ke prosedur dan tabel sistem tertentu.

Hak istimewa Data Manipulation Language (DML) dan Data Definition Language (DDL) dibatasi pada beberapa tabel skema.

Berikut adalah daftar tabel sistem MySQL 5.6 dalam skema mysql yang memerlukan izin tertulis: audit_log_rules_expanded, audit_log_supported_ops, audit_log_rules, cloudsql_replica_index, db, event, func, heartbeat, plugin, proc, user, and tables_priv.

Untuk MySQL 5.7, berikut adalah daftarnya: audit_log_rules_expanded, audit_log_supported_ops, audit_log_rules, cloudsql_replica_index, db, event, func, gtid_executed, heartbeat, plugin, proc, user, and tables_priv.

Untuk informasi terkait tentang MySQL 8.0, lihat Hak istimewa pengguna MySQL 8.0 (cloudsqlsuperuser).

Format akun pengguna MySQL

Akun pengguna MySQL memiliki dua komponen: nama pengguna dan nama host. Nama pengguna mengidentifikasi pengguna, dan nama host menentukan host yang dapat terhubung dengan pengguna. Nama pengguna dan nama host digabungkan untuk membuat akun pengguna:

'<user_name>'@'<host_name>'

Anda dapat menentukan alamat IP atau rentang alamat tertentu untuk nama host, atau menggunakan karakter persen ("%") agar nama host tidak dibatasi. Perhatikan bahwa jika Anda terhubung ke instance menggunakan alamat IP, Anda harus menambahkan alamat IP klien sebagai Alamat Resmi, meskipun nama host pengguna tidak dibatasi.

Akun pengguna ditentukan oleh nama pengguna dan nama host. Misalnya, 'user'@'%' adalah akun pengguna yang berbeda dengan 'user'@'localhost'.

Pengguna MySQL default

Setelah dibuat, instance MySQL memiliki satu akun pengguna default: 'root'@'%'. Anda menggunakan akun ini untuk terhubung ke dan mengelola instance database untuk pertama kalinya. Pengguna default memiliki semua hak istimewa database kecuali untuk SUPER dan FILE. Di Cloud SQL, Anda tidak dapat mengganti nama 'root'@'%'.

Setelan default untuk root'@'% itu tidak memiliki sandi, dan MySQL tidak mengharuskan Anda menggunakan sandi untuk root'@'%. Namun, karena root'@'% ada di sebagian besar penginstalan MySQL, root'@'% pengguna adalah target umum untuk akses tidak sah. Setiap orang atau program yang mendapatkan akses ke instance Anda memiliki akses yang hampir tidak terbatas ke, dan kontrol atas, instance dan data Anda. Karena alasan ini, sebaiknya konfigurasikan pengguna root'@'% Anda dengan sandi yang kuat atau hapus pengguna ini. Untuk mendapatkan bantuan dalam mengonfigurasi akun pengguna default, lihat Konfigurasi akun pengguna default.

Pengguna sistem

Ada tujuh pengguna sistem:

  • root@localhost, root@127.0.0.1, root@::1

    Digunakan untuk menyediakan layanan database terkelola.

  • cloudsqlreplica@%

    Digunakan sebagai pengguna replikasi untuk replika.

  • cloudsqlimport@localhost

    Digunakan untuk impor data.

  • cloudsqlexport@localhost

    Digunakan untuk ekspor data.

  • cloudsqloneshot

    Digunakan untuk operasi database lainnya.

  • cloudsqlapplier@localhost

    Digunakan untuk operasi replikasi dalam replika server eksternal atau replikasi versi lintas utama.

  • cloudsqlobservabilityadmin

    Digunakan untuk kemampuan observasi database.

Anda tidak dapat menghapus atau mengubah pengguna ini.

Akun pengguna MySQL lainnya

Anda juga dapat membuat akun pengguna MySQL lainnya. Ini adalah praktik yang baik karena memungkinkan Anda menggunakan akun pengguna MySQL yang berbeda untuk tujuan yang berbeda.

Anda dapat membuat akun pengguna dengan nama host yang dibatasi, atau menggunakan perintah SQL untuk membatasi hak istimewa pada akun pengguna.

Untuk mengetahui informasi selengkapnya tentang nama akun pengguna, lihat dokumentasi MySQL. Untuk membuat pengguna MySQL baru, lihat Buat pengguna.

Hak istimewa pengguna MySQL 5.6 dan 5.7

MySQL menyediakan hak istimewa terperinci yang dapat Anda berikan atau hapus untuk pengguna. Hal ini memungkinkan Anda mengontrol tindakan yang dapat dilakukan pengguna pada instance.

Pengguna yang dibuat menggunakan Cloud SQL memiliki hak istimewa yang sama dengan pengguna MySQL default. Anda dapat mengubah hak istimewa pengguna menggunakan pernyataan GRANT atau REVOKE.

Saat menggunakan mysql klien untuk membuat pengguna, Anda harus secara eksplisit memberikan hak istimewa kepada pengguna tersebut dengan pernyataan GRANT

Untuk mengetahui informasi selengkapnya tentang hak istimewa yang didukung oleh MySQL, lihat Hak Istimewa yang Diberikan oleh MySQL.

Hak istimewa pengguna MySQL 8.0 (cloudsqlsuperuser)

Di MySQL 8.0 untuk Cloud SQL, saat Anda membuat pengguna baru, pengguna tersebut otomatis diberi peran cloudsqlsuperuser. Peran cloudsqlsuperuser role adalah peran Cloud SQL yang berisi sejumlah hak istimewa MySQL. Peran ini memberi pengguna semua MySQL kepada pengguna hak istimewa statis, kecuali untuk SUPER and FILE.

Peran cloudsqlsuperuser hanya mendukung hak istimewa dinamis berikut berdasarkan versi minor MySQL 8.0:

MySQL 8.0.18

MySQL 8.0.26

MySQL 8.0.27

MySQL 8.0.28

MySQL 8.0.29 (tidak digunakan lagi)

MySQL 8.0.30 dan yang lebih baru

Peran cloudsqlsuperuser tidak mendukung operasi Data Definition Language (DDL) apa pun di database sistem mysql system database.

Untuk melihat daftar lengkap hak istimewa yang diberikan kepada peran cloudsqlsuperuser, jalankan pernyataan SHOW GRANTS di klien mysql:

SHOW GRANTS FOR 'cloudsqlsuperuser'

Langkah selanjutnya