Memahami Hak Akses (Privileges) Pada MySQL

OpO ~ Memahami Hak Akses (Privileges) Pada MySQL
OpO ~ Memahami Hak Akses (Privileges) Pada MySQL
Ciao,

OpODab.com - MySQL pada dasarnya merupakan sistem database yang aman. Di MySQL kita dapat mengatur hak akses tiap user terhadap data di database. MySQL memungkinkan kita mengatur hak akses user sampai pada tingkat kolom. Artinya kita dapat mengatur kolom tertentu dapat diakses oleh user siapa saja. Semua pengaturan hak akses (privileges) tersimpan di database mysql yang secara default sudah ada di sistem MySQL.

Di dalam database mysql antara lain terdapat tabel-tabel sebagai berikut:

  • user. Tabel ini digunakan untuk menyimpan informasi user MySQL yang mencakup informasi user, password dan host user, serta informasi hak akses user.
  • db. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap database.
  • host. Tabel ini digunakan untuk menyimpan daftar komputer (bisa berupa alamat IP, nama komputer, atau %) yang berhak mengakses suatu database.
  • tables_priv. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap tabel. Dengan kata lain menyimpan tabel ini dapat diakses oleh siapa dengan hak akses apa saja.
  • columns_priv. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap kolom.
  • procs_priv. Tabel ini digunakan untuk menyimpan informasi mengenai hak akses user terhadap procedure.
Baca Juga : Administrasi dan Keamanan
  • proc. Tabel ini digunakan untuk menyimpan informasi mengenai daftar procedure dalam MySQL.
  • func. Tabel ini digunakan untuk menyimpan informasi mengenai function yang didefinisikan di MySQL.

GRANT dan REVOKE di MySQL Untuk mengatur hak akses di MySQL, pada dasarnya kita menggunakan bentuk perintah GRANT dan REVOKE. Berikut ini bentuk umum perintah GRANT dan REVOKE secara sederhana :

GRANT priv_type
ON {tbl_name | * | *.* | db_name.*}
TO user_name [IDENTIFIED BY 'password']
[WITH GRANT OPTION]
REVOKE priv_type
ON {tbl_name | * | *.* | db_name.*}
FROM user_name

Berikut ini pilihan untuk priv_type dalam bentuk umum perintah GRANT dan REVOKE di atas:

ALL PRIVILEGES FILE RELOAD
ALTER INDEX SELECT
CREATE INSERT SHUTDOWN
DELETE PROCESS UPDATE
DROP REFERENCES USAGE

Perintah GRANT dan REVOKE dapat digunakan untuk membuat user baru maupun mengatur hak akses user yang sudah ada dengan hak akses (privileges ) tertentu. Tingkatan hak akses user dapat terbagi menjadi tingkatan global (tersimpan di tabel mysql.user), database (tersimpan di tabel mysql.host dan mysql.db), tabel (tersimpan di tabel mysql.tables_priv) dan kolom (tersimpan di tabel mysql.columns_priv). Setiap perubahan hak akses di MySQL, termasuk menambahkan user baru, tidak akan berlaku sebelum diakhiri dengan perintah FLUSH PRIVILEGES.

Baca Juga : Dasar Perintah SQL

Menambahkan dan Mengatur Hak Akses User
Untuk menambahkan dan mengatur hak akses (privileges) user di MySQL, kita dapat menggunakan 2 cara.

  • Pertama langsung melakukan INSERT atau UPDATE ke tabel mysql.user, dan tabel-tabel lain sesuai dengan hak aksesnya. Cara ini tidak disarankan karena mengandung resiko terjadi kesalahan.
  • Kedua adalah dengan perintah GRANT dan REVOKE. Perintah ini mudah dipahami dan diterapkan karena lebih sederhana. MySQL secara otomatis akan menyimpan informasi user ke tabel sesuai dengan hak aksesnya. Berikut ini beberapa contoh menambahkan user baru di MySQL:


Menambahkan user baru dengan nama user lholhox’ yang dapat mengakses semua database dari komputer localhost’ dengan password lholhox’. User ini juga berhak menjalankan perintah GRANT untuk user lain.

GRANT ALL PRIVILEGES ON *.* TO lholhox@localhost IDENTIFIED BY 'lholhox' WITH GRANT OPTION;

Menambahkan user baru dengan nama user ‘agus’, tidak dapat mengakses database (*.*), hanya dapat mengakses dari komputer dengan IP ‘192.168.1.5’ dan password ‘agus’.

GRANT USAGE ON *.* TO agus@192.168.1.5 IDENTIFIED BY 'agus';


Menambahkan user baru dengan nama user ‘admin, hanya dapat mengakses database ‘penjualan’, hanya dapat mengakses dari komputer ‘localhost’ dan dengan password ‘admin’.

GRANT ALL PRIVILEGES ON penjualan.* TO admin@localhost IDENTIFIED BY 'admin';

Berikut ini beberapa contoh mengatur hak akses user yang sudah ada di MySQL:

Mengubah hak akses user ‘agus’ agar dapat mengakses database ‘penjualan’.

GRANT ALL PRIVILEGES ON penjualan.* TO agus@192.168.1.5; FLUSH PRIVILEGES;

Mengubah hak akses user ‘admin’ agar dapat CREATE di database ‘penjualan’.

GRANT CREATE ON penjualan.* TO admin@localhost;
FLUSH PRIVILEGES;

Menghapus Hak Akses User
Untuk menghapus hak akses user, dapat dilakukan dengan perintah REVOKE. Berikut ini contohnya:

Menghapus hak akses user ‘admin’ terhadap database ‘penjualan’.
REVOKE CREATE ON penjualan.* FROM admin@localhost;
FLUSH PRIVILEGES;

Mengganti Password User
Untuk mengganti password suatu user di MySQL, kita tinggal menjalankan perintah UPDATE terhadap field Password di tabel mysql.user. Password tersebut diekripsi dengan fungsi PASSWORD().


Berikut ini perintah SQL yang dapat digunakan untuk mengganti password user:

UPDATE user SET Password=PASSWORD(‘123’)
WHERE User=’admin’ AND Host=’localhost’;
SET PASSWOR
D FOR admin@localhost = PASSWORD (‘123’);
FLUSH PRIVILEGES;

Ciao,

OpODab,

Memahami berberapa hak akses atau privileges yang terdapat pada mysql

Label: ,

Posting Komentar

[disqus][facebook]

Author Name

{facebook#https://www.facebook.com/OpoWaeDab} {twitter#https://twitter.com/opowaedab} {google-plus#https://plus.google.com/+OpODabBlogspot} {pinterest#https://www.pinterest.com/OpODab/} {youtube#https://www.youtube.com/c/opogendanggendut}

Formulir Kontak

Nama

Email *

Pesan *

Diberdayakan oleh Blogger.