Header Ads

Belajar MySQL Part 26 : Membuat dan Menghapus User MySQL (CREATE USER)

Setelah memahami pengertian Superuser root dan Privileges dalam MySQL, serta pentingnya membatasi hak akses user, dalam tutorial kali ini kita akan mempelajari cara membuat user MySQL, membatasinya dengan password, membatasi hak akses dari alamat IP, serta menghapus user dalam MySQL.

Pembuatan user baru dalam MySQL, hanya dapat dilakukan menggunakan user root, atau user yang diberikan hak akses GRANT OPTION (pembahasan tentang GRANT OPTION akan kita bahas dalam artikel lainnya).


Peringatan !
Di karenakan kita akan sering keluar masuk mysql mengunakan beberapa user, maka untuk mengikuti tutorial ini disarankan menggakses MySQL secara manual dari DOS, seperti pada Tutorial Belajar MySQL: Menjalankan MySQL Client.




Menyiapkan Database Sample: universitas

Sebagai database contoh yang akan digunakan untuk belajar membuat user baru MySQL, kita akan membuat sebuah database universitas. Silahkan masuk dengan user root ke dalam MySQL Server.



Database ini akan memiliki 2 buah tabel, yakni tabel mahasiswa_ilkom, dan tabel mahasiswa_ekonomi. Masing-masing tabel berisi tentang data mahasiswa. Dalam query berikut, kita membuat kedua tabel tersebut dan menyiapkan data sampel sebagai contoh.






Cara Membuat User Baru dalam MySQL

Untuk membuat user baru, MySQL menyediakan query CREATE USER, berikut format dasar perintah:
CREATE USER 'nama_user';

  • nama_user adalah nama dari user yang akan dibuat, maksimal 16 karakter.

Untuk database universitas, kita akan membuat user ilkom_admin, berikut contoh querynya:




Dengan query CREATE USER tersebut, sebuah user baru telah dibuat di dalam MySQL Server. Untuk mencoba menggunakan user tersebut, kita harus keluar dari user root yang digunakan saat ini, dan login sebagai admin.

Agar bisa keluar dari user root dan masuk sebagai user lainnya, harus mengakses MySQL Client dari Terminal LINUX. Untuk penjelasan lebih lanjut dapat dipelajari dalam artikel Tutorial Belajar MySQL: Menjalankan MySQL Client.



Pada contoh diatas, pertama-tama kita menggunakan perintah exit untuk keluar dari root. Setelah itu kita log in menggunakan user yang baru saja dibuat, yakni admin.


Jika anda memeriksa database untuk user ini, user ilkom_admin belum memiliki hak akses untuk database apapun. Kita akan membahasnya pada tutorial selanjutnya.


Terlihat bahwa hasil SHOW DATABASES dari user ilkom_admin hanya berisi database information_schema. Database information_schema sendiri bukan merupakan database ‘asli’. information_schema akan ada untuk setiap user MySQL dan hanya database ‘virtual’ yang digunakan untuk menyimpan metadata (data keterangan) tentang database. Kita hanya bisa menggunakan query SELECT untuk database ini, tetapi tidak untuk query DELETE, INSERT, maupun UPDATE.


Cara Membuat User dalam MySQL dengan Password

User admin yang baru saja dibuat, dapat diakses oleh siapapun sepanjang ia mengetahui username yang digunakan, yakni admin.

Untuk menambah keamanan, kita seharusnya menambahkan password yang harus diinputkan oleh user pada saat login. Format dasar querynya:

CREATE USER 'nama_user' IDENTIFIED BY 'password' ;

  • nama_user adalah nama dari user yang akan dibuat, maksimal 16 karakter.
  • password adalah password yang harus dituliskan pada saat nama_user mengakses MySQL server.

Misalkan kita ingin membuat user admin2 dengan password ‘admin’, maka querynya:

Jika anda masih menggunakan user admin, keluarlah terlebih dahulu dan masuk kembali sebagai root.


Dan jika anda ingin mengakses user tersebut, haruslah menggunakan password:



Terlihat dari contoh query pertama jika tanpa password, MySQL akan mengeluarkan pesan error.


Cara Membuat User MySQL dengan batasan IP address

Dalam membuat user, MySQL menyediakan pilihan untuk membatasi hak akses user tersebut dari lokasi tempat user mengakses MySQL server.

