Belajar MySQL Part 28; Jenis Jenis Hak Akses (Privileges) - Bima Zainudin Ikhsan

Breaking

Home Top Ad

Responsive Ads Here

Saturday, March 18, 2017

Belajar MySQL Part 28; Jenis Jenis Hak Akses (Privileges)

Jika pada tutorial sebelumnya kita telah membahas cara membuat user dalam MySQL, Dalam tutorial kali ini kita akan membahas jenis-jenis hak akses yang ada pada MySQL. Hak akses ini nantinya digunakan untuk membatasi hak dari masing-masing user dalam mengunakan MySQL.


Jenis Hak Akses Berdasarkan Cakupan Akses Level
Seperti yang telah kita pelajari pada tutorial Cara Membuat Hak Akses (Privileges) User MySQL, bahwa MySQL menyediakan berbagai tingkatan level hak akses. Setiap user dapat dibatasi untuk dapat mengakses baik itu sebuah database tertentu saja, tabel tertentu, atau bahkan hanya kolom tertentu.

Jika didasarkan pada pengelompokkan ini, kita dapat membagi hak akses MySQL menjadi 4 level tingkatan, yaitu:


1. Hak Akses Global (*.*)

Hak akses ini berarti user dapat memiliki hak akses untuk seluruh database yang terdapat di dalam MySQL. Contoh penulisan query GRANT untuk level ini adalah:

GRANT SELECT ON *.* TO 'user'@'localhost';

Perhatikan cara penulisan nama_database.nama_tabel, dimana kita menulisnya dengan *.*, sehingga user tersebut dapat mengakses seluruh tabel pada seluruh database.



2. Hak Akses Level Database (nama_database.*)
Hak akses ini berarti user memiliki hak akses penuh untuk sebuah database. Contoh penulisan query GRANT untuk level database ini adalah:
GRANT SELECT ON universitas.* TO 'user'@'localhost';

Untuk penulisan nama_database.nama_tabel, kita membatasi nama database, namun memberikan hak akses untuk seluruh tabel, penulisannya adalah nama_database.*


3. Hak Akses Level Tabel (nama_database.nama_tabel)
Hak akses ini berarti user memiliki hak akses untuk sebuah tabel yang berada pada sebuah database. Contoh penulisan query GRANT untuk level ini adalah:
GRANT SELECT ON universitas.mahasiswa_ilkom TO 'user'@'localhost';

Hak akses yang dimiliki user hanya terbatas pada level sebuah tabel saja.

 
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 universitas.mahasiswa_ilkom 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.



Tipe-Tipe Hak Akses dalam MySQL
Untuk setiap level diatas, kita dapat menerapkan berbagai tipe hak akses yang ingin diberikan, apakah itu hanya untuk melihat saja (query SELECT), menambahkan data (query INSERT), 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).








Pengertian Hak Akses GRANT ALL

Pada tutorial Cara Membuat Hak Akses (Privileges) User MySQL dengan query GRANT, kita telah melihat penulisan hak akses GRANT ALL. Namun sebenarnya apa saja hak akses yang bisa dilakukan dengan GRANT ALL? Dan apa saja hak akses lainnya?

GRANT ALL adalah cara penyingkatan memberikan hampir semua hak akses kepada sebuah user tertentu. Hak akses ini mencakup seluruh query dasar:

ALTER, CREATE, CREATE TEMPORARY TABLES, DELETE, DROP, EXECUTE, FILE, INDEX, INSERT, LOCK TABLES, PROCESS, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SELECT, SHOW DATABASES, SHUTDOWN, SUPER, dan UPDATE.

Sebagian besar hak akses diatas belum kita bahas, namun ini dapat menjadi referensi jika anda memberikan hak akses dengan GRANT ALL kepada sebuah user.



Untuk lebih memahami cara pembuatan user dan hak aksesnya, saya akan memberikan beberapa contoh, dan jika anda sudah mempelajari tutorial sebelumnya, contoh disini akan mudah dipahami.

1. Buatlah user ‘admin2’ yang dapat melihat, merubah dan menambahkan data ke tabel mahasiswa, namun tidak dapat menghapus data yang ada. User tersebut hanya dapat diakses dari localhost.

Berikut adalah query yang dibutuhkan:



2. Buatlah user ‘admin3’ yang dapat melihat seluruh tabel di dalam database mahasiswa, namun hanya pada kolom kode_matakul,nama_matkul dan nama_jurusan. User tersebut akan mengakses database dari IP 192.168.0.4 .


Sekian

No comments:

Post a Comment