Modul 9 Basis Data
Modul 9 Basis Data
A. TUJUAN
Mahasiswa memahami keamanan di MySQL, mampu melakukan manajemen database, dan
memahami hak akses (privileges) pada MySQL.
C. TEORI SINGKAT
Security (keamanan) di MySQL merupakan salah satu yang sangat penting. MySQL merupakan software
database yang bersifat client-server, yang memungkinkan beberapa user dapat mengakses server
MySQL dari mana pun. Untuk itu, server MySQL harus benar-benar aman dari akses (serangan) orang-
orang yang tidak berhak. Berikut ini beberapa hal yang harus diperhatikan dalam mengamankan
server MySQL:
❖ Jangan pernah memberi akses ke semua user, kecuali super user (root) untuk dapat mengakses
database mysql. Jika seseorang dapat mengakses database ini, maka dia dapat melihat informasi
user (termasuk user, password dan host) MySQL dan (mungkin) dapat menambah atau mengubah
informasi tersebut.
❖ Pelajari mengenai hak akses di MySQL. Perintah GRANT dan REVOKE digunakan untuk mengatur
hak akses di MySQL. Sebisa mungkin jangan memberikan hak akses ke MySQL pada semua host (%).
MySQL pada dasarnya merupakan sistem database yang aman. MySQL dapat mengatur hak akses tiap
user terhadap data di database. MySQL memungkinkan kita mengatur hak akses user sampai pada
tingkat kolom. Artinya kita dapat mengatur kolom tertentu dapat diakses oleh user siapa saja. Tentu,
kita juga dapat mengatur hak akses user terhadap tabel, dan database. Semua pengaturan hak akses
(privileges) tersimpan di database mysql yang secara default sudah ada di sistem MySQL. Di dalam
database mysql antara lain terdapat tabel-tabel sebagai berikut:
▪ user. Tabel ini digunakan untuk menyimpan informasi user MySQL yang mencakup informasi user,
password dan host user, serta informasi hak akses user.
▪ db. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap database.
▪ host. Tabel ini digunakan untuk menyimpan daftar komputer (bisa berupa alamat IP, nama
komputer, atau %) yang berhak mengakses suatu database.
▪ tables_priv. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap
tabel. Dengan kata lain menyimpan tabel ini dapat diakses oleh siapa dengan hak akses apa saja.
▪ columns_priv. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap
kolom.
▪ procs_priv. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap
procedure.
▪ proc. Tabel ini digunakan untuk menyimpan informasi mengenai daftar procedure dalam MySQL.
▪ func. Tabel ini digunakan untuk menyimpan informasi mengenai function yang didefinisikan di
MySQL.
1
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
GRANT priv_type
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[WITH GRANT OPTION]
REVOKE priv_type
ON {tbl_name | * | *.* | db_name.*}
FROM user_name
Berikut ini pilihan untuk priv_type dalam bentuk umum perintah GRANT dan
REVOKE di atas:
Tingkatan hak akses user dapat terbagi menjadi tingkatan global (tersimpan di tabel mysql.user),
database (tersimpan di tabel mysql.host dan mysql.db), tabel (tersimpan di tabel mysql.tables_priv)
dan kolom (tersimpan di tabel mysql.columns_priv). Setiap perubahan hak akses di MySQL,
termasuk menambahkan user baru, tidak akan berlaku sebelum diakhiri dengan perintah FLUSH
PRIVILEGES.
D. LANGKAH KERJA
Root merupakan super-user database, sehingga root-lah yang berkuasa dalam manajemen
database. Untuk membuat password pada user root (jika belum diberi password), kita harus
mengaktifkan database mysql. Kemudian lihat tabel user.
Melihat user yang terdapat pada tabel user:
2
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
Selanjutnya :
MariaDB [mysql]> UPDATE user SET password=password('punyaku') WHERE
user='root';
2. Login kembali sebagai root untuk melihat password yang sudah dikonfigurasi
3
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
Untuk mencobakan user baru, kita harus keluar dari mysql sebagai user root, dan login sebagai user
baru:
Sehingga diperoleh hasil seperti di atas, terlihat bahwa user ‘fulan’ belum memiliki hak akses
terhadap databases apapun.
4
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
komputer yang sama dengan MySQL server, maka selanjutnya lokasi yang akan digunakan adalah
localhost :
➢ Menambahkan user baru dengan nama user ‘sayah’ yang dapat mengakses semua
database (*.*) dari komputer ‘localhost’ dengan password ‘1223’. User ini juga berhak
menjalankan perintah GRANT untuk user lain.
Note : hal ini tidak disarankan jika menambahkan user baru. Karena yang memiliki hak akses penuh
terhadap database hanya user root.
➢ Menambahkan user baru dengan nama user ‘akuh’, password ‘abcd’, hanya dapat
mengakses database ‘coba’.
Dan hanya terlihat database coba yang bisa diakses oleh user ‘akuh’.
5
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
4. Privileges
Set privileges (membatasi hak akses) terhadap user hanya dapat dilakukan oleh user root.
Misalnya, hak akses select dan update akan diberikan terhadap user ‘abdi’:
Kemudian...
Login sebagai user ‘abdi’, dan lakukan akses terhadap database.
Note: akses ditolak..ini berarti privileges yang diberikan untuk user ‘abdi’ berhasil.
6
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
Untuk menghapus hak akses user, dapat dilakukan dengan perintah REVOKE.
7
FT UNP Padang Lembaran : Job Sheet
Jurusan : Teknik Elektronika Mata Kuliah : Sistem Basis Data
Waktu : 3 x 50 Menit Topik : MySQL
Kode : TIK 190 Judul : Administrasi User dan Keamanan
7. Menghapus user
Hasilnya :
D. EVALUASI
0ooo0