Modul Praktikum Sistem Basis Data .............................................................................. 18
b. Kemudian apa yang tampil setelah perintah berikut;
mysqlSELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv -drop_priv FROM user;
c.
Cabut hak akses dari user santi; apa yang terjadi?
mysqlREVOKE ALL ON . FROM santilocalhost mysqlSELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
-drop_priv FROM user;
d.
Lakukan penghapusan terhadap user santi; apa yang berubah?
mysqlDELETE FROM user WHERE user=‟ santi‟; mysqlSELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
-drop_priv FROM user;
mysqlQUIT;
2. Penghapusan Izin Akses Pengguna
Guna memperdalam pemahaman kita dalam melakukan penghapusan izinhak akses terhadap pengguna user, lakukan bebera langkah berikut;
a.
Berikanlah izin akses penuh terhadap user anwar terhadap seluruh table dalam database
mydatabase; C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u root -h localhost -p
Enter password: rootpassword
mysqlGRANT ALL PRIVILEGES ON mydatabase. TO anwarlocalhost;
b.
Lakukan penghapusan hak akses SELECT dan INSERT bagi user anwar;
mysqlREVOKE SELECT, INSERT ON mydatabase. FROM anwarlocalhost;
c.
Lakukan penghapusan hak akses CREATE dan DROP bagi user anwar;
mysqlREVOKE CREATE, DROP ON mydatabase. FROM anwarlocalhost;
d.
Lakukan penghapusan seluruh hak akses bagi user anwar;
mysqlREVOKE ALL PRIVILEGES ON mydatabase. FROM anwarlocalhost;
3. Pemberian dan Pembatasan Izin Akses Pengguna
Beberapa perintah GRANT berikut digunakan untuk memberikan atau menghapus izin akses pengguna, yang meliputi SELECT, INSERT, UPDATE dan DELETE terhadap
database tertentu. Lakukan perintah-perintah dalam latihan berikut; a.
Apa yang terjadi setelah perintah berikut; C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u root -h localhost -p
Modul Praktikum Sistem Basis Data .............................................................................. 19
Enter password: rootpassword
mysqlCREATE DATABASE mydatabase;
mysqlGRANT SELECT, INSERT,UPDATE, DELETE ON mydatabase -TO
santilocalhost ;
mysqlUPDATE user SET password=password„passwordsembarang‟
- WHERE user=‟santi‟;
b. Lihatlah tabel hak akses user terhadap table GRANT TABLES, dari hasil perintah
berikut, apa yang nampak? mysqlSELECT user, select_priv, insert_priv, update_priv, delete_priv, create_priv
- FROM db WHERE user=‟santi‟;
c.
Lakukan perintah berikut, apakah santi dapat membuat tabel?
mysqlQUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u santi -h localhost -p
Enter password: passwordsembarang
mysqlUSE mydatabase;
mysqlCREATE TABLE mytable1 -noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
-nama VARCHAR35 NOT NULL;
d.
Berikanlah hak CREATE dan DROP TABLE untuk user santi, dengan perintah
berikut; mysqlQUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u root -h localhost -p
Enter password: rootpassword
mysqlGRANT CREATE, DROP ON mydatabase TO santilocalhost
mysqlCREATE TABLE mytable1
-noid INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -nama VARCHAR35 NOT NULL;
mysqlSHOW TABLES;
e.
Mengapa si santi dapat melakukan penghapusan tabel dengan perintah berikut?
mysqlQUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u santi -h localhost -p
Enter password: passwordsembarang
mysqlDROP TABLE mytable1;
mysqlSHOW TABLES;
Pemberian dan pencabutan hak akses bagi pengguna dapat juga dilakukan pada kolomfield tertentu dalam suatu table. Latihan berikut akan menunjukkan bagaimana
MySQL mampu melakukan hal tersebut;
Modul Praktikum Sistem Basis Data .............................................................................. 20
a. Berikan hak akses sembarang database kepada user anwar dan berikan password
dengan perintah berikut; C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u root -h localhost -p
Enter password: rootpassword
mysqlGRANT USAGE ON . TO
anwarlocalhost -
IDENTIFIED BY „passwordsembarang‟; mysqlQUIT;
b.
Buatlah table dengan nama mytable1 pada database mydatabase dengan user login
santi; C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u santi -h localhost -p
Enter password: passwordsembarang
mysqlUSE mydatabase;
mysqlCREATE TABLE mytable1
-nip INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, -nama VARCHAR35 NOT NULL,
-tmp_lahir VARCHAR35 NOT NULL, -
tgl_lahir DATE NULL DEFAULT “0000-00-00”, -
kelamin ENUM„L‟,‟P‟, -alamat VARCHAR35 NOT NULL;
c.
Apa maksud dari perintah-perintah berikut?; mysqlGRANT
-SELECT nip, nama, tgl_lahir, alamat, -INSERT nip, nama, tgl_lahir, alamat,
-ON mydatabase.mytable1 -TO anwarlocalhost;
d.
Apa pengaruh perintah tersebut pada GRANT TABLE?, cari tahu dengan lakukan perintah berikut;
mysqlSELECT host, db, user, table_name, grantor -
FROM table_priv WHERE user=‟anwar‟; e.
Lihatlah hak akses yang dimiliki oleh user anwar, dengan perintah berikut;
mysqlSELECT host, db, user, table_priv, column_priv -FROM
table_priv WHERE user=‟anwar‟; f.
Tampilkan nama-nama kolom yang dapat diakses oleh user anwar, dengan perintah
berikut; mysqlSELECT column_priv WHERE user=‟anwar‟;
Modul Praktikum Sistem Basis Data .............................................................................. 21
g.
Apa saja yang dapat dilakukan oleh user anwar terhadap table mytable1 dalam
database mydatabase?, ikuti perintah-perintah berikut; mysqlQUIT;
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql -u anwar -h localhost -p
Enter password: passwordsembarang
mysqlUSE mydatabase;
mysqlSELECT FROM mytable1;
mysqlINSERT INTO mytable1
- VALUES „1‟, „AISYAH‟,‟MALANG‟,‟1975-8-16‟,‟P‟,‟PANJAITAN 17‟;
h. Sukseskah perintah terebut? Mengapa demikian? Bagaimana dengan perintah berikut?
mysqlSELECT FROM mytable1;
i. Lakukan perubahan data dengan perintah UPDATE, sebagaimana perintah berikut;
m ysqlUPDATE mytable1 SET nama=‟AISYAH KAMILA‟ WHERE nip=„1‟;
Apa yang terjadi? Mengapa demikian? j.
Lakukan penghapusan table mytable1, sebagaimana perintah berikut; mysqlDELETE FROM mytable1;
Apa yang terjadi? Mengapa demikian?
Penjelasan
Kegagalan yang terjadi ketika menjalan perintah UPDATE, DELETE dan DROP,
disebabkan user anwar tidak diberi hak akses tersebut pada mytable1 dalam database mydatabase. Untuk memberikan hak penuh bagi user anwar dapat
dilakukan dengan perintah berikut;
mysqlGRANT ALL PRIVILEGES -ON mydatabase.mytable1
-TO anwarlocalhost;
Bila akan memberikan hak penuh bagi user anwar terhadap seluruh table dalam
database mydatabase, dapat dilakukan dengan perintah berikut; mysqlGRANT ALL PRIVILEGES
-ON mydatabase. -TO anwarlocalhost;
Beberapa contoh di atas hanya memberikan izin mengakses MySQL secara lokal,
hanya pada komputer tempat program MySQL Server terinstall. Bagaimana kalau lokasi komputemya berbeda? Bisakah melakukan pembatasan hanya pada komputer tertentu saja
yang dapat mengakses? Perhatikan perintah GRANT berikut;
Modul Praktikum Sistem Basis Data .............................................................................. 22
mysqlGRANT CREATE, DROP -ON mydatabase.
-TO anwarlocalhost;
Perintah TO sebenamya terdiri dari dua bagian, yaitu nama user dan alamat lokasi pengakses.
Pada perintah TO di atas, kita memberikan izin akses kepada user anwar dengan alamat mesin localhost. Alamat ini bisa juga kita isi dengan alamat IP Intemet
Protocol, misalnya 127.0.0.1 atau alamat IP apa saja yang dimilik, sehingga perintah di atas menjadi:
mysqlGRANT CREATE, DROP -ON mydatabase.
-TO anwar127.0.0.1;
atau mysqlGRANT CREATE, DROP
-ON mydatabase. -
TO anwar‟www.dimanasaja.com‟; atau
mysqlGRANT CREATE, DROP -ON mydatabase.
- TO anwar‟.dimanasaja.com‟;
Dengan perintah seperti itu, maka anwar dapat melakukan login dengan cara seperti
berikut; C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql
–h 127.0.0.1 -u anwar -p Atau
C:\Program Files\MySQL\MySQL Server 5.0\bin\mysql –h www.dimanasaja.com -u
anwar –p
F. TUGAS