info-b

Tutorial Belajar MySQL Part 35: Cara Mengalihkan Hak Akses User MySQL (GRANT OPTION)

Posted on

Pada panduan MySQL ini, kita akan membahas cara mengalihkan/memberikan hak akses dari seorang user MySQL ke user lainnya. Bagi kebutuhan ini MySQL menyediakan command GRANT OPTION.


Pengertian Hak Akses GRANT OPTION

Ada kalanya seorang user MySQL ingin mengalihkan hak akses yang ia miliki ke user lainnya.

Misalkan mahasiswa ilkom telah dirasa terlalu banyak, sehingga user ilkom_admin1 membutuhkan admin baru bagi membantunya. User ilkom_admin1 dapat saja mengalihkan hak akses yang dimilikinya (tanpa mengapus hak akses sendiri) ke user ilkom_admin2.

Kemampuan bagi memberikan hak akses inilah yang disebut dengan hak GRANT OPTION. Tetapi syarat bagi seorang user dapat mengalihkan hak aksesnya yaitu sewaktu perancangan user asal, user root mesti memberikan hak GRANT OPTION.


Cara Pemakaian dan Penulisan query GRANT OPTION (1)

Terdapat beberapa cara penulisan GRANT OPTION. Cara pertama-tama yaitu menuliskan GRANT OPTION secara terpisah dengan hak akses. Cara ini digunakan kalau user telah ada dan hak akses telah diberikan.

Format mendasar penulisan GRANT OPTION:

  • GRANT OPTION yaitu command yang dituliskan kalau kita mengizinkan user tersebut dapat memberikan hak akses kepada user lainnya.
  • nama_database yaitu nama database yang ingin diberikan hak akses. Seandainya kita mengizinkan user tersebut dapat mengakses segala database yang terdapat, nama_database dapat ditulis dengan tanda bintang (*).
  • nama_tabel yaitu nama tabel yang ingin diberikan hak akses. Seandainya kita mengizinkan user dapat menggunakan segala  tabel, nama_tabel dapat ditulis dengan tanda bintang (*).
  • nama_user yaitu nama dari user yang akan diberikan hak akses.
  • lokasi_user yaitu tempat tinggal IP dari user yang ingin diberikan hak akses.

Selaku contoh latihan, saya akan merancang user ilkom_admin1 dengan hak GRANT OPTION, lalu memberikan akses tersebut ke user ilkom_admin2.

Bagi langkah awal, saya akan masuk selaku root dan merancang user ilkom_admin1 dengak hak akses query SELECT di tabel mahasiswa_ilkom, lalu memberikan hak akses GRANT OPTION bagi user ilkom_admin1. Berikut query yang digunakan:

Perhatikan di baris setelah saya merancang user ilkom_admin1 (baris ke-14) dan hak akses SELECT (baris ke-17). Di baris ke-21 saya memberikan command GRANT OPTION bagi user ilkom_admin1. Lalu di baris ke 25 saya menggunakan menggunakan query SHOW GRANTS FOR bagi memeriksa hak akses ilkom_admin1, dan seperti yang terlihat di baris ke-35, ada tambahan penjelasan di user ilkom_admin1 ‘WITH GRANT OPTION’.

Seandainya sahabat mencoba masuk selaku user ilkom_admin1, user tersebut dapat melihat isi seluruh tabel mahasiswa_ilkom. Bagi mencoba memberikan hak akses yang sama kepada user ilkom_admin2, pertama-tama dari user root kita akan merancang user ilkom_admin2. Berikut querynya:

Command diatas digunakan bagi merancang user ilkom_admin2 tanpa hak akses, karena kita akan memberikan hak aksesnya lewat user ilkom_admin1. Bagi mencoba hak GRANT OPTION ini, keluarlah dari root, dan masuk selaku ilkom_admin1.

Setelah masuk selaku user ilkom_admin1 (baris ke-4), saya menjalankan beberapa query bagi mengecek hak akses ilkom_admin1 dengan command SELECT di tabel mahasiswa_ilkom (baris ke-17 dan 29). Te
rlihat bahwa user ilkom_admin1 dapat menjalankan command SELECT tersebut tanpa masalah.

Di baris ke 40 dan 44 saya menjalankan command GRANT bagi meneruskan hak akses SELECT kepada user ilkom_admin2. Baris 40 berjalan sukses karena user ilkom_admin1 mempunyai hak akses GRANT OPTION bagi query SELECT.

Namun command di baris ke 44, menghasilkan error karena user ilkom_admin1 tak mempunyai hak akses bagi command INSERT, sehingga tak dapat meneruskan hak aksesnya kemapa user ilkom_admin2.

Selaku langkah terakhir, saya akan mencoba masuk dengan user ilkom_admin2 bagi testing command SELECT yang didapat dari user ilkom_admin1.

Seperti yang diinginkan, user ilkom_admin2 dapat menjalankan command SELECT yang diberikan oleh user ilkom_admin1.


Cara Pemakaian dan Penulisan query GRANT OPTION (2)

Selain format penulisan GRANT OPTION yang diberikan di command terpisah setelah merancang user dan hak aksesnya seperti contoh sebelumnya, MySQL mempunyai cara kedua dengan menyatukannya penulisan GRANT OPTION dengan pemberian hak akses.

Berikut yaitu format mendasar penulisannya:

Perhatikan bahwa penambahan kata WITH GRANT OPTION di bagian ahir command.

Selaku contoh, saya akan merancang user ekonomi_admin1 dengan hak akses ALL PRIVILEGES di tabel mahasiswa_ekonomi dengan hak GRANT OPTION.

Dari query diatas, saya menggabungkan query pemberian hak akses dengan pemberian GRANT OPTION. Selaku latihan, sahabat dapat meneruskan merancang user ekonomi_admin2, dan memberikan hak akses ALL dari user ekonomi_admin1.

Hak GRANT OPTION sebaiknya diberikan dengan hati-hati. Karena sifatnya yang dapat meneruskan hak akses kepada orang lain, command GRANT OPTION dapat digunakan dengan cara yang diluar prediksi. User yang seharusnya tak mempunyai akses bagi tabel tertentu, dapat saja tiba-tiba menambahkan data baru di tabel tersebut karena mendapat hak akses dari user lainnya.

Namun di kasus-kasus tertentu, hak akses GRANT OPTION memberikan fleksibilitas yang tinggi pada mendesain database.


Berikutnya kita akan membahas cara MySQL menyimpan password user, di panduan Pengertian Guna Hashing dan Cara MySQL Menyimpan Password.


Sumber https://www.duniailkom.com/