Anda di halaman 1dari 9

KATA PENGANTAR

Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa karena atas berkah dan
limpahan nikmat Nya makalah yang berjudul “User Management” dapat saya selesaikan
dengan baik dalam waktu yang telah ditentukan. Saya menyadari dalam penulisan dan materi
yang saya angkat belum sempurna dan masih memerlukan perbaikan. Maka dari itu, saya
sangat mengharapkan kesediaan pembaca sekalian untuk memberikan kritik dan saran untuk
perbaikan di masa akan datang.
BAB I
PENDAHULUAN

1.1 Latar Belakang

User Management atau manajemen user merupakan cara mengatur dan mengelola
akses user pada sebuah database. Namun, seiring banyaknya kasus peretasan database
oleh orang-orang yang tidak bertanggung jawab, maka User Management ini perlu
diterapkan pada sebuah database agar aman. User adalah orang yang berhak
menggunakan database. Bisa sebagai administrator atau operator. Seorang Database
Administrator (DBA) akan memiliki hak akses penuh terhadap database yang diolah,
sedangkan operator biasanya hak aksesnya akan dibatasi atau disesuaikan dengan
pekerjaannya.

1.2 Rumusan Masalah


1. Apa itu User Management?
2. Bagaimana cara menerapkan atau menggunakan User Management?

1.3 Tujuan Penulisan

Tujuan dalam penulisan makalah ini adalah untuk memenuhi tugas pada mata kuliah
Pemrograman Web serta dapat menambah pengetahuan dan diharapkan bermanfaat
bagi kita semua.
BAB II
PEMBAHASAN

2.1 Penjelasan User Management

MySQL Database adalah sebuah database yang populer, salah satu feature yang
dimiliki oleh MySQL adalah User Management (Manajemen User). Dalam sebuah
Database MySQL Server biasanya terdapat banyak database, Dan pada umumnya satu
buah database (dapat lebih dari satu) digunakan oleh satu buah aplikasi/web. Contoh
lainnya adalah pada jasa share hosting satu buah Database MySQL Server di pakai ramai-
ramai oleh banyak penyewa. Karna Sebuah Database MySQL digunakan oleh ramai-
ramai sudah saat nya dibutuhkan Manajemen User, untuk mengelola hak ases dari setiap
user dalam mengakses database agar tercipta ketertiban setiap user dalam menggunakan
database.

Pada kasus lain Manajemen User Database juga dirasakan perlu diterapkan pada
prodak-prodak aplikasi/program yang mengakses Database yang dapat berupa CMS,
Framework atau apa pun yang mana prodak tersebut bersifat Open Source. Karna Open
Source setiap orang bisa mengetahui dimana letak konfigurasi koneksi Database dan bila
kofigurasi itu berhasil 'dibongkar' dan koneksi-nya ke database menggunakan user Root
maka dapat terjadi kemungkian terburuk adalah Database dapat dirusak oleh-nya. Untuk
memenuhi kebutuhan tersebut dan mecegah kejadian buruk diatas maka Manajemen User
adalah pilihan solusinya.

2.2 Membuat User Management pada Database

1. Membuat User Akses

Secara default, ketika MySQL pertama kali diinstall maka hanya terdapat user ‘root’.
User ‘root’ ini memiliki level tertinggi (top level) dalam MySQL. Sebaiknya jangan
menggunakan ‘root’ ini untuk mengkoneksikan aplikasi database Anda ke MySQL demi
keamanan. Untuk itu kita perlu membuat user koneksi selain ‘root’ ini. Ketika pertama
kali dalam membuat user di MySQL, kita menggunakan user ‘root’ terlebih dahulu.

Secara umum perintah query untuk membuat user baru adalah sbb:
CREATE USER 'namauser'@'host' IDENTIFIED BY 'password';

Keterangan: ‘host’ adalah menunjukkan dari host mana si user ini bisa melakukan
koneksi ke MySQL nya.

Contoh 1 :

CREATE USER 'rosihanari'@'192.168.1.7' IDENTIFIED BY '12345';

