0% menganggap dokumen ini bermanfaat (0 suara)
73 tayangan8 halaman

Modul 9 Basis Data

Dokumen ini membahas tentang administrasi user dan keamanan pada MySQL, meliputi pengertian keamanan MySQL, manajemen database, hak akses user, dan cara menambahkan serta mengatur hak akses user baru.

Diunggah oleh

Delsi Adelia Putri
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
73 tayangan8 halaman

Modul 9 Basis Data

Dokumen ini membahas tentang administrasi user dan keamanan pada MySQL, meliputi pengertian keamanan MySQL, manajemen database, hak akses user, dan cara menambahkan serta mengatur hak akses user baru.

Diunggah oleh

Delsi Adelia Putri
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

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

A. TUJUAN
Mahasiswa memahami keamanan di MySQL, mampu melakukan manajemen database, dan
memahami hak akses (privileges) pada MySQL.

B. ALAT DAN BAHAN


a. Personal komputer.
b. Aplikasi 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 dan REVOKE


GRANT dan REVOKE digunakan untuk mengatur hak akses user.
Berikut ini bentuk umum perintah GRANT dan REVOKE secara sederhana :

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:

ALL PRIVILEGES FILE RELOAD


ALTER INDEX SELECT
CREATE INSERT SHUTDOWN
DELETE PROCESS UPDATE
DROP REFERENCES USAGE

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

1. Konfigurasi user root

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:

MariaDB [mysql]> select user, host, password from user;


+------+-----------------+----------+
| user | host | password |
+------+-----------------+----------+
| root | localhost | |
| root | desktop-7f1f7e7 | |
| root | 127.0.0.1 | |
| root | ::1 | |
+------+-----------------+----------+
4 rows in set (0.00 sec)
Sebelum diberi password

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';

MariaDB [mysql]> select user, host, password from user;


+------+-----------------+-------------------------------------------+
| user | host | password |
+------+-----------------+-------------------------------------------+
| root | localhost | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | desktop-7f1f7e7 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | 127.0.0.1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | ::1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
+------+-----------------+-------------------------------------------+
4 rows in set (0.00 sec)
Setelah diberi password

Untuk mengaktifkan kofigurasi, berikan Flush privileges.


MariaDB [mysql]> flush privileges;

Keluar dari mysql : \q

2. Login kembali sebagai root untuk melihat password yang sudah dikonfigurasi

Maka sebagai user root harus login menggunakan password :

3. Menambah user baru


Yang memiliki hak penuh untuk menambah user adalah user root. Maka harus login sebagai root.
a. Menambah user baru tanpa password
CREATE USER 'nama_user';
Note : nama user = nama user yang akan ditambahkan, maksimal 16 karakter.

MariaDB [mysql]> create user 'fulan';

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

Silahkan cek tabel user, setlah menamah user fulan!


+---------+-----------------+-------------------------------------------+
| user | host | password |
+---------+-----------------+-------------------------------------------+
| root | localhost | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | desktop-7f1f7e7 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | 127.0.0.1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | ::1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| fulan | % | |
+---------+-----------------+-------------------------------------------+

Untuk mencobakan user baru, kita harus keluar dari mysql sebagai user root, dan login sebagai user
baru:

C:\Program Files\MariaDB 10.0\bin>mysql -u fulan -p


Enter password:

MariaDB [(none)]> show databases;


+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
+--------------------+
2 rows in set (0.01 sec)

Sehingga diperoleh hasil seperti di atas, terlihat bahwa user ‘fulan’ belum memiliki hak akses
terhadap databases apapun.

b. Menambah user baru dengan password


CREATE USER 'nama_user' IDENTIFIED BY 'password' ;

MariaDB [mysql]> create user 'abdi' identified by 'abcdef';


Query OK, 0 rows affected (0.00 sec)

Cek kembali tabel user !


+---------+-----------------+-------------------------------------------+
| user | host | password |
+---------+-----------------+-------------------------------------------+
| root | localhost | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | desktop-7f1f7e7 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | 127.0.0.1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | ::1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| fulan | % | |
| abdi | % | *C2D24DCA38E9E862098B85BF0AB35CAA52803797 |
+---------+-----------------+-------------------------------------------+

c. Menambah user dengan IP address


