Mari kita lihat cara memberikan izin (disebut hak istimewa) kepada pengguna database MySQL
Secara default saat Anda membuat pengguna MySQL baru menggunakan sintaks
CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
pengguna tidak bisa berbuat banyak. Kita dapat mengatakan bahwa itu tidak bisa apa-apa, sebenarnya.
Itu tidak bisa membaca data dari database yang ada, apalagi memodifikasi data. Dan itu bahkan tidak bisa membuat database baru.
Untuk membuat pengguna melakukan apa saja, Anda harus memberikan hak istimewa untuk itu.
Anda dapat melakukannya menggunakan GRANT
perintah.
Kita dapat menggunakan GRANT <permission>
, menggunakan kata kunci izin berikut:
CREATE
DROP
DELETE
INSERT
SELECT
UPDATE
ALL PRIVILEGES
Berikan hak istimewa untuk membuat database baru kepada pengguna
GRANT CREATE ON *.* TO '<username>'@'localhost';
Berikan hak istimewa kepada pengguna untuk membuat tabel baru di database tertentu
GRANT CREATE ON <database>.* TO '<username>'@'localhost';
Berikan hak istimewa untuk membaca (meminta) database tertentu kepada pengguna
GRANT SELECT ON <database>.* TO '<username>'@'localhost';
Berikan hak istimewa untuk membaca tabel database tertentu ke pengguna
GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';
Berikan hak istimewa untuk menyisipkan, memperbarui, dan menghapus baris dalam database tertentu untuk pengguna
GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';
Berikan hak istimewa untuk menghapus tabel dalam database tertentu kepada pengguna
GRANT DROP ON <database>.* TO '<username>'@'localhost';
Berikan hak istimewa untuk menghapus database kepada pengguna
GRANT DROP ON *.* TO '<username>'@'localhost';
Berikan semua hak istimewa pada database tertentu kepada pengguna
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';
Berikan semua hak istimewa kepada pengguna
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Cabut hak istimewa
Contoh untuk mencabut DROP
hak istimewa di <database>
:
REVOKE DROP ON <database>.* TO '<username>'@'localhost';
Untuk mencabut semua hak istimewa, jalankan:
REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';
Anda dapat memvisualisasikan hak istimewa dari satu pengguna dengan menjalankan:
SHOW GRANTS FOR '<username>'@'localhost';