Dengan perintah di atas, si user ‘rosihanari’ ini hanya bisa melakukan koneksi ke MySQL
dari host dengan IP ‘192.168.1.7’. Maksudnya hanya bisa koneksi dari IP tertentu ini
bagaimana ya? OK saya ambil kasus seperti ini. Misalkan database MySQL terdapat di
server komputer dengan IP ‘192.168.1.2’. Kemudian saya buat aplikasi web dengan PHP
di komputer lain dengan IP ‘192.168.1.3’. Di dalam script koneksinya, saya tulis
parameter koneksi ke server MySQLnya sbb:

1 <?php
2 $dbhost = '192.168.1.2';
3 $dbuser = 'rosihanari'
4 $dbpass = '12345'
5 mysql_connect($dbhost, $dbuser, $dbpass);
6 ?>;
Jika script koneksi PHP tersebut dijalankan, maka koneksi gagal dilakukan karena user
‘rosihanari’ tersebut melakukan koneksi dari IP ‘192.168.1.3’, bukan dari host
‘192.168.1.7’. Metode ini sering dipakai untuk sistem yang terintegrasi, yaitu interface
aplikasi dan server MySQL tidak berada dalam host/server yang sama.

Contoh 2 :

CREATE USER 'rosihanari'@'localhost' IDENTIFIED BY '12345';

Dengan perintah di atas, maka user ‘rosihanari’ hanya bisa melakukan koneksi dari
IP/host yang sama dengan host MySQL nya. Hal ini paling cocok dilakukan jika lokasi
server MySQL dan aplikasi databasenya berada di server yang sama.

Contoh 3 :

CREATE USER 'rosihanari'@'%' IDENTIFIED BY '12345';

Host dengan tanda ‘%’ (wild card) menunjukkan bahwa si user ‘rosihanari’ ini bisa
melakukan koneksi dari host manapun atau tidak terbatas IP/host nya. Meskipun dengan
wild card host ini tampak fleksibel dalam hal konektivitas, namun juga beresiko karena si
user ini bisa akses dari host manapun.

Mungkin pertanyaan berikutnya adalah, apakah bisa kita membuat sebuah user untuk
melakukan koneksi dari beberapa host IP saja? OK bisa, caranya ya cukup membuat
beberapa query seperti di atas namun dengan IP host yang berbeda-beda. Misalkan:

1. CREATE USER 'rosihanari'@'192.168.1.7' IDENTIFIED BY '12345';


2. CREATE USER 'rosihanari'@'192.168.1.8' IDENTIFIED BY '12345';
3. CREATE USER 'rosihanari'@'192.168.1.9' IDENTIFIED BY '12345';
Dengan 3 query di atas, maka user ‘rosihanari’ dapat mengakses MySQL dari 3 host:
‘192.168.1.7, 192.168.1.8, dan 192.168.1.9’.

2. Menghapus User

Untuk menghapus user yang sudah dibuat, perintahnya adalah

DROP USER ‘namauser’@‘host’;

Contoh :

DROP USER ‘rosihanari’@‘localhost’;

Perintah di atas digunakan untuk menghapus user ‘rosihanari’ yang mengakses dari
‘localhost’.

3. Memberikan Hak Akses User ke Database Tertentu

Setelah kita membuat user-user yang memiliki hak akses ke MySQL nya. Kemudian
bagaimana caranya kita membatasi hak akses tiap user tersebut hanya bisa mengakses
database tertentu dan hanya bisa melakukan query tertentu saja? OK secara umum
sintaks query SQL untuk pembatasan hak akses user adalah sbb:

GRANT hak1, hak2, ... ON namadatabase.namatabel TO


'namauser'@'host';

Beberapa macam hak akses yang bisa diberikan kepada suatu user adalah:

 SELECT: si user bisa melakukan perintah SELECT


 INSERT: si user bisa melakukan perintah INSERT untuk menambah record
 UPDATE: si user bisa melakukan perintah UPDATE untuk update record
 DELETE: si user bisa melakukan perintah DELETE untuk hapus record
 CREATE: si user bisa melakukan perintah CREATE untuk membuat tabel baru
 ALTER: si user bisa melakukan perintah ALTER untuk mengubah struktur tabel
 DROP: si user bisa melakukan perintah DROP untuk menghapus tabel

Contoh 1 :

GRANT SELECT ON db1.* TO 'rosihanari'@'192.168.1.2';

