Mysql ialah salah satu aplikasi standar dalam pengembangan website, dengan Web Server Apache, dan bahasa pemrograman PHP. Mysql merupakan salah satu aplikasi RDBMS (Relational Database Management System) yang memiliki keunggulan dengan RDBMS lainnya seperti diantaranya MYSQL memiliki kecepatan dan proses data yang besar dan kompleks, tanpa ada penurunan performa instalisasi.
Hak Akses dan Privileges User Database Mysql
Untuk mengatur hak akses di MYSQL, pada dasarnya kita bisa menggunakan perintah Grant dan Revoke. Bentuk umum perintah GRANT dan REVOKE contoh sederhana:
GRANT priv_type
ON {tabel_nama | * | *.* | db_nama.*}TO user_name [IDENTIFIED BY 'password'] [WITH GRANT OPTION]REVOKE priv_typeON {tabel_name | * | *.* | db_name.*}FROM pengguna_name2.
Perintah Grant Dan Revoke digunakan untuk membuat user atau pengguna baru maupun mengatur hak akses user yang sudah ada dengan hak akses (privileges) tertentu. Tingkatan hak akses user dapat dibagi menjadi tingkat global (tersimpan di table mysql.user), database (tersimpan di table mysql.host dan mysql.db) table (tersimpan di table mysql.tables_priv) dan kolom (tersimpan ditable mysql.columns_priv)
Jadi setiap perubahan hak akses di MYSQL, termasuk menambahkan user baru dan, tidak akan berlaku sebelum di akhiri dengan perintah Flush Privileges. Privileges berfungsi supaya MYSQL membaca ulang database mysql dan semua perubahan yang ada di dalamnya tanpa restart ulang server MYSQL.
Berikut adalah hak-hak MYSQL yang dapat diberikan kepada user, yaitu:
No | Hak | Keterangan |
---|---|---|
1 | ALL | Memberikan akses penuh kepada seorang user kecuali perintah GRANT |
2 | alter | Mengizinkan user untuk menggunakan perintah ALTER TABLE |
3 | ALTER ROUTINE | Mengizinkan user untuk mengubah struktur (schema) dari sebuah fungsi tersimpan dan prosedur tersimpan |
4 | CREATE | Mengizinkan user untuk membuat fungsi tersimpan perintah CREATE USER,DROP USER,RENAME USER,dan REVOKE ALL PRIVILEGES |
5 | CREATE TEMPORARY TABLES | Mengizinkan user untuk menggnakan perintah CREATE TEMPORARY TABLES(HEAP) |
6 | CREATE VIEW | Mengizinkan User Untuk menggunakan perintah CREATE VIEW |
7 | DELETE | Mengizinkan User Untuk menggunakan perintah DELETE |
8 | DROP | Mengizinkan User Untuk menggunakan perintah DROP TABLE |
9 | EVENT | Mengizinkan User Untuk membuat penjadwalan perintah SQL.Hak ini terdapat pada ySQL versi 5.1.6 keatas. |
10 | EXECUTE | Mengizinkan User Untuk menjalankan fungsi tersimpan dan prosedur tersimpan. |
11 | FILE | Mengizinkan user untuk menggunakan perintah SELECT….INTO OUTFILE,LOAD DATA INFILE dan proses replikasi. |
12 | INDEX | Mengizinkan User untuk menggunakan perintah CREATE INDEX dan DROP INDEX. |
13 | INSERT | Mengizinkan User untuk menngunakan perintah INSERT. |
14 | LOCK TABLES | Mengizinkan user untuk mengunakan perintah LOCK TABLES |
15 | PROCESS | Mengizinkan user untuk mengunakan perintah SHOW FULL PROCESSLIST. |
16 | RELOAD | Mengizinkan user untuk menggunakan perintah FLUSH. |
17 | REPLICATION CLIENT | Mengizinkan user untuk mendapatkan informasi komputer Master atau Slave. |
18 | REPLICATION SLAVE | Mengizinkan user dari komputer Slave untuk membaca file binary Log pada computer Master untuk proses replikasi. |
19 | SELECT | Mengizinkan user untuk menggunakan perintah SELECT. |
20 | SHOW DATABASES | Mengizinkan user untuk menngunakan perintah SHOW DATABASES. |
21 | SHOW VIEW | Megizinkan user untuk menggunakan perintah SHOW CREATE VIEW. |
22 | SHUTDOWN | Mengizinkan user untuk menghentikan server MySQL melalui aplikasi mysqladmin |
23 | SUPER | Mengizinkan user untuk menggunakan perintah CHANGE MASTER,KILL,PURGE MASTER LOGS,dan SET GLOBAL,perintah dari aplikasi mysqladmin debug,dan mengizinkan untuk melakukan koneksi pada Server MySQL meskipun nilai dari variable max_connections dilampaui. |
24 | TRIGGER | Mengizinkan user untuk membuat dan menghapus sebuah objek trigger. Hak ini terdapat pada MySQL versi 5.1.6 keatas. |
25 | UPDATE | Mengizinkan user untuk menggunakan perintah UPDATE |
16 | USAGE | Mengizinkan user untuk login dalam server MySQL tetapi tanpa hak apapun (hanya login) |
27 | GRANT UPTION | Mengizinkan user untuk menggunakan printah GRANT |
Berikut saya berikan contoh cara membuat hak akses user di mysql, silahkan ikuti langkah-langkahnya. Pastikan anda sudah menginstall exampp.
A. Cara Mengakses MYSQL dengan CMD (Command Prompt)
1. Masuk directory pada CMD. Klik Start > Run shortut(win+R) > ketik “cmd” > enter.
2. Ketik perintah :
cd C:xamppmysqlbin > enter
C:xamppmysqlbin> mysql –u root
maka akan tampil seperti gambar dibawah ini.
3. Perintah keluar dari MYSQL ketik perintah :
mysql> exit atau quit
B. Cara Membuat dan Menghapus User di Mysql
1. Membuat user ketikan perintah ini (misalnya dengan nama user = hardifal, dan password = 12345)
mysql> create user hardifal@localhost identified by’12345′;
2. Menampilkan user yang telah dibuat ketik perintah : mysql> select user from mysql.user;
maka akan tampil seperti gambar dibawah ini
3 Untuk Menghapus User yang telah dibuat, ketik perintah :
mysql> drop user hardifal@localhost;
4. Lalu untuk menampilkan user yang telah dihapus, ketik perintah : select user from mysql.user;
C. Hak Akses User
1. Untuk membuat hak akses user, silahkan buat kembali dengan nama user = praktek, password = 12345
2. Untuk membuat hak akses user (Insert, Delete) gunakan perintah:
mysql> grant insert,delete on *.* to praktek identified by ‘12345’;
3. Untuk membuat hak akses user (hak penuh), gunakan perintah:
mysql> grant all on *.* to praktek identified by ‘12345’;
4. Menampilkan hak akses untuk user, gunakan perintah:
mysql> show grants for praktek
5. Untuk menghapus hak akses user, gunakan perintah:
mysql> revoke all on *.* from praktek;
mysql> flush privileges;
D. Cara Mengganti Password User
5. Untuk menghapus perintah untuk user misalnya ubah password menjadi = “sundulu” , ketik perintah:
mysql> set password for ‘praktikan’@’localhost’=password (sundulu’);
mysql> flush privileges;
Itulah cara membuat hak akses user di mysql sejelas mungkin, apabila ada pertanyaan atau problem bisa anda tanyakan dikolom komentar dibawah.