Manajemen User MySQL GRANT – REVOKE

Biasanya MySQL secara default terinstall di mesin komputer anda dengan tanpa password jika anda install dengan paket XAMPP atau pada distribusi linux RedHat Base, terkecuali pada sistem Linux ubuntu ketika pertama kali service MySQL dijalankan setelah proses instalasi selesai, Anda akan  diminta untuk member password administrator user root.

Sama seperti user administrator Linux , user admin admin MySQL juga adalah root. Untuk login sebagai root jalankan perintah berikut pada terminal / command prompt


#mysql -u root

// atau dengan password jika user root telah di set passwordnya

#mysql -u root -p
Enter password: ( ISI DENGAN PASSWORD)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 324
Server version: 5.1.49-1ubuntu8 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

Table User MySQL

Informasi user MySQL berada dalam database mysql pada table user, berikut perintah menampilkan user, host dan password user


mysql> USE mysql;

mysql> SELECT user,host,password FROM user;

+------------------+-------------+-------------------------------------------+
| user             | host        | password                                  |
+------------------+-------------+-------------------------------------------+
| root             | localhost   |                                           |
| root             | darussalam  |                                           |
| root             | 127.0.0.1   |                                           |

Seting / Mengubah Password root

Jalankan perintah berikut untuk mengeset atau mengganti password user root, misal password user root akan di set passwordnya ‘admin’


mtsql> SET PASSWORD FOR root@localhost = password('admin');

Create Regular User MySQL

Untuk membuat user MySQL gunakan perintah GRANT


mysql>GRANT ALL PRIVILEGES ON latihan.* TO budi@localhost IDENTIFIED BY 'budi123';

mysql>GRANT SELECT,INSERT ON pustaka.* TO budi@localhost;

mysql>FLUSH PRIVILEGES;

Pada perintah diatas baris pertama adalah perintah untuk membuat user budi yang berasal dari komputer local ( budi hanya dapat mengakses dari komputer local) , user budi di set dengan hak akses semua privileges artinya bisa melakukan perintah SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER pada database latihan, dan budi di set passwordnya ‘budi123′.

Pada perintah kedua budi di set hanya mempunyai hak akses SELECT dan INSERT saja pada database pustaka. Dan budi login langsung ke database latihan atau pustaka dengan perintah berikut ini :


$ mysql -u budi latihan -p

// atau login ke database pustaka

$ mysql -u budi pustaka -p

Informasi hak akses ( privileges ) terhadap suatu database dapat dilihat di table db, berikut perintah sql
untuk melihat privileges user

mysql> select Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv from db ;
+-----------+----------+------+-------------+-------------+-------------+-------------+
| Host      | Db       | User | Select_priv | Insert_priv | Update_priv | Delete_priv |
+-----------+----------+------+-------------+-------------+-------------+-------------+
| localhost | akademik | root | Y           | Y           | Y           | Y           |
| localhost | latihan  | budi | Y           | Y           | Y           | Y           |
| localhost | joomla   | root | Y           | Y           | Y           | Y           |
| localhost | pustaka  | budi | Y           | Y           | N           | N           |
| localhost | pustaka  | dono | Y           | Y           | Y           | Y           |
+-----------+----------+------+-------------+-------------+-------------+-------------+

Mengahapus User dan Privileges User
Gunakan perintah REVOKE untuk menghapus privileges User, misalkan user budi akan dihapus privileges INSERT terhadap database
pustaka, berikut perintahnya

mysql> REVOKE SELECT,INSERT ON pustaka.* FROM budi@localhost;
mysql> FLUSH PRIVILEGES;

Sedangkan untuk menghapus user dapat dilakukan dengan rangkain perintah berikut ini

mysql> REVOKE ALL PRIVILEGES ON *.* FROM dono@localhost;
mysql> USE mysql;
mysql> DELETE FROM user WHERE user='dono';

Post a Response