Memberikan hak akses atau grant pirivileges pada MySQL sebenarnya sangat mudah. Namun, meskipun mudah tidak semua orang dapat mengingatnya dengan baik. Pada tulisan ini kita akan membahas mengenai cara memberikan hak asks pada user database MySQL, atau istilahnya adalah grant privileges.
Diasumsikan teman-teman sudah bisa login ke MySQL dengan akun root. Kenapa root? Karena root memiliki hak akses untuk mengatur manajemen user, hal ini tentunya by default. User lain bisa saja memiliki all privileges seperti root, kalau memang sudah diatur.
Untuk masuk ke MySQL, teman-teman bisa membuka terminal jika menggunakan MacOS atau Linux, dan bisa juga lewat CMD atau Git Bash jika di Windows.
Lalu masuk menggunakan perintah:
#mysql –uroot –p
Lalu masukan password root teman-teman Setelah login berhasil aka nada tulisan Mysql>.
Membuat User Baru
Setelah berhasil menggunakan akun root, kita bisa membuat user dengan perintah dibawah ini.
Mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Pada perintah diatas,’newuser’ adalah username baru yang akan dibuat, dan localhost adalah hostnya. Tentunya teman-teman bisa mengganti localhost dengan host client mysql teman-teman, atau menggantinya dengan % jika ingin bsa diakses dimana-mana. Jika menggunakan localhost, maka yang bisa mengakses hanya dari server yang sama. Kemudian, password adalah password untuk user baru tersebut.
Memberikan hak akses
Misalnya kita akan memberikan semua privileges ke user tadi, berarti kita bisa menggunakan perintah sebagai berikut:
Mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
*.* berarti semua database dan semua kolom, missal hanya ingin memberikan akses ke satu database saja, teman-teman bisa membuat perintah seperti ini:
Mysql> GRANT ALL PRIVILEGES ON nama_db . * TO 'newuser'@'localhost';
Kemduian, all privileges berarti semua privileges dari menambah, mengubah, dan lain sebagainya. Teman-teman bisa menggantinya dengan list berikut:
|
Hak Akses |
Keterangan |
|
ALL [PRIVILEGES] |
Memberikan seluruh hak akses, kecuali GRANT OPTION |
|
ALTER |
Hak akses untuk merubah tabel (ALTER TABLE) |
|
ALTER ROUTINE |
Hak akses untuk merubah stored routines |
|
CREATE |
Hak akses untuk membuat tabel dan database |
|
CREATE ROUTINE |
Hak akses untuk membuat dan menghapus stored routine |
|
CREATE TABLESPACE |
Hak akses untuk membuat, mengubah dan menghapus tablespaces dan log file |
|
CREATE TEMPORARYTABLES |
Hak akses untuk membuat tabel sementara CREATE TEMPORARY TABLE |
|
CREATE USER |
Hak akses untuk membuat, menghapus, dan mengubah user (CREATE USER, DROP USER, RENAME USER, dan REVOKE ALL PRIVILEGES) |
|
CREATE VIEW |
Hak akses untuk membuat dan mengubah views |
|
DELETE |
Hak akses untuk menghapus data (DELETE) |
|
DROP |
Hak akses untuk menghapus database, tabel dan view |
|
EVENT |
Hak akses untuk membuat event |
|
EXECUTE |
Hak akses untuk menjalankan stored routines |
|
FILE |
Hak akses untuk membuat server membaca maupun membuat file |
|
GRANT OPTION |
Hak akses untuk memberikan hak akses kepada user lainnya. |
|
INDEX |
Hak akses untuk membuat dan menghapus index |
|
INSERT |
Hak akses untuk menambahkan data (query INSERT) |
|
LOCK TABLES |
Hak akses untuk mengunci tabel (LOCK TABLES) |
|
PROCESS |
Hak akses untuk melihat seluruh proses (SHOW PROCESSLIST) |
|
PROXY |
Hak akses untuk proses proxy |
|
REFERENCES |
Belum diimplementasikan |
|
RELOAD |
Hak akses untuk operasi FLUSH |
|
REPLICATION CLIENT |
Hak akses untuk mengubah urutan master dan slave server |
|
REPLICATION SLAVE |
Hak akses untuk server replikasi untuk membaca log event biner dari server master |
|
SELECT |
Hak akses untuk melihat data (query SELECT) |
|
SHOW DATABASES |
Hak akses untuk melihat seluruh database (SHOW DATABASES) |
|
SHOW VIEW |
Hak akses untuk melihat pembuatan view (SHOW CREATE VIEW) |
|
SHUTDOWN |
Hak akses untuk mysqladmin shutdown |
|
SUPER |
Hak akses untuk fungsi administrasi server, seperti CHANGE MASTER TO, KILL, PURGE BINARY LOGS, SET GLOBAL, dan perintah debug mysqladmin |
|
TRIGGER |
Hak akses untuk operasi trigger |
|
UPDATE |
Hak akses untuk memperbaharui data (UPDATE) |
|
USAGE |
Sama artinya dengan ?tanpa hak akses? |
Baik, demikian sharing kali ini tentang MySQL. Kita akan membahas yang lain di tulisan berikutnya.
