Cara Memberi Hak Akses Kepada User MySQL

Cara Memberi Hak Akses Kepada User MySQL

Cara Memberi Hak Akses Kepada User MySQL - Hak akses didalam Database MySQL adalah hak yang diberikan kepada User untuk dapat mengakses data / record tertentu. Setelah mengetahui Jenis-jenis Hak Akses dalam MySQL dan Cara Membuat User di MySQL. Sekarang kita akan membahas tentang bagaimana memberi Hak akses kepada User didalam MySQL, dalam pemberian hak akses ini tentu kita harus masuk melalui user root terlebih dahulu.
Didalam pemberian Hak akses, seorang admininistrator yang memegang kendali user root harus terlebih dahulu mengetahui tujuan pemberian hak akses kepada user tertentu. fungsi ini tentunya untuk memanajemen keperluan data didalam mengelola suatu sistem basis data. didalam artikel ini kita mencoba membuat user dengan nama admin_dosen, dimana user admin_dosen dapat mengelola data-data dosen didalam tabel yang telah disediakan didalam database. namun admin_dosen ini tidak dapat mengelola database. dia hanya berhak mengakses tabel yang berhubungan dengan dosen.

Menyiapkan User
Sebagai Contoh disini saya akan membuat User dengan nama "admin_dosen" yang hanya dapat Melihat, Menginput, Mengedit dan Menghapus Data didalam tabel "daftar_dosen" nantinya. namun User ini tidak dapat mengedit dan menghapus Tabel tersebut.
mysql> CREATE USER "admin_dosen"@"localhost" IDENTIFIED BY "admin123";
Query OK, 0 rows affected (0.10 sec)

mysql>
User diatas dapat diakses melalui komputer lokal (localhost). Pembahasan ini sudah kita jelaskan pada artikel Cara Membuat User MySQL dengan Batasan Localhost dan IP Address.


Menyiapkan Database
Untuk menyiapkan database ini saya hanya menyiapkan Database dengan 4 (empat) tabel didalamnya, tabel dengan nama daftar_dosen yang nantinya dapat diakses oleh User admin_dosen.
mysql> show tables;
+-------------------+
| Tables_in_idmysql |
+-------------------+
| daftar_dosen      |
| dosen_site        |
| mahasiswa         |
| mata_kuliah       |
+-------------------+
4 rows in set (0.00 sec)

mysql> select*from daftar_dosen;
+--------+--------------+-----------------+
| nip    | alamat_dosen | nama_dosen      |
+--------+--------------+-----------------+
| DS0102 | Jakarta      | Suryadi         |
| DS0103 | Pekanbaru    | Husain Abdullah |
| DS0104 | Makassar     | Rahmat Hidayat  |
| DS0105 | Surabaya     | Rahman Abdillah |
| DS0106 | Aceh         | Suarni Sukur    |
| DS0107 | Semarang     | Maemunah        |
| DS0108 | Bekasi       | Sukarya         |
+--------+--------------+-----------------+
7 rows in set (0.00 sec)

mysql>

Memberi Hak Akses Kepada User dengan Query GRANT
Untuk memberi hak akses dilakukan di User root, jika anda masih berada dalam Database yang harus dilakukan yaitu keluar dalam database dengan query exit dan masuk ke user Root masing-masing. Format dasar dari Query GRANT yaitu. 
GRANT hak_akses ON nama_database.nama_tabel TO "nama_user"@"lokasi_user";
hak akses adalah priveleges yang akan diberikan kepada User. Query yang diperbolehkan seperti SELECT, INSERT, UPDATE, DELETE dan Query lainnya.
nama_database adalah nama database yang akan diberikan hak akses kepada User.
nama_tabel adalah nama tabel didalam database yang akan diberikan hak akses kepada User. 
nama_user adalah nama user yang akan diberikan hak akses terhadap tabel.
lokasi_user adalah lokasi user berada seperi localhost dan IP Address.

Catatan : Untuk memberi Hak penuh Untuk semua query didalam Database dan Tabel cukup memberi query GRANT ALL tanpa harus menulis query yang lainnya.
mysql> GRANT select,insert,update,delete ON idmysql.daftar_dosen TO "admin_dosen"@"localhost";
Query OK, 0 rows affected (0.06 sec)

mysql>

Untuk mencoba apakah query diatas berhasil. keluar dari User Root dan masuk sebagai User admin_dosen.
mysql> exit
Bye
achmad@dreamweaver:~$ mysql -u admin_dosen -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.5.49-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2016, 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> use idmysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT*FROM daftar_dosen;
+--------+--------------+-----------------+
| nip    | alamat_dosen | nama_dosen      |
+--------+--------------+-----------------+
| DS0102 | Jakarta      | Suryadi         |
| DS0103 | Pekanbaru    | Husain Abdullah |
| DS0104 | Makassar     | Rahmat Hidayat  |
| DS0105 | Surabaya     | Rahman Abdillah |
| DS0106 | Aceh         | Suarni Sukur    |
| DS0107 | Semarang     | Maemunah        |
| DS0108 | Bekasi       | Sukarya         |
+--------+--------------+-----------------+
7 rows in set (0.00 sec)

mysql> INSERT INTO daftar_dosen VALUES ("DS019","Jakarta","Abdullah");
Query OK, 1 row affected (0.16 sec)

mysql> UPDATE daftar_dosen SET nama_dosen="Abdul" WHERE nip="DS019";
Query OK, 1 row affected (0.15 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> DELETE FROM daftar_dosen where nip="DS019";
Query OK, 1 row affected (0.05 sec)

mysql> 

Dari Contoh tabel diatas dapat kita simpulkan bahwa user admin_dosen dapat melihat, menginput, mengedit dan menghapus data-data yang ada pada tabel daftar_dosen.

Sekian artikel Cara Memberi Hak Akses Kepada User MySQL, nantikan artikel tentang Basis Data di blog ini.

Jika Kalian menyukai Artikel ini Silahkan Bagikan. Bila ada yang ingin berdiskusi tentang Judul Artikel diatas atau ada pertanyaan yang ingin ditanyakan silahkan menggunakan Fasilitas Komentar dan Fasilitas Contact Form. atau bisa mengirim langsung ke email struktur.mysql@gmail.com.
Previous
Next Post »