MySQL adalah sistem manajemen basis data relasional open-source yang paling populer. MySQL Server memungkinkan kita untuk membuat banyak akun pengguna dan memberikan hak istimewa yang sesuai sehingga pengguna dapat mengakses dan mengelola basis data.

Membuat user MySQL cukup mudah, cukup dengan menjalankan satu perintah. Perlu di perhatikan bahwa membuat user MySQL harus memperhatikan faktor keamanan. Terutama Keamanan meliputi kebijakan pemilihan kata sandi yang kuat, dan senantiasa memeriksa hak akses setiap user yang Ada di MySQL.

Tutorial ini menjelaskan cara membuat akun pengguna MySQL dan memberikan hak istimewa.

Sebelum mulai

Sebelum mulai dengan tutorial ini, kami mengasumsikan bahwa Anda sudah menginstal server MySQL atau MariaDB di sistem Anda. Jika tidak, Anda dapat menginstalnya dengan mudah dengan mengikuti salah satu tutorial di bawah ini:

Semua perintah akan dieksekusi di dalam shell MySQL sebagai pengguna administratif (hak minimum yang diperlukan untuk membuat akun pengguna dan menentukan hak istimewanya adalah CREATE,USER dan GRANT) atau dengan akun root.

Untuk mengakses shell MySQL, ketik perintah berikut dan masukkan kata sandi pengguna root MySQL Anda ketika diminta:

mysql -u root -p

Jika Anda belum atau tidak menetapkan kata sandi untuk pengguna root MySQL, Anda dapat menghilangkan flag -p

Buat Akun baru User MySQL

Akun pengguna di MySQL terdiri dari nama pengguna dan hostname.

Untuk membuat akun pengguna MySQL baru, jalankan perintah berikut:

CREATE USER 'nama_user'@'localhost' IDENTIFIED BY 'password_user';

Ganti nama_user dengan nama pengguna baru yang Anda maksudkan, dan user_password dengan kata sandi pengguna. Pada perintah di atas bagian hostname diatur ke localhost yang berarti bahwa pengguna akan dapat terhubung ke server MySQL hanya dari localhost (Yaitu dari sistem di mana MySQL Server berjalan).

Untuk memberikan akses dari host lain, ubah bagian hostname (localhost) dengan IP mesin jarak jauh. Misalnya, untuk memberikan akses dari mesin dengan IP 10.5.0.4 Anda akan menjalankan:

CREATE USER 'user_database'@'10.5.0.4' IDENTIFIED BY 'password_user';

Untuk membuat pengguna yang dapat terhubung dari host mana pun, gunakan wildcard ‘%‘ sebagai bagian host:

CREATE USER 'user_database'@'%' IDENTIFIED BY 'password_user';

Opsi ini biasanya digunakan oleh para webmaster yang menginginkan MySQL server ditempat terpisah dengan web server.

Berikan Hak Akses Istimewa ke Akun Pengguna MySQL

Ada beberapa jenis hak istimewa yang dapat diberikan ke akun pengguna. Anda dapat menemukan daftar lengkap hak istimewa yang didukung oleh MySQL di sini.

Hak istimewa yang paling umum digunakan adalah:

  • ALL PRIVILEGES – memberikan semua hak istimewa ke akun pengguna.
  • CREATE – akun pengguna diizinkan untuk membuat database dan tabel.
  • DROP – akun pengguna diizinkan untuk menghapus database dan tabel.
  • DELETE – akun pengguna diizinkan untuk menghapus baris dari tabel tertentu.
  • INSERT – akun pengguna diizinkan untuk memasukkan baris ke tabel tertentu.
  • SELECT – akun pengguna diizinkan untuk membaca database.
  • UPDATE – akun pengguna diizinkan untuk memperbarui baris tabel.

Untuk memberikan hak khusus ke akun pengguna, Anda dapat menggunakan sintaks berikut:

GRANT permission1, permission2 ON nama_database.nama_tabel TO 'user_database'@'localhost';

Berikut ini beberapa contohnya:

  • Memberikan semua hak istimewa ke akun pengguna untuk database tertentu :
    GRANT ALL PRIVILEGES ON nama_database.* TO 'user_database'@'localhost';
  • Memberikan semua hak istimewa ke akun pengguna untuk semua database :
    GRANT ALL PRIVILEGES ON *.* TO 'user_database'@'localhost';
  • Berikan semua hak istimewa ke akun pengguna untuk tabel tertentu dari database:
    GRANT ALL PRIVILEGES ON nama_database.nama_tabel TO 'user_database'@'localhost';
  • Berikan hanya beberapa hak istimewa ke akun pengguna untuk database tertentu:
    GRANT SELECT, INSERT, DELETE ON nama_database.* TO user_database@'localhost';

Tampilkan Hak Akses User MySQL

Untuk menemukan hak istimewa yang diberikan kepada akun pengguna MySQL tertentu, gunakan pernyataan SHOW GRANTS:

SHOW GRANTS FOR 'user_database'@'localhost';
+---------------------------------------------------------------------------+
| Grants for database_user@localhost                                       |
+---------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'database_user'@'localhost'                        |
| GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' |
+---------------------------------------------------------------------------+
2 rows in set (0.00 sec)

Revoke (Cabut) Hak Istimewa dari Akun Pengguna MySQL

Sintaks untuk mencabut satu atau lebih hak istimewa dari akun pengguna hampir sama dengan ketika memberikan hak istimewa.

Misalnya untuk mencabut semua hak istimewa dari akun pengguna untuk database tertentu, gunakan perintah berikut:

REVOKE ALL PRIVILEGES ON nama_database.* TO 'user_database'@'localhost';

Hapus Akun Pengguna MySQL

Untuk menghapus akun pengguna MySQL, gunakan pernyataan DROP USER:

DROP USER 'user_database'@'localhost'

Perintah di atas akan menghapus akun pengguna dan hak istimewanya.

Kesimpulan

Tutorial ini hanya mencakup hal dasar manajemen database MySQL, tetapi merupakan awal yang baik bagi siapa saja yang ingin belajar cara membuat akun pengguna MySQL baru dan memberikan hak istimewa.

Lihat juga panduan lain tentang mengolah dan mengatur database :

Jika Anda lebih suka antarmuka web daripada baris perintah, Anda dapat menginstal phpMyAdmin dan mengelola database dan pengguna MariaDB Anda melalui itu.