Pendahuluan
MySQL adalah aplikasi database untuk Linux dan bagian dari tumpukan LAMP yang populer (Linux, Apache, MySQL, PHP). Instalasi MySQL mencakup opsi pengelolaan melalui pengguna root atau akun pengguna tertentu.
Untuk alasan keamanan, biasanya lebih baik membuat dan menangani data sebagai pengguna tertentu.
Dalam tutorial ini, pelajari cara membuat akun pengguna MySQL dan mengelola izin dan hak istimewa mereka.
Prasyarat
- Server Linux dengan MySQL atau MariaDB terinstal dan berjalan
- Akses ke kredensial pengguna root MySQL
- Akses ke jendela terminal/baris perintah (Ctrl-Alt-T / Ctrl-Alt-F2)
Cara Membuat Pengguna MySQL Baru
1. Sebelum Anda dapat membuat pengguna MySQL baru, Anda perlu membuka jendela terminal dan meluncurkan shell MySQL sebagai pengguna root. Untuk melakukannya, masukkan perintah berikut:
sudo mysql –u root –p
2. Ketik kata sandi root untuk akun ini dan tekan Enter.
Prompt harus berubah untuk menunjukkan bahwa Anda berada di mysql> cangkang.
3. Selanjutnya, buat pengguna MySQL baru dengan:
CREATE USER 'username' IDENTIFIED BY 'password';
Ganti nama pengguna dan sandi dengan nama pengguna dan kata sandi pilihan Anda.
Atau, Anda dapat menyiapkan pengguna dengan menentukan mesin yang menghosting database.
- Jika Anda bekerja pada mesin dengan MySQL, gunakan [email protected] untuk menentukan pengguna.
- Jika Anda terhubung dari jarak jauh, gunakan [email protected]_address , dan ganti ip_address dengan alamat sebenarnya dari sistem remote yang menghosting MySQL.
Oleh karena itu, perintahnya adalah:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
atau
CREATE USER 'username'@'ip_address' IDENTIFIED BY 'password';
Anda juga dapat membuat pengguna yang dapat terhubung dari mesin apa pun dengan perintah:
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
Cara Memberi Izin di MySQL
Sebelum masuk dengan akun baru, pastikan Anda telah mengatur izin untuk pengguna.
Izin adalah tindakan yang diizinkan untuk dilakukan pengguna dalam database. Bergantung pada seberapa banyak otoritas yang Anda inginkan untuk dimiliki pengguna Anda, Anda dapat memberi mereka satu, beberapa, atau semua hak istimewa berikut:
- Semua Hak Istimewa: Akun pengguna memiliki akses penuh ke database
- Sisipkan: Pengguna dapat menyisipkan baris ke dalam tabel
- Hapus: Pengguna dapat menghapus baris dari tabel
- Buat: Pengguna dapat membuat tabel dan database yang sama sekali baru
- Lepaskan: Pengguna dapat menghapus (menghapus) seluruh tabel dan database
- Pilih: Pengguna mendapatkan akses ke perintah pilih, untuk membaca informasi di database
- Pembaruan: Pengguna dapat memperbarui baris tabel
- Opsi Hibah: Pengguna dapat mengubah hak istimewa akun pengguna lain
Sintaks dasar yang digunakan untuk memberikan hak istimewa ke akun pengguna adalah:
GRANT permission_type ON database.table TO 'username'@'localhost';
Misalnya, untuk memberikan hak akses penyisipan ke pengguna MySQL Anda akan menjalankan perintah:
GRANT INSERT ON *.* TO 'username'@'localhost';
Anda dapat mengganti tingkat hak istimewa sesuai dengan kebutuhan Anda. Jalankan perintah untuk setiap hak istimewa yang ingin Anda berikan.
Jika Anda ingin membatasi akses pengguna ke database tertentu, beri nama database itu sebelum titik. Demikian juga, Anda dapat membatasi akses pengguna ke tabel tertentu dengan menamainya setelah titik, seperti pada perintah di bawah ini:
GRANT INSERT *database_name.table_name* TO 'username'@'localhost';
Manajemen Pengguna MySQL
Bagian ini akan membantu Anda membuat daftar hak istimewa yang dimiliki oleh akun pengguna, mengambil hak istimewa dari pengguna, dan menghapus akun pengguna sepenuhnya. Ini juga akan menunjukkan kepada Anda cara keluar dari akun pengguna MySQL root, dan masuk kembali dengan akun yang baru saja Anda buat.
Cara Mendaftar Hak Istimewa Akun Pengguna MySQL
Untuk menampilkan semua hak istimewa saat ini yang dimiliki oleh pengguna:
SHOW GRANTS FOR username;
Cara Memberikan Semua Keistimewaan pada Database di MySQL
Untuk memberikan semua hak istimewa kepada Pengguna MySQL di semua database gunakan perintah:
GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';
Namun, Anda juga dapat memberikan semua hak istimewa ke akun pengguna di khusus database dengan perintah berikut:
GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';
Untuk memberikan semua hak istimewa ke akun pengguna melalui tabel tertentu dari tipe database:
GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';
Mencabut Hak Istimewa Akun Pengguna MySQL
Untuk mengambil kembali hak istimewa dari pengguna tertentu, gunakan REVOKE
memerintah. Ini bekerja mirip dengan perintah GRANT, sintaks dasarnya adalah:
REVOKE permission_type ON database.table TO 'username'@'localhost';
Hapus Seluruh Akun Pengguna
Untuk menghapus akun pengguna MySQL gunakan perintah:
DROP USER 'username'@'localhost';