Maksud query di atas, adalah memberikan hak akses kepada user ‘rosihanari’ yang
mengakses dari host ‘192.168.1.2’ ke database ‘db1’. Si user ini hanya bisa
melakukan query SELECT saja pada semua tabel yang ada di database ‘db1’.

Contoh 2 :

GRANT SELECT, INSERT ON db1.* TO 'rosihanari'@'192.168.1.2';

Maksud query di atas, adalah memberikan hak akses kepada user ‘rosihanari’ yang
mengakses dari host ‘192.168.1.2’ ke database ‘db1’. Si user ini hanya bisa
melakukan query SELECT dan INSERT saja pada semua tabel yang ada di database
‘db1’.

Contoh 3 :

GRANT SELECT, INSERT, DELETE ON db1.tabel1 TO


'rosihanari'@'192.168.1.2';

Maksud query di atas, adalah memberikan hak akses kepada user ‘rosihanari’ yang
mengakses dari host ‘192.168.1.2’ ke database ‘db1’. Si user ini hanya bisa
melakukan query SELECT, INSERT dan DELETE namun tidak pada semua tabel
yang ada di database ‘db1’, melainkan hanya di tabel ‘tabel1’ saja.

Contoh 4 :

GRANT ALL PRIVILEGES ON  db1.* TO 'rosihanari'@'localhost';

Maksud query di atas, adalah memberikan hak akses pada user ‘rosihanari’ yang
mengakses dari host ‘localhost’ ke database ‘db1’. Dengan ‘ALL PRIVILEGES’, user
ini mendapat full akses ke database ‘db1’ ini, sehingga bisa melakukan semua query.
Contoh 5 :

GRANT ALL PRIVILEGES ON  *.* TO 'rosihanari'@'localhost';

Maksud query di atas, adalah memberikan hak akses pada user ‘rosihanari’ yang
mengakses dari host ‘localhost’ ke semua database yang ada dengan full akses.

Note: Setiap kali kita memberikan perintah GRANT di atas, jangan lupa memberikan
perintah query

FLUSH PRIVILEGES;

untuk mereload semua privileges (hak akses) di MySQL nya, atau bisa juga
melakukan restart service MySQL nya.

4. Mencabut Hak Akses User

Selanjutnya bagaimana cara mencabut hak akses yang dimiliki user tertentu? Secara
umum sintak query SQL nya adalah sbb:

REVOKE hak1, hak2, ... ON namadatabase.namatabel FROM


'namauser'@'host';

Contoh :

REVOKE SELECT ON 'db1'.* FROM 'rosihanari'@'192.168.1.2';

Perintah di atas bertujuan untuk mencabut hak untuk menjalankan perintah SELECT
di database ‘db1’ pada semua tabel, dari user ‘rosihanari’ yang mengakses dari host
‘192.168.1.2’.

Contoh 2 :

REVOKE SELECT, DELETE ON 'db1'.* FROM


'rosihanari'@'192.168.1.2';

Perintah di atas bertujuan untuk mencabut hak untuk menjalankan perintah SELECT
dan DELETE di database ‘db1’ pada semua tabel, dari user ‘rosihanari’ yang
mengakses dari host ‘192.168.1.2’.
Contoh 3 :

REVOKE ALL PRIVILEGES ON 'db1'.* FROM


'rosihanari'@'localhost';

Perintah di atas bertujuan untuk mencabut semua hak akses di database ‘db1’ pada
semua tabel, dari user ‘rosihanari’ yang mengakses dari host ‘localhost’.

Note: Jangan lupa kembali memberikan perintah query FLUSH PRIVILEGES;


setelah menjalankan query REVOKE di atas.
BAB III
PENUTUP

3.1 Kesimpulan

User Management atau manajemen user merupakan cara mengatur dan mengelola
akses user pada sebuah database.

User adalah orang yang berhak menggunakan database. Bisa sebagai administrator
atau operator. Seorang Database Administrator (DBA) akan memiliki hak akses penuh
terhadap database yang diolah, sedangkan operator biasanya hak aksesnya akan dibatasi
atau disesuaikan dengan pekerjaannya.

DAFTAR PUSTAKA

 https://blog.rosihanari.net/manajemen-user-dan-hak-akses-database-di-mysql/

Anda mungkin juga menyukai