Alamat yang sering digunakan sebagai alamat IP adalah localhost, yang berarti alamat IP komputer
tempat dimana MySQL Server berada. Karena tahap belajar ini kita menggunakan MySQL Client pada

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 :

CREATE USER ‘nama user’@localhost

MariaDB [mysql]> create user 'indah'@localhost;

Cek kembali tabel user !


+---------+-----------------+-------------------------------------------+
| user | host | password |
+---------+-----------------+-------------------------------------------+
| root | localhost | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | desktop-7f1f7e7 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | 127.0.0.1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| root | ::1 | *997FB27CC2E6B9DC96EBDB75CC66182024996000 |
| fulan | % | |
| abdi | % | *C2D24DCA38E9E862098B85BF0AB35CAA52803797 |
| indah | localhost | |
+---------+-----------------+-------------------------------------------+

d. Menambah user baru dan memberikan hak akses.

MariaDB [(none)]> grant all privileges on *.* to sayah@localhost


identified by '1223' with grant option;

MariaDB [(none)]> flush privileges;

➢ 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.

e. Menambah user baru dengan izin akses database.

MariaDB [mysql]> grant all privileges on coba.* to akuh@localhost


identified by 'abcd';

➢ Menambahkan user baru dengan nama user ‘akuh’, password ‘abcd’, hanya dapat
mengakses database ‘coba’.

MariaDB [mysql]> flush privileges;

Lakukan testing, login sebagai user ‘akuh’ !

C:\Program Files\MariaDB 10.0\bin>mysql -u akuh -p


Enter password: ****

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

MariaDB [(none)]> show databases;


+--------------------+
| Database |
+--------------------+
| coba |
| information_schema |
| test |
+--------------------+

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.

MariaDB [(none)]> show databases;


+--------------------+
| Database |
+--------------------+
| coba |
| information_schema |
| test |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [coba]> show tables;


+----------------+
| Tables_in_coba |
+----------------+
| buku |
+----------------+
Database coba memiliki dua buah tabel, yaitu buku dan anggota. Karena user ‘abdi’ hanya
diberikan hak akses terhadap tabel buku, maka tidak dapat mengakses tabel anggota.

MariaDB [coba]> select *from buku;


+---------+------------------+------+---------------------+
| id_buku | judul_buku | stok | penerbit |
+---------+------------------+------+---------------------+
| AL01 | Pintar Algoritma | 5 | Informatika Bandung |
| DB01 | Mahir Database | 3 | Andi Offset |
| GO01 | Ilmu Antariksa | 2 | Andi Offset |
+---------+------------------+------+---------------------+
3 rows in set (0.00 sec)

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

MariaDB [coba]> select *from buku;


+---------+------------------+------+---------------------+
| id_buku | judul_buku | stok | penerbit |
+---------+------------------+------+---------------------+
| AL01 | Pintar Algoritma | 2 | Informatika Bandung |
| DB01 | Mahir Database | 3 | Andi Offset |
| GO01 | Ilmu Antariksa | 2 | Andi Offset |
+---------+------------------+------+---------------------+
3 rows in set (0.00 sec)

5. Menghapus hak akses user

Untuk menghapus hak akses user, dapat dilakukan dengan perintah REVOKE.

a. Login sebagai user root

b. Login kembali sebagai user ‘abdi’ dan lihat hasilnya :

MariaDB [coba]> show tables;


+----------------+
| Tables_in_coba |
+----------------+
| buku |
+----------------+
1 row in set (0.00 sec)

6. Merubah password user

a. MariaDB [mysql]> update user set password=password('kirei') where


user='indah' and host='localhost';
Query OK, 1 row affected (0.08 sec)
Rows matched: 1 Changed: 1 Warnings: 0

b. MariaDB [mysql]> set password for


holland@localhost=password('bakeri');
Query OK, 0 rows affected (0.04 sec)

MariaDB [mysql]> flush privileges;


Query OK, 0 rows affected (0.00 sec)

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

a. Login sebagai root

Hasilnya :

D. EVALUASI

Lakukan manajemen database sebagai berikut :


1. Tambahkan dua buah user
2. Lakukan set privileges yang berbeda untuk masing-masing user.
3. Dokumentasikan setiap perubahan, dan hasil yang terjadi.
4. Database yang digunakan adalah database ‘coba’.

0ooo0

Anda mungkin juga menyukai