istilah
keamanan
komputer
sering
disebut
sebagai superuser. Superusermerupakan tingkatan user tertinggi dimana user ini dapat
melihat, mengubah, bahkan menghapus seluruh database dan menjalankan perintah apapun
yang terdapat dalam MySQL.
Dalam tahap pembelajaran, kita diuntungkan dan dimudahkan dengan
menggunakan user rootdalam membuat database MySQL. Hal ini dikarenakan
user root dapat menjalankan segala perintah dalam MySQL.
Namun pada aplikasi real dunia nyata, menggunakan user root untuk mengkases
database dalam operasional sehari-hari sangat tidak disarankan. Memberikan kemampuan
dan hak akses untuk menghapus seluruh database akan berdampak fatal pada operasional
aplikasi.
Kita
dapat
membuat
user
baru
yang
hanya
bisa
menjalankan
perintah SELECT saja, dan user tersebut dibatasi untuk tidak dapat menjalankan
query DROP.
Sebagai contoh, dalam database mahasiswa yang kita gunakan sepanjang berlajar
MySQL di praktikum ini, kita mungkin butuh untuk membuat user untuk setiap jurusan,
dan membatasi user tersebut hanya dapat mengakses tabel yang sesuai dengan jurusannya
masing-masing.
Untuk kerperluan multi user inilah MySQL menyediakan banyak perintah yang
dapat digunakan untuk membuat, dan membatasi hak akses user dalam mengakses
database.
| user
|
+---------------------------+
24 rows in set (0.00 sec)
Database ini akan memiliki 2 buah tabel, yakni tabel mahasiswa_ti, dan table
mahasiswa_si. Masing-masing tabel berisi tentang data mahasiswa. Dalam query berikut, kita
membuat kedua tabel tersebut dan menyiapkan data sampel sebagai contoh:
mysql> CREATE TABLE mahasiswa_ti ( nim CHAR(9), nama CHAR(50), umur INT,
tempat_lahir CHAR(50), IPK DECIMAL (3,2) );
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO mahasiswa_ti VALUES ('089045001', 'Andi Suryo', 23,
'Jakarta', 2.7);
Query OK, 1 row affected (0.05 sec)
mysql> INSERT INTO mahasiswa_ti VALUES ('109245021', 'Santi Syanum',
21, 'Malang', 3.2);
Query OK, 1 row affected (0.04 sec)
mysql> INSERT INTO mahasiswa_ti VALUES ('099145055', 'Neil Situmorang',
22, 'Medan', 1.9);
Query OK, 1 row affected (0.12 sec)
mysql> CREATE TABLE mahasiswa_si ( nim CHAR(9), nama CHAR(50),
umur INT, tempat_lahir CHAR(50), IPK DECIMAL (3,2) );
Query OK, 0 rows affected (0.01 sec)
mysql> INSERT INTO mahasiswa_si VALUES ('089023013',
'Alex Supriyanto', 23, 'Surabaya', 2.9);
Query OK, 1 row affected (0.04 sec)
mysql> INSERT INTO mahasiswa_si VALUES ('109223041', 'Rani Sabrina',
21, 'Padang',3.7);
Query OK, 1 row affected (0.04 sec)
mysql> INSERT INTO mahasiswa_si VALUES ('099123043', 'Ocha Septriani',
22,'Makasar', 3.1);
Query OK, 1 row affected (0.05 sec)
mysql> SELECT * FROM mahasiswa_ti;
+-----------+-----------------+------+--------------+------+
| nim
| nama
| umur | tempat_lahir | IPK |
+-----------+-----------------+------+--------------+------+
| 089045001 | Andi Suryo
|
23 | Jakarta
| 2.70 |
| 109245021 | Santi Syanum
|
21 | Malang
| 3.20 |
| 099145055 | Neil Situmorang |
22 | Medan
| 1.90 |
+-----------+-----------------+------+--------------+------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM mahasiswa_si;
+-----------+-----------------+------+--------------+------+
| nim
| nama
| umur | tempat_lahir | IPK |
+-----------+-----------------+------+--------------+------+
| 089023013 | Alex Supriyanto |
23 | Surabaya
| 2.90 |
| 109223041 | Rani Sabrina
|
21 | Padang
| 3.70 |
nama_user adalah nama dari user yang akan dibuat, maksimal 16 karakter.
Untuk database stmik, kita akan membuat user ti_admin, berikut contoh querynya:
mysql> CREATE USER 'ti_admin';
Query OK, 0 rows affected (0.09 sec)
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 ti_admin.
mysql> exit;
Bye
D:\MySQL\bin>mysql -u ti_admin
Welcome to the MySQL monitor.
Your MySQL connection id is 4
Pada contoh di atas, pertama-tama kita menggunakan perintah exit untuk keluar dari root. Setelah
itu kita log in menggunakan user yang baru saja dibuat, yakni ti_admin.
Jika anda memeriksa database untuk user ini, user ti_admin belum memiliki hak akses untuk
database apapun. Kita akan membahasnya pada materi selanjutnya.
1
mysql> SHOW DATABASES;
2
+--------------------+
3
| Database
|
4
+--------------------+
| information_schema |
5
+--------------------+
6
1 row in set (0.10 sec)
7
Terlihat bahwa hasil SHOW DATABASES dari user ti_admin hanya berisi database
information_schema.
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.
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 ti_admin2 dengan password r4hasia, maka querynya:
mysql> CREATE USER ti_admin2 IDENTIFIED BY 'r4hasia';
Query OK, 0 rows affected (0.01 sec)
Note : Jika anda masih menggunakan user ti_admin, keluarlah terlebih dahulu dan masuk kembali sebagai
root.
Dan jika anda ingin mengakses user tersebut, haruslah menggunakan password:
D:\MySQL\bin>mysql -u ti_admin2
ERROR 1045 (28000): Access denied for user 'ti_admin2'@'localhost'
(using password: NO)
D:\MySQL\bin>mysql -u ti_admin2 p r4hasia
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights
reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql>
Terlihat dari contoh query pertama jika tanpa password, MySQL akan mengeluarkan pesan error.
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 ti_admin3 dengan password
r4hasia dan hanya bisa diakses dari IP 192.168.0.4, maka querynya:
mysql> CREATE USER 'ti_admin3'@'192.168.0.4' IDENTIFIED by 'r4hasia';
Query OK, 0 rows affected (0.01 sec)
Jika kita menggunakan user ti_admin3 dari komputer dengan IP address selain 192.168.0.4, MySQL
akan menghasilkan error.
MySQL juga memiliki fitur untuk membuat alamat IP menggunakan wildcard % yang
maksudnya adalah semua alamat IP. Contohnya :
CREATE USER 'ilkom_admin4'@'192.168.0.%';
Perintah tersebut akan membuat user ti_admin4 dapat diakses dari seluruh alamat mulai
dari 192.168.0.1 sampai dengan 192.168.0.255, namun tidak untuk IP192.168.1.0.
Bahkan sebenarnya perintah:
CREATE USER 'ti_admin';
Sebagai contoh, jika anda mengikuti seluruh query dalam tutorial ini, maka akan tercipta 3 user,
yakni ti_admin, ti_admin2 dan ti_admin3. Kita akan menghapus ketiganya:
mysql> DROP USER ti_admin;
Query OK, 0 rows affected (0.00 sec)
mysql> DROP USER ti_admin2;
Query OK, 0 rows affected (0.00 sec)
mysql> DROP USER ti_admin3;
ERROR 1396 (HY000): Operation DROP USER failed for 'ti_admin3'@'%'
Untuk user ti_admin3, MySQL akan mengeluarkan pesan error. Hal ini dikarenakan pada saat kita
membuat user ti_admin3, kita membatasi user ini dengan hanya bisa diakses dari IP 192.168.0.4,
sehingga untuk menghapusnya harus mencantumkan alamat lengkap IP:
mysql> DROP USER 'ti_admin3'@'192.168.0.4';
Query OK, 0 rows affected (0.00 sec)
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.
3.1.1 Cara Memberikan Hak Akses Kepada User dengan query GRANT
Untuk memberikan hak akses kepada sebuah user, MySQL menyediakan query GRANT.
Berikut format dasar query GRANT:
GRANT hak_akses ON nama_database.nama_tabel TO 'nama_user'@'lokasi_user';
hak_akses adalah privileges yang akan berikan kepada user tersebut. Hak akses disini berisi
query yang diperbolehkan, seperti: SELECT, INSERT, UPDATE, DELETE, atau query
lainnya.
Jika
kita
ingin
memberikan
hak
penuh untuk
semua
query dasar
nama_database adalah nama database yang ingin diberikan hak akses. Jika kita
mengizinkan user tersebut dapat mengakses semua database yang ada, nama_databasebisa
ditulis dengan tanda bintang (*).
nama_tabel adalah nama tabel yang ingin diberikan hak akses. Jika kita mengizinkan user
dapat menggunakan semua tabel, nama_tabel bisa ditulis dengan tanda bintang (*).
nama_user adalah nama dari user yang akan diberikan hak akses.
lokasi_user adalah alamat IP dari user yang ingin diberikan hak akses.
Sebagai contoh penggunaan query GRANT, misalkan kita ingin memberikan privileges
kepada
ti_admin untuk
dapat
melihat
(melakukan
query SELECT)
pada
tabel mahasiswa_ti yang berada pada database stmik, maka berikut query yang kita gunakan:
mysql> CREATE USER 'ti_admin'@'localhost' IDENTIFIED BY 'r4hasia';
Query OK, 0 rows affected (0.52 sec)
mysql> GRANT SELECT ON stmik.mahasiswa_ti TO
'ti_admin'@'localhost';
Query OK, 0 rows affected (0.12 sec)
Query diatas terdiri dari 2 bagian, pada bagian pertama kita membuat user ti_admin yang
harus diakses dari komputer localhost (komputer yang sama dengan server MySQL berada), dan
memberikan password r4hasia. Cara membuat user telah kita bahas pada materi sebelumnya,
Cara Membuat dan Menghapus User MySQL (CREATE USER).
Selanjutnya pada bagian kedua, kita memberikan hak akses dengan query GRANT pada
untuk user ti_admin.
Perhatikan cara penulisan query GRANT tersebut, setelah keyword GRANT, diikuti
dengan kata SELECT. SELECT disini adalah hak akses yang ingin di berikan kepada user, saya
memberikan hak SELECT karena user admin saat ini hanya dapat melakukan perintah SELECT.
Setelah SELECT, diikuti dengan penulisan tabel yang diperbolehkan, yakni
stmik.mahasiswa_ti (dibaca:tabel mahasiswa_ti pada database stmik). Bagian terakhir adalah
user yang akan diberikan hak aksesnya, yakni ti_admin pada localhost.
Untuk mencoba user ti_admin, keluarlah dari root, dan masuk sebagai ti_admin:
D:\MySQL\bin>mysql -u ti_admin -pr4hasia
Welcome to the MySQL monitor.
Your MySQL connection id is 2
Dari contoh query diatas, dapat dilihat bahwa pada saat ti_admin menjalankan perintah SHOW
TABLES, ia hanya dapat melihat satu tabel, yakni tabel mahasiswa_ti. Padahal dalam database tersebut
kita juga telah membuat tabel mahasiswa_si, namun karena hak akses yang diberikan, ti_admin hanya
dapat melihat tabel yang diperbolehkan.
Setelah menampilkan isi tabel mahasiswa_ti,
mahasiswa_ti. Tetapi karena kita membatasi hak aksesnya, ti_admin tidak dapat menjalankan
query DELETE dan DROP, dan akan langsung ditolak oleh MySQL.
Pembuatan
hampir
sama
dengan
perintah
saat
membuat
user ti_admin. Kecuali kali ini untuk penulisan tabel kita menggunakan format stmik.* yang
berarti dapat mengakses seluruh tabel pada database stmik.
Selanjutnya, kita akan mencoba menggunakan user mahasiswa untuk melihat database stmik:
D:\MySQL\bin>mysql -u mahasiswa -pr4hasia
Welcome to the MySQL monitor.
Your MySQL connection id is 3
Dari hasil query diatas, terlihat bahwa user mahasiswa dapat melihat terdapat 2 tabel
dalam database stmik. Dan jika kita membuat sebuah tabel baru dalam database stmik, user
mahasiswa juga akan bisa melihatnya.
Dengan memberikan hak akses GRANT ALL, maka user si_admin dapat menggunakan seluruh
query dasar pada tabel mahasiswa_si, seperti SELECT, UPDATE, bahkan DELETE. Sebagai latihan,
silahkan mencoba masuk sebagai user si_admin dan lakukan perintah seperti UPDATE, DELETE,
dan DROP.
Perhatikan cara penulisan kolom yang diberikan hak aksesnya, setelah hak akses (dalam
contoh adalah SELECT), penulisan nama kolom harus berada dalam tanda kurung. Dapat dilihat
bahwa kita memberikan hak akses hanya pada kolom nama dan umur untuk
tabel mahasiswa_ti.
Untuk mengujinya, masuklah sebagai user tamu_ti:
D:\MySQL\bin>mysql -u tamu_ti
Welcome to the MySQL monitor.
Your MySQL connection id is 4
Pada saat user tamu_ti mencoba menampilkan seluruh kolom dengan query SELECT *
FROM mahasiswa_ti, MySQL akan mengeluarkan error karena user tamu_ti hanya memiliki
hak akses untuk kolom nama dan umur saja, dimana pada saat menggunakan perintah SELECT
nama,umur FROM mahasiswa_ti, MySQL menampilkannya dengan baik.
Dari materi Cara Membuat Hak Akses (Privileges) User MySQL dengan query
GRANT ini, kita telah mempelajari cara memberikan hak akses untuk user. Hak akses itu sendiri
sebenarnya dapat dibatasi pada 4 tingkatan level, yakni level global, level database, level tabel,
dan level kolom. Pada tutorial diatas, kita telah mencoba level database, tabel dan kolom, namun
untuk lebih dalam, kita akan membahasnya pada materi MySQL selanjutnya: Membahas Jenisjenis Hak Akses dalam MySQL.
4.1.1.2
Hak akses yang dimiliki user hanya terbatas pada level sebuah tabel saja.
4.1.1.4 Hak Akses Level Kolom (nama_kolom)
Hak akses ini adalah hak akses paling kecil yang dapat diberikan kepada sebuah user.
Dengan hak akses level kolom, user hanya memiliki hak akses untuk beberapa kolom pada sebuah
tabel. Contoh penulisan query GRANT untuk level kolom ini adalah:
GRANT SELECT (nama,umur) ON stmik.mahasiswa_ti TO 'user'@'localhost';
Level paling akhir ini kita membatasi hak akses user hanya untuk kolom tertentu saja. Penulisan
kolom yang diperbolehkan diletakkan di dalam tanda kurung.
mengupdate
data
(query UPDATE),
bahkan
menghapus
data
(query DELETE).
Pada tabel dibawah ini saya melampirkan seluruh tipe hak akses yang dapat
diberikan/dibatasi untuk user. Tabel tersebut diambil langsung dari manual resmi MySQL.
Kebanyakan dari hak akses tersebut akan jarang digunakan dan belum kita pelajari, namun tabel
dibawah dapat dijadikan referensi terkait hak akses (privileges).
Hak Akses
Keterangan
ALL [PRIVILEGES]
ALTER
ALTER ROUTINE
CREATE
CREATE ROUTINE
Hak Akses
Keterangan
CREATE TABLESPACE
CREATE
TEMPORARYTABLES
TABLE
CREATE USER
CREATE VIEW
DELETE
DROP
EVENT
EXECUTE
FILE
GRANT OPTION
INDEX
INSERT
LOCK TABLES
PROCESS
PROXY
Hak Akses
Keterangan
REFERENCES
Belum diimplementasikan
RELOAD
REPLICATION CLIENT
REPLICATION SLAVE
Hak akses untuk server replikasi untuk membaca log event biner dari
server master
SELECT
SHOW DATABASES
SHOW VIEW
SHUTDOWN
SUPER
TRIGGER
UPDATE
USAGE
2. Buatlah user sensus_ti yang dapat melihat seluruh tabel di dalam database mahasiswa_ti,
namun hanya pada kolom nim, nama, dan umur. User tersebut akan mengakses database dari
IP 192.168.0.4 .
Berikut adalah query yang dibutuhkan:
mysql> CREATE USER 'sensus_ti'@'192.168.0.4' IDENTIFIED BY 'r4hasia';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT(nim,nama,umur) ON stmik.mahasiswa_ti
TO 'sensus_ti'@'192.168.0.4';
Query OK, 0 rows affected (0.00 sec)
3. Buatlah user admin_kampus yang dapat mengedit, membuat, dan menghapus tabel dalam
database stmik, namun tidak bisa melakukan manipulasi data di dalam tabel tersebut. User ini
bisa diakses dari komputer manapun.
Berikut adalah query yang dibutuhkan:
Dalam merancang aplikasi yang memerlukan database MySQL, pembatasan hak akses
seperti diatas memerlukan seni tersendiri. Permasalahan muncul jika tiba-tiba user yang sudah
dibatasi ternyata memerlukan akses ke tabel lain. Kita sebaiknya sudah memperkirakan level apa
saja yang bisa diakses oleh user tertentu dan pada tabel apa saja sebelum aplikasi direlease.
Jika anda membangun aplikasi, biasanya pengguna tidak akan diberikan akses langsung
dengan MySQL Server, namun kita biasanya akan memandu pengguna melalui interface lainnya
seperti halaman web (untuk situs online) atau form visual basic (untuk aplikasi desktop). Dalam
aplikasi web, kode PHPlah (atau lebih tepatnya: web server) yang mengakses MySQL, pengguna
hanya dihadapkan pada halaman form website.
Untuk hal keamanan database, Jika anda telah membatasi hak akses pengguna pada
level PHP, hal tersebut bisa dikatakan sudah cukup. Namun jika terdapat kemungkinan pengguna
mengakses MySQL Server secara langsung, kita sedapat mungkin telah mengantisipasinya
dengan membuat user berlapis (dari kode PHP dan dari dalam MySQL).
secara
internal
untuk
manajemen meta
data
MySQL (metadataadalah data tentang sistem mysql itu sendiri) dimana salah satunya adalah
tabel user MySQL. Karena pentingnya database ini, biasanya hanya user root yang memiliki hak
akses penuh untuk database mysql.
Database mysql terdiri dari banyak tabel, namun untuk keperluan user, kita hanya akan
menggunakan tabel user. Berikut query untuk melihat seluruh user yang terdaftar dalam MySQL:
SELECT user,host FROM mysql.user;
Dari query SELECT diatas, kita bisa melihat user apa saja dan pada alamat mana saja yang
terdaftar.
Jika anda mengikuti materi MySQL untuk membuat user dalam Modul ini, didalam MySQL
Server akan terdapat beberapa user, berikut adalah contoh perintah melihat user pada MySQL:
D:\MySQL\bin>mysql u root -pqwerty
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights
reserved.
Dari perintah diatas, pertama kali saya login sebagai root, lalu menggunakan database mysql, dan
terakhir menjalankan query SELECT user,host FROM mysql.user untuk melihat daftar user yang ada di
dalam MySQL. Secara total terdapat 9 user yang merupakan user yang saya buat pada penjelasan sub materi
sebelum ini. Jika anda perhatikan terdapat juga user root di dalam daftar tersebut.
5.1.2 Cara Melihat Hak Akses User MySQL (SHOW GRANTS FOR)
Setelah mendapatkan daftar user MySQL, tentunya kita ingin melihat apa saja hak akses yang
dimiliki oleh masing-masing user tersebut. Untuk melihat hak aksesnya, MySQL menyediakan
query SHOW GRANTS FOR.
lokasi_user adalah alamat IP dari user nama_user, dapat berupa: localhost, 192.168.0.5,
atau %.
Sebagai contoh, kita akan melihat hak akses untuk user admin_kampus dengan query berikut:
mysql> SHOW GRANTS FOR 'admin_kampus' \G
*************************** 1. row ***************************
Grants for admin_kampus@%: GRANT USAGE ON *.* TO 'admin_kampus'@'%'
IDENTIFIED BY PASSWORD '*7438236BE048F242AA18D2EE074296F078CD701A'
*************************** 2. row ***************************
Grants for admin_kampus@%: GRANT CREATE, DROP, ALTER ON `stmik`.*
TO 'admin_kampus'@'%'
2 rows in set (0.00 sec)
Saya menambahkan perintah \G sebagai pengganti titik koma (;) diakhir query agar hasil
tampilan tidak dalam bentuk tabel, tetapi ditampilakan per baris kebawah (pernah kita bahas pada
tutorial Dasar Penulisan Query MySQL), hal ini karena hasil query SHOW GRANTS FOR bisa
menjadi sangat panjang sehingga susah membacanya jika dalam bentuk tabel (silahkan mencoba
query tersebut tanpa format \G untuk melihat perbedaan yang saya maksud, ganti \G menjadi titik
koma ;).
Hasil query SHOW GRANTS FOR diatas terdiri dari 2 baris, baris pertama berisi:
GRANT USAGE ON *.* TO 'admin_kampus'@'%' IDENTIFIED BY PASSWORD '......'
Barisi ini lebih kepada penjelasan bahwa user admin_kampus berada pada lokasi % dan
memiliki password. Password yang tertera di sini adalah hasil fungsi hashing yang digunakan
secara internal oleh MySQL untuk menyimpan password. Saya akan membuat artikel tersendiri
untuk menjelaskan bagaimana password untuk user disimpan dan diproses oleh MySQL. Untuk
saat ini kita sepakati saja bahwa MySQL tidak menyimpan password dalam bentuk aslinya.
Untuk Kalangan Sendiri
Inilah hasil query yang menjelaskan hak akses apa saja yang dimiliki oleh user admin_kampus.
Terlihat bahwa user admin_kampus memiliki hak akses CREATE, DROP, dan ALTER untuk
seluruh tabel dalam database universitas.
Query SHOW GRANTS FOR akan meminta masukan alamat lokasi user jika alamat user
tersebut tidak didefenisikan sebagai %, berikut contoh yang saya maksud:
mysql> SHOW GRANTS FOR 'dosen_ti' \G
ERROR 1141 (42000): There is no such grant defined for user
'dosen_ti' on host '%'
mysql> SHOW GRANTS FOR 'dosen_ti'@'localhost'\G
*************************** 1. row ***************************
Grants for dosen_ti@localhost: GRANT USAGE ON *.* TO 'dosen_ti'
@'localhost' IDENTIFIED BY PASSWORD
'*7438236BE048F242AA18D2EE074296F078CD701A'
*************************** 2. row ***************************
Grants for dosen_ti@localhost: GRANT SELECT, INSERT, UPDATE ON
`stmik`.`mahasiswa_ti` TO 'dosen_ti'@'localhost'
2 rows in set (0.00 sec)
Terlihat bahwa MySQL mengeluarkan pesan error pada saat perintah SHOW GRANTS
FOR
dosen_ti dijalankan,
karena
secara
mengeksekusi SHOW
GRANTS FOR dosen_ti@%, padahal user dosen_ti berada pada localhost, bukan pada %
(perhatikan hasil tabel user yang menjelaskan dosen_ti berada di localhost).
Sehingga ketika saya menggantinya menjadi SHOW GRANTS FOR dosen_ti@localhost,
MySQL sukses menjalankan query tersebut.
Dalam materi kali ini kita telah membahas query SHOW GRANTS FOR untuk melihat hak
akses sebuah user. Jika anda ingin menghapus beberapa user diatas, bisa menggunakan
perintah DROP USER, seperti yang telah kita bahas pada tutorial Cara Membuat dan Menghapus
User MySQL.
Sedangkan jika anda ingin mencabut hak akses user yang ada tanpa menghapus user tersebut,
dapat menggunakan query REVOKE yang akan kita bahas pada materi selanjutnya, Cara
menghapus hak akses user MySQL menggunakan query REVOKE.