MySQL 9: Memberikan Hak Akses (Privileges) Pada User

Setelah kita mempelajari bagaimana user root itu bekerja, membuat user dan menghapus, dan membuat database beserta tabelnya.

Sekarang kita akan memberikan hak akses pada user-user tertentu dengan batasan database yang bisa diakses.

Pada sebuah project pembuatan atau pengaplikasian database MySQL, terkadang ada beberapa user yang turut berkontribusi dalam pembangunan database yang tentunya tidaklah sedikit.

Terkadang juga, beberapa user tidak dapat mengakses database tertentu untuk melihat keseluruhan isi database, mengisi, maupun mengubahnya.

Maka dari itu diperlukanlah hak akses (Privileges) terhadap database yang dibuat untuk user-user yang memiliki kepentingan didalamnya.

Note : Pemberian hak akses user ini hanya dilakukan melalui user root atau user yang memiliki akses tertinggi terlebih dahulu. Pastikan untuk memberikan akses user lain, teman-teman sudah login menggunakan user root.

Kurang lebih rumus perintah hak akses user database MySQL dibawah ini

grant hak_akses on nama_database.nama_tabel to ‘nama_user’@’lokasi_user’;

Penjelasan Perintah Hak Akses User MySQL

Grant > Perintah untuk memberikan hak akses user pada database maupun table MySQL

Hak_Akses > Hak akses yang diberikan kepada user bisa dengan membuat, melihat, bahkan menambahkan element-element penting pada database MySQL. Ada juga pemberian hak akses terbatas.

Nama_Database > Pemberian hak akses user ke database ini diperlukan untuk mengakses keseluruhan database yang bersangkutan dengan penambahan tanda bintang (*)

Nama_Tabel > Ini merupakan tabel yang akan diberikan hak aksesnya terhadap isi tabel pada database MySQL, adapun penggantiannya dapat menggunakan tanda bintang(*)

Lokasi_User > Lokasi user yang akan diberikan hak akses.

Sebagai contoh pembuatan akses user kali ini kita akan menggunakan user bernama bukadiskusi2 dan database bernama membuat user2

Kemudian untuk tabelnya kita menggunakan tabel profiluser.

Jika kita hanya ingin memberikan hak akses kepada user bukadiskusi2 hanya dapat melihat tabel profiluser maka perintah yang dijalankan menggunakan rumus dibawah ini

grant select on membuatuser.profileuser to ‘membuatuser2’@’localhost’;

MariaDB [membuatuser]> grant select on membuatuser.profileuser to 'membuatuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

MariaDB [membuatuser]>

Dengan catatan, apabila didalam database membuatuser terdapat beberapa macam tabel maka jika akan memberikan seluruh hak akses pada seluruh tabel menggunakan perintah dibawah ini.

grant select on membuatuser.* ‘membuatuser2’@’localhost’

MariaDB [membuatuser]> grant select on membuatuser.* to 'membuatuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

MariaDB [membuatuser]>

Kemudian apabila kita menginginkan user mendapatkan hak akses penuh dapat melihat, menambah, maupun mengedit isi dari database dan tabel maka gunakan perintah ‘all’. Berikut ini tampilan rumus perintah pembuatas akses privilege all.

grant all on membuatuser.* to ‘bukadiskusi2’@’localhost’;

MariaDB [membuatuser]> grant all on membuatuser.* to 'membuatuser2'@'localhost';
Query OK, 0 rows affected (0.00 sec)

MariaDB [membuatuser]>

Untuk dapat melihat hasil pemberian akses privilege ke database dan tabel MySQL silahkan keluar dulu dari user root dan mulai kembali menggunakan user yang telah dibuat tadi.

C:\>"xampp/mysql/bin/mysql.exe" -u membuatuser2 -p
Enter password: ********************
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 12
Server version: 10.1.38-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| membuatuser        |
| test               |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> use membuatuser;
Database changed
MariaDB [membuatuser]> show tables;
+-----------------------+
| Tables_in_membuatuser |
+-----------------------+
| profileuser           |
+-----------------------+
1 row in set (0.08 sec)

MariaDB [membuatuser]> desc profileuser;
+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| idpengguna    | char(10)    | NO   | PRI | NULL    |       |
| namapengguna  | varchar(30) | YES  |     | NULL    |       |
| emailpengguna | varchar(30) | YES  |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+
3 rows in set (0.13 sec)

MariaDB [membuatuser]>

Nah sekarang teman-teman sudah bisa membuat user dan memberikan hak akses user ke database dan tabel MySQL. Semoga dapat memberikan manfaat.

Add a Comment

Your email address will not be published. Required fields are marked *