Membuat User Dan Hak Akses Di MySQL

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.

Membuat user di mysql

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.

Query delete di mysql

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 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 AksesKeterangan
ALLMemberikan semua hak akses kecuali GRANT OPTION dan PROXY
ALTERDigunakan untuk memodifikasi database maupun table
CREATEDigunakan untuk membuat database maupun table
CRATE TEMPORARY TABLEDigunakan untuk membuat table temporari
DELETEDigunakan untuk menghapus data
DROP Digunakan untuk menghapus database, table, user
FILEDigunakan untuk membaca atau membuat file
INDEXDigunakan untuk membuat atau menghapus Indeks
INSERTDigunakan untuk memasukkan data ke table
UPDATEDigunakan untuk mengubah data
SELECTDigunakan untuk menampilkan data
TRIGGERDigunakan untuk membuat trigger
EXECUTEDigunakan untuk menjalankan suatu prosedur
EVENTDigunakan untuk membuat event
LOCK TABLEDigunakan untuk mengunci table
PROCESSMemungkinkan pengguna dapat melihat semua proses
REFERENCEDigunakan untuk membuat foreign key
SHOW DATABASESDigunakan untuk melihat semua database yang tersedia
SHOW TABLESDigunakan 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.

Melihat database di mysql

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.

Menjalankan perintah delete di mysql

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.

menghapus user di mysql

Demikian tutorial ini semoga bermanfaat, dan semoga bertemu lagi ditutorial selanjutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.