MySQL adalah sistem manajemen basis data relasional yang populer dan banyak digunakan untuk berbagai aplikasi web. Salah satu tugas penting yang harus dilakukan oleh administrator basis data adalah membuat pengguna MySQL baru dan memberikan hak akses yang sesuai kepada mereka.
Hak akses atau privileges adalah aturan yang menentukan apa yang dapat dilakukan oleh pengguna terhadap basis data, tabel, kolom, atau objek lainnya. Dengan memberikan hak akses yang tepat, Anda dapat meningkatkan keamanan dan kinerja basis data Anda.
Dalam artikel ini, Bardimin akan membahas cara membuat pengguna MySQL baru dan memberikan hak akses melalui command line. Bardimin juga akan membahas beberapa perintah MySQL yang berguna untuk mengelola pengguna dan hak akses.
Langkah 1: Masuk ke MySQL sebagai Root
Sebelum Anda dapat membuat pengguna MySQL baru atau memberikan hak akses, Anda harus masuk ke MySQL sebagai pengguna root atau pengguna lain yang memiliki hak akses GRANT. Pengguna root adalah pengguna yang memiliki hak akses penuh terhadap semua basis data dan objek MySQL. Anda dapat masuk ke MySQL sebagai root dengan menggunakan perintah berikut:
mysql -u root -p
Perintah ini akan meminta Anda memasukkan kata sandi root yang Anda buat saat menginstal MySQL. Setelah Anda memasukkan kata sandi yang benar, Anda akan melihat prompt MySQL seperti ini:
mysql>
Langkah 2: Membuat Pengguna MySQL Baru
Setelah Anda masuk ke MySQL sebagai root, Anda dapat membuat pengguna MySQL baru dengan menggunakan perintah CREATE USER. Format umum dari perintah ini adalah sebagai berikut:
CREATE USER ‘username”host’ IDENTIFIED BY ‘password’;
Di sini, Anda harus mengganti username, host, dan password dengan nilai yang sesuai. username adalah nama pengguna yang ingin Anda buat. host adalah nama host atau alamat IP dari mana pengguna dapat terhubung ke MySQL.
Anda dapat menggunakan % untuk menunjukkan bahwa pengguna dapat terhubung dari mana saja, atau Anda dapat membatasi pengguna untuk terhubung dari host tertentu saja. password adalah kata sandi yang ingin Anda tetapkan untuk pengguna.
Sebagai contoh, jika Anda ingin membuat pengguna bernama user1 yang dapat terhubung dari mana saja dengan kata sandi pass1, Anda dapat menggunakan perintah berikut:
CREATE USER 'user1''%' IDENTIFIED BY 'pass1';
Jika perintah berhasil, Anda akan melihat pesan seperti ini:
Query OK, 0 rows affected (0.01 sec)
Anda dapat memeriksa apakah pengguna telah dibuat dengan benar dengan menggunakan perintah SELECT pada tabel mysql.user:
SELECT User, Host FROM mysql.user;
Perintah ini akan menampilkan semua pengguna MySQL yang ada dan host mereka. Anda akan melihat hasil seperti ini:
+------------------+-----------+ | User | Host | +------------------+-----------+ | root | localhost | | mysql.session | localhost | | mysql.sys | localhost | | user1 | % | +------------------+-----------+ 4 rows in set (0.00 sec)
Di sini, Anda dapat melihat bahwa pengguna user1 telah dibuat dengan host %.
Langkah 3: Memberikan Hak Akses kepada Pengguna MySQL Baru
Setelah Anda membuat pengguna MySQL baru, Anda harus memberikan hak akses yang sesuai kepada pengguna tersebut. Anda dapat memberikan hak akses dengan menggunakan perintah GRANT. Format umum dari perintah ini adalah sebagai berikut:
GRANT privileges ON database.table TO 'username''host';
Di sini, Anda harus mengganti privileges, database, table, username, dan host dengan nilai yang sesuai. privileges adalah hak akses yang ingin Anda berikan kepada pengguna. Anda dapat memberikan hak akses spesifik seperti SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX, EXECUTE, GRANT OPTION, dan lainnya.
Anda juga dapat memberikan hak akses global seperti ALL PRIVILEGES atau ALL yang mencakup semua hak akses yang ada. database adalah nama basis data yang ingin Anda berikan hak akses. Anda dapat menggunakan * untuk menunjukkan semua basis data. table adalah nama tabel yang ingin Anda berikan hak akses. Anda juga dapat menggunakan * untuk menunjukkan semua tabel. username dan host adalah nama pengguna dan host yang telah Anda buat sebelumnya.
Sebagai contoh, jika Anda ingin memberikan hak akses SELECT, INSERT, UPDATE, dan DELETE kepada pengguna user1 pada semua tabel di basis data db1, Anda dapat menggunakan perintah berikut:
GRANT SELECT, INSERT, UPDATE, DELETE ON db1.* TO 'user1''%';
Jika perintah berhasil, Anda akan melihat pesan seperti ini:
Query OK, 0 rows affected (0.01 sec)
Anda dapat memeriksa apakah hak akses telah diberikan dengan benar dengan menggunakan perintah SHOW GRANTS:
SHOW GRANTS FOR 'user1''%';
Perintah ini akan menampilkan semua hak akses yang dimiliki oleh pengguna user1. Anda akan melihat hasil seperti ini:
+--------------------------------------------------------------+
| Grants for user1% |
+--------------------------------------------------------------+
| GRANT USAGE ON *.* TO `user1``%` |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `db1`.* TO `user1``%`|
+--------------------------------------------------------------+
2 rows in set (0.00 sec)
Di sini, Anda dapat melihat bahwa pengguna user1 memiliki hak akses SELECT, INSERT, UPDATE, dan DELETE pada semua tabel di basis data db1.