Seperti yang telah kita bahas pada  Menjalankan MySQL Server, bahwa pengaksesan MySQL Server dapat dilakukan dari komputer mana saja sepanjang kita memiliki program MySQL Client dan terhubung melalui jaringan dengan MySQL Server. MySQL menggunakan alamat IP address untuk mengetahui darimana MySQL Server diakses.

Misalkan sebuah kantor memiliki 6 komputer yang terhubung dalam jaringan. MySQL Server berada pada komputer yang berada di alamat IP 192.168.0.1., sedangkan komputer lainnya memiliki alamat IP 192.168.0.2 sampai dengan 192.168.0.6. Kebijakan perusahaan adalah untuk mengakses tabel yang bersifat rahasia hanya bisa diakses dari komputer dengan IP 192.168.0.4. Untuk keperluan ini MySQL menyediakan cara agar sebuah user hanya dapat diakses dari alamat IP tertentu saja.

Format dasar query:


CREATE USER 'nama_user'@'lokasi_user' IDENTIFIED BY 'password';


  • nama_user adalah nama dari user yang akan dibuat, maksimal 16 karakter.
  • lokasi_user adalah lokasi tempat user yang diperbolehkan mengakses. Jika berada di komputer yang sama dengan MySQL Server, lokasi_user ditulis sebagai ‘localhost’, namun jika berada di komputer tertentu, kita bisa mengisinya dengan alamat IP seperti ‘192.168.0.2’, atau alamat host domain seperti user.duniailkom
  • password adalah password yang harus dituliskan pada saat nama_user mengakses MySQL server.

Sebagai contoh query, misalkan kita ingin membuat user admin3 dengan password admin dan hanya bisa diakses dari IP 192.168.0.4, maka querynya:



 Jika kita menggunakan user admin3 dari komputer dengan IP address selain ‘192.168.0.4’, MySQL akan menghasilkan error.




Peringatan !
MySQL juga memiliki fitur untuk membuat alamat IP menggunakan wildcard ‘%’ yang maksudnya adalah semua alamat IP. Contohnya :
CREATE USER 'admin4'@'192.168.0.%';

Perintah tersebut akan membuat user ilkom_admin4 dapat diakses dari seluruh alamat mulai dari 192.168.0.1 sampai dengan 192.168.0.255, namun tidak untuk IP 192.168.1.0.

Bahkan sebenarnya perintah:
CREATE USER 'admin';

Adalah sama dengan
CREATE USER 'admin'@%;

Yang berarti user ilkom_admin dapat diakses dari mana saja.

Alamat yang sering digunakan sebagai alamat IP adalah localhost, yang berarti alamat IP komputer tempat dimana MySQL Server berada. Karena di dalam tahap belajar ini kita menggunakan MySQL Client pada komputer yang sama dengan MySQL server, maka dalam tutorial selanjutnya saya hanya akan memakai lokasi localhost, seperti:
CREATE USER 'admin'@'localhost';

 Cara menghapus User MySQL

Untuk menghapus user, MySQL menyediakan query DROP USER. Berikut format dasar penggunaan:
DROP user nama_user

    nama_user adalah nama dari user yang akan dihapus.

Sebagai contoh, jika anda mengikuti seluruh query dalam tutorial ini, maka akan tercipta 3 user, yakni ilkom_admin, ilkom_admin2 dan ilkom_admin3. Kita akan menghapus ketiganya:

mysql> DROP USER admin;
Query OK, 0 rows affected (0.00 sec)

mysql> DROP USER admin2;
Query OK, 0 rows affected (0.00 sec)

mysql> DROP USER admin3; ERROR 1396 (HY000):
Operation DROP USER failed for 'ilkom_admin3'@'%' 


Untuk user ilkom_admin3, MySQL akan mengeluarkan pesan error. Hal ini dikarenakan pada saat kita membuat user ilkom_admin3, kita membatasi user ini dengan hanya bisa diakses dari IP 192.168.0.4, sehingga untuk menghapusnya harus mencantumkan alamat lengkap IP:

DROP USER 'admin3'@'192.168.0.4';

Sampai tahap ini kita sudah mempelajari cara membuat user MySQL, membatasinya dengan password dan alamat IP, serta menghapus user MySQL. Namun user tersebut belum bisa melakukan apa-apa, karena kita belum memberikan hak akses. Dalam tutorial selanjutnya, kita akan membahas cara memberikan hak akses dengan query GRANT.

No comments

Powered by Blogger.