Pada tutorial kali ini kita akan membahas bagaimana cara membuat user di mysql dan hak akses di mysql, fitur user dan hak akses ini pada dasarnya terkait keamanan, jadi tiap-tiap user memiliki database dan akses yang berbeda sehingga pada tiap user memiliki batas tertentu dapat meminimalisir kesalahan dengan fitur hak akses ini.
Selain itu fitur user ini juga bisa dimanfaatkan untuk mengatur kepemilikan database, sehingga tidak semua user dapat melihat database, hanya yang telah diizinkan dapat melihat database tertentu sesuai dengan aksesnya masing-masing.
Cara Membuat User Di MySQL
User (pengguna) adalah pemilik satu atau lebih database jika aksesnya diberikan, dan berhak melakukan apapun selama akses yang diberikan melingkupinya, apakah user tersebut seorang Administrator atau bukan.
Untuk dapat membuat user di MySQL bisa dengan cara menggunakan query dibawah ini.
CREATE USER <user_name> IDENTIFIED BY <password>;
Perintah diatas “hanya” untuk membuat user saja, tidak ada akses terhadap database manapun sehingga tentunya apabila di cek tidak menampilkan database.
CREATE USER aris IDENTIFIED BY 'N(q[*$)L{]2Ujy>_';
Setelah itu coba login menggunakan akun yang sudah dibuat diatas, dan jalankan perintah dibawah ini.
SHOW DATABASES;
Jika sudah maka seharusnya akan tampil seperti gambar dibawah ini.
Karena belum memiliki hak akses di mysql tentunya user yang baru kita buat tadi tidak akan dapat menjalakan query apapun, dan akan ditolak oleh sistem, sebagai contoh jalankan perintah dibawah ini.
CREATE DATABASE database_contoh;
Maka kamu akan mendapatkan pesan kesalahan seperti gambar dibawah ini.
Nah untuk dapat menentukan database mana untuk user yang mana bisa dengan menambahkan akses ke user yang ingin diberikan akses ke database tertentu. Dengan begitu user manapun tentunya tidak seenaknya masuk ke database yang bukan miliknya.
Memahami Hak Akses Di MySQL
Hak akses adalah batasan-batasan pengguna pada suatu program, dengan batasan-batasan tersebut kita dapat meminimalisir kesalahan atau juga bisa untuk menentukan posisi seseorang bahwa mereka memiliki akses berdsarkan jabatannya.
Berikut ini adalah daftar hak akses yang umumnya sering digunakan oleh engineer database dimana hak akses ini dapat diberikan dan juga dihapus oleh administrator dan juga untuk sistem berbasis web pada umumnya.
Hak Akses | Keterangan |
ALL | Memberikan semua hak akses kecuali GRANT OPTION dan PROXY |
ALTER | Digunakan untuk memodifikasi database maupun table |
CREATE | Digunakan untuk membuat database maupun table |
CRATE TEMPORARY TABLE | Digunakan untuk membuat table temporari |
DELETE | Digunakan untuk menghapus data |
DROP | Digunakan untuk menghapus database, table, user |
FILE | Digunakan untuk membaca atau membuat file |
INDEX | Digunakan untuk membuat atau menghapus Indeks |
INSERT | Digunakan untuk memasukkan data ke table |
UPDATE | Digunakan untuk mengubah data |
SELECT | Digunakan untuk menampilkan data |
TRIGGER | Digunakan untuk membuat trigger |
EXECUTE | Digunakan untuk menjalankan suatu prosedur |
EVENT | Digunakan untuk membuat event |
LOCK TABLE | Digunakan untuk mengunci table |
PROCESS | Memungkinkan pengguna dapat melihat semua proses |
REFERENCE | Digunakan untuk membuat foreign key |
SHOW DATABASES | Digunakan untuk melihat semua database yang tersedia |
SHOW TABLES | Digunakan untuk melihat semua table yang tersedia didalam database |
Dari daftar hak akses diatas sebetulnya masih banyak lagi yang bisa digunakan, jika kamu ingin melihat daftar atau mempelajari keseluruhan hak akses bisa langsung mengunjungi Dokumentasi MySQL.
Memberikan Hak Akses Kepada User
Nah untuk dapat membuat hak akses di mysql kamu bisa perhatikan daftar hak akses dari tabel diatas, maksudnya adalah akses apa saja yang ingin diberikan untuk user baru yang akan dibuat, sehingga untuk masalah keamanan user tersebut tidak serta merta melakukan perintah krusial, berikut ini cara memberikan hak akses kepada user di mysql.
GRANT <hak akses> ON <nama_database atau * (semua)>.<nama_tabel atau * (semua)> TO <user_name>
Sebagai contoh penulis telah miliki database sekolah dan ada beberapa tabel didalamnya, dimana penulis akan memberikan akses user yang baru kita buat tadi ke tabel sekolah yang sudah tersedia sebelumnya. Namun perlu di ingat, untuk memberikan hak akses kamu harus masuk sebagai administrator.
GRANT ALL ON sekolah.* TO aris;
Perintah itu akan memberikan seluruh akses query dan seluruh tabel yang ada didalam database. Sehingga nantinya user aris dapat melakukan apapun ke database aris beserta isinya termasuk dapat membuat database atau tabel baru. Berikut ini jika penulis masuk sebagai user aris dan melihat apakah database sekolah sudah masuk kedalam hak akses atau belum.
Jika diperhatikan ternyata database sekolah sudah masuk ke user aris dan user tersebut dapat melakukan apapun setingkat dengan administrator, lalu bagaimana jika ingin membatasi akses, misalnya saja hanya memperbolehkan melihat dan menambah data saja, nemun sebelumnya kita harus hapus terlebih dahulu hak akses yang telah dimiliki oleh user aris dengan menjalankan query dibawah ini.
REVOKE ALL ON sekolah.* FROM aris;
Query diatas digunakan untuk mencopot atau menghapus hak akses yang dimiliki oleh user yang sudah diberikan hak akses sebelumnya. Lalu untuk memberikan beberapa hak akses ke user dapat menggunakan query seperti dibawah ini.
GRANT INSERT, SELECT ON sekolah.* TO aris;
Kamu dapat memisahkan hak akses dengan mengguna koma (,) sebagai pemisah antara hak akses satu dengan yang lainnya. Coba jalankan query SELECT
pada tabel database yang sudah kamu berikan hak akses ke user baru.
Maka perintah SELECT
seharusnya berjalan dengan lancar, tapi bagaimana dengan DELETE
? Tentu MySQL akan mengembalikan pesan kesalahan bahwa kamu tidak di ijinkan untuk menjalankan perintah tersebut, seperti pada gambar dibawah ini.
Cara Menghapus User Di MySQL
Jika kamu sudah memhami bagaimana cara membuat user di mysql tentunya kamu harus mengetahui juga bagaimana cara menghapus user di MySQL, karena tidak selamanya orang yang bersama kamu bekerja ditempat yang sama, adakalanya dia akan keluar dan tindakan yang paling tepat untuk mengamankan data dari hal-hal yang tidak di inginkan adalah menghapus akses user yang tidak terpakai. Berikut ini query yang bisa digunakan.
DROP USER <user_name>;
Sebagai contoh penulis akan menghapus user di mysql dengan user name aris yang sudah dibuat sebelumnya menggunakan perintah dibawah ini.
DROP USER aris;
Jika sudah menjalankan perintah diatas kamu cobalah untuk masuk menggunakan user aris, jika sudah benar tentunya akan mendapatkan pesan kesalahan seperti dibawah ini.
Demikian tutorial ini semoga bermanfaat, dan semoga bertemu lagi ditutorial selanjutnya.