Untuk mulai mengedit hak istimewa di MySQL, Anda harus terlebih dahulu login ke server Anda dan kemudian terhubung ke mysql klien. Biasanya Anda ingin terhubung dengan root atau akun mana pun yang merupakan akun 'pengguna super' utama Anda yang memiliki akses penuh di seluruh instalasi MySQL.
Biasanya root pengguna akan diberi kata sandi otentikasi ketika MySQL diinstal, tetapi jika bukan itu masalahnya, Anda harus mengambil langkah-langkah untuk meningkatkan keamanan Anda dengan menambahkan root kata sandi seperti yang diilustrasikan dalam dokumentasi resmi.
Menghubungkan ke Alat Baris Perintah MySQL
Untuk contoh ini, kita akan menganggap root adalah akun MySQL utama. Untuk mulai menggunakan Alat Baris Perintah MySQL (mysqlcli ), sambungkan ke server Anda sebagai root pengguna, lalu keluarkan mysql perintah:
$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 112813
Server version: 5.5.43-0ubuntu0.14.04.1 (Ubuntu)
[...]
mysql>
Jika berhasil, Anda akan melihat beberapa output tentang koneksi MySQL Anda dan menghadap ke bawah mysql cepat.
Catatan:Jika Anda tidak dapat terhubung langsung ke server sebagai root pengguna sebelum menghubungkan ke mysql , Anda dapat menentukan pengguna yang ingin Anda hubungkan sebagai dengan menambahkan --user= bendera:
$ mysql --user=username
Memberikan Hak Istimewa
Sekarang Anda berada di mysqlcli prompt, Anda hanya perlu mengeluarkan GRANT perintah dengan opsi yang diperlukan untuk menerapkan izin yang sesuai.
Jenis Hak Istimewa
GRANT perintah mampu menerapkan berbagai hak istimewa, mulai dari kemampuan untuk CREATE tabel dan database, membaca atau menulis FILES , dan bahkan SHUTDOWN server. Ada berbagai macam tanda dan opsi yang tersedia untuk perintah, jadi Anda mungkin ingin membiasakan diri dengan apa yang GRANT sebenarnya dapat dilakukan dengan menelusuri dokumentasi resmi.
Hak Istimewa Khusus Database
Dalam kebanyakan kasus, Anda akan memberikan hak istimewa kepada pengguna MySQL berdasarkan database tertentu akun itu harus memiliki akses ke. Ini adalah praktik umum, misalnya, untuk setiap database MySQL yang unik di server untuk memiliki user uniknya sendiri terkait dengannya, sehingga hanya satu user memiliki akses otentikasi ke satu database dan sebaliknya.
Untuk GRANT ALL hak istimewa untuk user , memungkinkan pengguna tersebut mengontrol penuh atas database tertentu , gunakan sintaks berikut:
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Dengan perintah itu, kami telah memberi tahu MySQL untuk:
GRANTPRIVILEGESdari jenisALL(jadi semuanya tentu saja). Catatan:Sebagian besar instalasi MySQL modern tidak memerlukanPRIVILEGESopsional kata kunci.- Hak istimewa ini untuk
database_namedan ini berlaku untuk semua tabel database tersebut, yang ditunjukkan dengan.*yang mengikuti. - Hak istimewa ini diberikan ke
usernameketikausernameitu terhubung melalui lokal, seperti yang ditentukan oleh@'localhost'. Untuk menentukan host yang valid, ganti'localhost'dengan'%'.
Daripada memberikan semua hak istimewa ke seluruh database, mungkin Anda ingin memberikan tolkien pengguna hanya kemampuan untuk membaca data (SELECT ) dari authors tabel books basis data. Itu akan mudah dicapai seperti:
mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost';
Membuat Pengguna Super Lain
Meskipun tidak terlalu aman, dalam beberapa kasus Anda mungkin ingin membuat 'pengguna super' lain, yang memiliki SEMUA hak istimewa di SEMUA database di server. Itu dapat dilakukan mirip dengan di atas, tetapi dengan mengganti database_name dengan tanda bintang wildcard:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';
Sekarang tolkien memiliki hak istimewa yang sama dengan root default akun, hati-hati!
Menyimpan Perubahan Anda
Sebagai langkah terakhir setelah pembaruan apa pun pada hak istimewa pengguna, pastikan untuk menyimpan perubahan dengan mengeluarkan FLUSH PRIVILEGES perintah dari mysql perintah:
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)