Query Pembuatan User dan Hak Akses MySQL
9. Merubah dan Menghapus Password
Tutorial Belajar MySQL Part 37: Cara Merubah dan Menghapus Password User MySQL
Seperti yang telah kita bahas pada tutorial Pengertian Fungsi Hashing dan Cara Kerja Password MySQL, MySQL menyimpan password user sebagai ‘kata’ yang terdiri dari 41 karakter acak yang berasal dari hashing fungsi PASSWORD. Dalam tutorial kali ini saya akan membahas Cara Untuk Merubah dan Menghapus Password user MySQL.
Password asli dari user MySQL tidak dapat diketahui dari tabel mysql, bahkan melalui user root sekalipun. Hal ini berguna seandainya ada pihak yang tidak berhak masuk ke dalam sistem dan melihat-lihat password user, namun juga menjadi masalah ketika ada user yang lupa dengan password yang digunakan.
Cara Merubah Password User MySQL dari User Root
Jika user yang ‘lupa’ passwordnya bukan user root, maka kita tinggal menimpa password lama dengan yang baru. Berikut adalah format dasar query yang digunakan:
SET PASSWORD FOR nama_user@ 'lokasi_user' = PASSWORD ( 'password_baru' ); |
- nama_user adalah nama dari user yang akan diubah passwordnya.
- lokasi_user adalah alamat IP dari user yang akan diubah passwordnya.
- password_baru adalah password yang akan diberikan kepada nama_user.
Perhatikan bahwa kita menggunakan fungsi PASSWORD untuk membuat password baru.
Sebagai contoh, saya akan merubah password ilkom_admin menjadi ‘s3cret’. Berikut query yang digunakan:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | D:\MySQL\bin>mysql -uroot -pqwerty Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and / or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and / or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SHOW GRANTS FOR ilkom_admin@localhost \G *************************** 1. row *************************** Grants for ilkom_admin@localhost: GRANT USAGE ON *.* TO 'ilkom_admin' @ 'localhost' IDENTIFIED BY PASSWORD '*7438236BE048F242AA18D2EE074296F078CD701A' *************************** 2. row *************************** Grants for ilkom_admin@localhost: GRANT SELECT ON `universitas`.`mahasiswa_ilkom` TO 'ilkom_admin' @ 'localhost' 2 rows in set (0.07 sec) mysql> SET PASSWORD FOR ilkom_admin@ 'localhost' = PASSWORD ( 's3cret' ); Query OK, 0 rows affected (0.00 sec) mysql> SHOW GRANTS FOR ilkom_admin@localhost \G *************************** 1. row *************************** Grants for ilkom_admin@localhost: GRANT USAGE ON *.* TO 'ilkom_admin' @ 'localhost' IDENTIFIED BY PASSWORD '*B865CAE8F340F6CE1485A06F4492BB49718DF1EC' *************************** 2. row *************************** Grants for ilkom_admin@localhost: GRANT SELECT ON `universitas`.`mahasiswa_ilkom` TO 'ilkom_admin' @ 'localhost' 2 rows in set (0.00 sec) |
Setelah masuk sebagai root (baris…), saya memeriksa terlebih dahulu user ilkom_admin dengan query SHOW GRANTS FOR (baris …). Pada baris…, terdapat hasil hashing dari password ‘r4hasia’ yang saya gunakan sebagai password pada waktu membuat user ilkom_admin. Hasil hashing inilah yang disimpan MySQL di dalam databasenya.
Pada baris ke… saya merubah password ilkom_admin menjadi ‘s3cret’. Lalu pada baris.. saya kembali memeriksa hasil hashing password dengan SHOW GRANTS FOR . Dan seperti yang terlihat, hasil hashing juga telah berubah yang menandakan pergantian password berhasil.
Cara Merubah Password User MySQL dari User itu Sendiri
Untuk merubah password dari user yang kita login saat ini, bisa menggunakan perintah yang lebih sederhana:
1 | SET PASSWORD = PASSWORD ( 'the_password' ) |
Berikut adalah contoh query dimana saya login sebagai ilkom_admin dengan password ‘s3cret’ dan mengubahnya menjadi ‘4dmin’:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | D:\MySQL\bin>mysql -uilkom_admin -ps3cret Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and / or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and / or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SET PASSWORD = PASSWORD ( '4dmin' ); Query OK, 0 rows affected (0.00 sec) |
Password baru tersebut akan aktif setelah user keluar dari sesi MySQL saat ini.
Cara Menghapus Password User MySQL
Jika yang anda inginkan adalah menghapus password dari seorang user secara keseluruhan, maka cukup memberikan string kosong sebagai isian password.
SET PASSWORD FOR 'nama_user' @ 'lokasi_user' = '' |
Berikut saya contohkan ketika menghapus password untuk user ekonomi_admin melalui user root:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | D:\MySQL\bin>mysql -uroot -pqwerty Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and / or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and / or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SET PASSWORD FOR ekonomi_admin@ 'localhost' = '' ; Query OK, 0 rows affected (0.00 sec) mysql> SHOW GRANTS FOR ekonomi_admin@localhost \G *************************** 1. row *************************** Grants for ekonomi_admin@localhost: GRANT USAGE ON *.* TO 'ekonomi_admin' @ 'localhost' *************************** 2. row *************************** Grants for ekonomi_admin@localhost: GRANT ALL PRIVILEGES ON `universitas`.`mahasiswa_ekonomi` TO 'ekonomi_admin' @ 'localhost' 2 rows in set (0.00 sec) |
Terlihat dari hasil SHOW GRANTS FOR, user ekonomi_admin tidak memiliki password, dan user tersebut dapat masuk kedalam MySQL tanpa password sama sekali.
Cara Membuat Password User MySQL, Sama Dengan User Lain
Walaupun anda tidak tahu password asli yang digunakan oleh user lain, namun jika yang diinginkan adalah membuat password yang sama dengan user lain, kita dapat menggunakan hasil hashing dari password user tersebut.
Berikut adalah format dasarnya:
SET PASSWORD FOR 'nama_user' @ 'lokasi_user' = '*nilai hashing' ; |
- nama_user adalah nama dari user yang akan diubah passwordnya.
- lokasi_user adalah alamat IP dari user yang akan diubah passwordnya.
- nilai_hashing adalah nilai dari fungsi hashing password user yang akan disamakan passwordnya.
Dari hasil SHOW GRANTS FOR untuk user ilkom_admin, saya mendapati hasil hashingnya adalah ‘*F366568C1E05004FD78F38B712C83917196C95D8’, dan nilai inilah yang akan saya pakai untuk password user ekonomi_admin. Berikut query yang digunakan (dari user root):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | mysql> SET PASSWORD FOR ekonomi_admin@ 'localhost' = '*F366568C1E05004FD78F38B712C83917196C95D8' ; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye D:\MySQL\bin>mysql -uekonomi_admin -p4dmin Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and / or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and / or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. |
Karena user ilkom_admin baru saya ganti passwordnya menjadi 4dmin, maka dengan men-copy hasil hashing user ilkom_admin ke user ekonomi_admin, keduanya memiliki password yang sama, yaitu s3cret.
Pada tutorial kali ini kita telah membahas cara merubah dan menghapus user MySQL dari user root. Hal ini berguna jika ada user yang lupa password atau ingin merubah password.
Namun bagaimana jika user root lah yang lupa passwordnya? Kita akan membahasnya pada tutorial berikutnya: Lupa password root MySQL.