August 12, 2023 mysql
MySQL Membuat User dan Memberi Hak Akses
MySQL server memiliki manamejen user dan hak aksesnya (privileges) agar dapat mengakses dan mengelola database.
Setiap user minimal memiliki nama, password, host.
Setiap user juga dapat memiliki hak akses untuk membatasi user dalam mengakses dan mengelola database.
Langsung saja berikut langkah-langkah membuat user dan hak aksesnya.
Masuk Ke MySQL Server
Untuk membuat user pada mysql server anda perlu masuk ke server mysql terlebih dahulu dengan user yang sudah ada dengan hak akses CREATE USER
.
mysql -uadmin -padmin
Jika belum ada user, biasanya ada user default root
dengan password string kosong atau yang diatur pada saat instalasi mysql.
mysql -uroot -p
Jika anda menggunakan linux dan punya akses ke super user, anda bisa masuk tanpa user dengan sudo
sudo mysql
Membuat User
Membuat user bisa dilakukan dengan statement CREATE USER
, diikuti informasi user dan passwordnya.
Minimal informasi user adalah nama
dan host
.
Berikut contoh statement minimal untuk membuat user.
CREATE USER 'ibrahim'@'localhost' IDENTIFIED BY 'securepassword';
Anda bisa mengganti localhost
menjadi host yang diinginkan.
Memberi Hak Akses Kepada User
Memberi hak akses kepada user bisa dilakukan dengan statement GRANT
, diikuti nama hak aksesnya, lalu nama database dan tabelnya, lalu user yang akan diberi hak akses.
Contoh minimal memberi hak akses kepada user.
GRANT ALL ON *.* TO 'ibrahim'@'localhost';
Contoh diatas saya memberi semua hak akses pada semua db dan tabel di dalamnya kepada user ibrahim
di host localhost
.
Hak akses ALL
bisa diganti ke hak akses lain yang lebih spesifik, seprti SELECT
, DELETE
, UPDATE
, dsb. Contoh.
GRANT SELECT ON my_db.some_table TO 'ibrahim'@'localhost';
ON
clause pada statement GRANT
berfungsi untuk menentukan database dan tabel pada hak akses tersebut, tanda *
artinya hak akses berlaku pada semua database atau semua tabel.
Masuk Ke User
User yang sudah dibuat bisa langsung dicoba untuk mengakses server database.
mysql -uibrahim -psecurepassword
Menampilkan Daftar User
Semua user mysql disimpan di database mysql
tabel user
.
Untuk menampilkannya tingga di SELECT
saja.
SELECT User, Host FROM mysql.user;
-- +------------------+-----------+
-- | User | Host |
-- +------------------+-----------+
-- | ibrahim | localhost |
-- | mysql.infoschema | localhost |
-- | mysql.session | localhost |
-- | mysql.sys | localhost |
-- | root | localhost |
-- +------------------+-----------+
-- 5 rows in set (0.00 sec)
Lebih Lanjut
Untuk membuat user dengan informasi yang lebih lengkap seperti ada informasi kapan password expire, tls, password plugin, bisa dilihat di https://dev.mysql.com/doc/refman/5.7/en/create-user.html.
Untuk informasi pemberian hak akses kepada user yang lebih lengkap bisa dilihat di https://dev.mysql.com/doc/refman/5.7/en/grant.html.