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.
Langkah 4: Mengubah atau Membatalkan Hak Akses dari Pengguna MySQL
Jika Anda ingin mengubah atau membatalkan hak akses dari pengguna MySQL, Anda dapat menggunakan perintah REVOKE. Format umum dari perintah ini adalah sebagai berikut:
REVOKE privileges ON database.table FROM 'username''host';
Di sini, Anda harus mengganti privileges, database, table, username, dan host dengan nilai yang sesuai. privileges adalah hak akses yang ingin Anda ubah atau batalkan dari pengguna. Anda dapat menggunakan hak akses spesifik atau global seperti yang telah dijelaskan sebelumnya. database, table, username, dan host adalah nama basis data, tabel, pengguna, dan host yang telah Anda berikan hak akses sebelumnya.
Sebagai contoh, jika Anda ingin membatalkan hak akses DELETE dari pengguna user1 pada semua tabel di basis data db1, Anda dapat menggunakan perintah berikut:
REVOKE DELETE ON db1.* FROM '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 dibatalkan 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 ON `db1`.* TO `user1``%` | +--------------------------------------------------------------+ 2 rows in set (0.00 sec)
Di sini, Anda dapat melihat bahwa hak akses DELETE telah dibatalkan dari pengguna user1 pada semua tabel di basis data db1.
Langkah 5: Menghapus Pengguna MySQL
Jika Anda ingin menghapus pengguna MySQL, Anda dapat menggunakan perintah DROP USER. Format umum dari perintah ini adalah sebagai berikut:
DROP USER 'username''host';
Di sini, Anda harus mengganti username dan host dengan nama pengguna dan host yang ingin Anda hapus. Perintah ini akan menghapus pengguna dan semua hak akses yang dimilikinya.
Sebagai contoh, jika Anda ingin menghapus pengguna user1, Anda dapat menggunakan perintah berikut:
DROP USER 'user1''%';
Jika perintah berhasil, Anda akan melihat pesan seperti ini:
Query OK, 0 rows affected (0.01 sec)
Anda dapat memeriksa apakah pengguna telah dihapus 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 | +------------------+-----------+ 3 rows in set (0.00 sec)
Di sini, Anda dapat melihat bahwa pengguna user1 telah dihapus dari daftar pengguna MySQL.
Artikel Menarik Lainnya
Kesimpulan
MySQL memiliki beberapa perintah yang berguna untuk mengelola pengguna dan hak akses. Dengan menggunakan perintah-perintah ini, Anda dapat mengatur basis data MySQL Anda dengan lebih baik dan lebih aman.
Semoga artikel ini bermanfaat bagi Anda. Terima kasih telah membaca.