Dalam tutorial ini, kita akan menambahkan pengguna baru di MySQL dan memberikan berbagai jenis hak istimewa pada database MySQL.
Server MySQL memungkinkan kita untuk membuat banyak akun pengguna dan memberikan hak istimewa yang sesuai sehingga pengguna dapat mengakses dan mengelola database. Setelah Anda menginstal MySQL di server, Anda perlu membuat database dan akun pengguna tambahan.
Untuk menjalankan perintah berikut, pertama-tama Anda harus masuk ke Server MySQL dengan akun root MySQL.
mysql -u root -p
Cara Membuat Pengguna MySQL Baru
CREATE USER
pernyataan membuat pengguna baru di server database MySQL. Berikut adalah sintaks dasar dari pernyataan tersebut:
CREATE USER 'username'@'hostname' IDENTIFIED BY 'password';
Pada sintaks di atas, pastikan untuk mengganti nama pengguna dan sandi dengan nama pengguna dan kata sandi yang Anda inginkan.
Setel hostname
ke localhost
jika Anda ingin pengguna dapat terhubung ke Server MySQL hanya dari localhost, yang berarti "komputer ini". Jika Anda ingin pengguna dapat terhubung dari host mana pun, gunakan %
karakter pengganti sebagai nama host.
Misalnya kita akan membuat user dengan nama james
, dan sandi MyStrongPass123
menggunakan perintah berikut:
CREATE USER 'james'@'localhost' IDENTIFIED BY 'MyStrongPass123';
Namun, pengguna ini tidak akan dapat bekerja dengan database MySQL mana pun sampai mereka diberikan hak istimewa tambahan.
Cara Memberikan Hak Istimewa kepada Pengguna MySQL
Tepat setelah berhasil membuat pengguna baru, kami dapat memberikan hak istimewa kepada pengguna baru ini. Dalam kebanyakan kasus, Anda akan memberikan hak istimewa kepada pengguna MySQL berdasarkan database tertentu yang dapat diakses oleh akun tersebut.
Ada beberapa jenis hak istimewa yang dapat diberikan ke akun pengguna. Anda dapat menemukan daftar lengkap hak istimewa yang didukung oleh MySQL di sini.
ALL PRIVILEGES
– Memberikan semua hak istimewa ke akun pengguna.ALTER
– Pengguna dapat mengubah struktur tabel atau database.CREATE
– Akun pengguna diizinkan untuk membuat database dan tabel.DROP
– Akun pengguna diizinkan untuk menjatuhkan database dan tabel.DELETE
– Akun pengguna diizinkan untuk menghapus baris dari tabel tertentu.INSERT
– Akun pengguna diizinkan untuk memasukkan baris ke dalam tabel tertentu.SELECT
– Akun pengguna diizinkan untuk membaca database.UPDATE
– Akun pengguna diizinkan untuk memperbarui baris tabel.
Untuk memberi pengguna akses ke database MySQL dan memberikan izin, Anda biasanya perlu menggunakan GRANT
berikut pernyataan:
GRANT permission_type ON privilege_level TO 'username'@'hostname';
Untuk memberikan semua hak istimewa kepada pengguna james
pada jamesdb
database, gunakan perintah berikut:
GRANT ALL PRIVILEGES ON jamesdb.* TO 'james'@'localhost';
Ketik yang berikut untuk memberikan hanya SELECT
dan INSERT
hak istimewa kepada pengguna james
pada jamesdb
basis data:
GRANT SELECT, INSERT ON jamesdb.* TO 'james'@'localhost';
Grand SELECT
hak istimewa kepada pengguna james
hanya untuk salaries
tabel pada employees
basis data:
GRANT SELECT ON employees.salaries TO 'james'@'localhost';
Dalam beberapa kasus, Anda mungkin ingin membuat 'pengguna super' lain. Untuk memberikan pengguna dengan hak istimewa yang sama dengan pengguna root MySQL , gunakan perintah berikut, yang memberikan hak istimewa global kepada pengguna james menghubungkan melalui localhost :
GRANT ALL ON *.* TO 'james'@'localhost' WITH GRANT OPTION;
Mengubah Kata Sandi Akun Pengguna MySQL
Misalkan Anda ingin mengubah sandi untuk james
pengguna yang terhubung dari localhost
ke NewStrongPass123
, Anda perlu menjalankan pernyataan SQL berikut:
ALTER USER 'james'@'localhost' IDENTIFIED BY 'NewStrongPass123';
Dalam pernyataan SQL di atas, pastikan untuk mengubah james
dengan pengguna database Anda dan localhost
dengan host pengguna.
Tampilkan Hak Istimewa untuk Pengguna di MySQL
Di MySQL, Anda dapat menggunakan SHOW GRANTS
perintah untuk menampilkan semua informasi hibah untuk pengguna. Mari kita ambil beberapa contoh.
Pernyataan berikut menggunakan SHOW GRANTS
pernyataan untuk menampilkan hak istimewa yang diberikan untuk pengguna saat ini:
SHOW GRANTS;
Untuk melihat hibah untuk pengguna MySQL, Anda dapat menggunakan SHOW GRANTS
saat menentukan nama pengguna:
SHOW GRANTS FOR 'james'@'localhost';
Cabut Hak Istimewa dari Akun Pengguna MySQL
Sintaks untuk mencabut satu atau lebih hak istimewa dari akun pengguna hampir sama seperti saat memberikan hak istimewa.
Jika Anda perlu mencabut hak istimewa dari pengguna james
pada jamesdb
database, terapkan sintaks yang mirip dengan yang Anda gunakan saat memberikan izin:
REVOKE ALL PRIVILEGES ON jamesdb.* FROM 'james'@'localhost';
Hapus Pengguna dari MySQL
Alih-alih mencabut hak istimewa, Anda mungkin ingin menghapus pengguna itu juga. Jadi, Anda dapat menghapus pengguna database menggunakan perintah berikut:
DROP USER 'james'@'localhost';
Perintah di atas akan menghapus pengguna james
bersama dengan semua hak istimewanya.
Menyimpan Perubahan Anda
Sebagai langkah terakhir, setiap kali Anda memperbarui atau mengubah izin, pastikan untuk menggunakan FLUSH PRIVILEGES
perintah.
FLUSH PRIVILEGES;
Kesimpulan
Setelah menyelesaikan tutorial ini, Anda akan memiliki pemahaman tentang cara menambahkan pengguna baru dan memberi mereka berbagai izin dalam database MySQL.
Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.