Untuk mulai mengedit hak istimewa di MySQL, Anda harus terlebih dahulu login ke server Anda dan kemudian terhubung ke klien mysql. 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 pengguna root_ akan diberi kata sandi otentikasi ketika MySQL diinstal, tetapi jika tidak demikian, Anda harus mengambil langkah-langkah untuk meningkatkan keamanan Anda dengan menambahkan kata sandi root seperti yang diilustrasikan dalam dokumentasi resmi
Menghubungkan ke Alat Baris Perintah MySQL
Untuk contoh ini, kami menganggap root adalah akun MySQL utama. Untuk mulai menggunakan Alat Baris Perintah MySQL ($ mysql --user=username 1), sambungkan ke server Anda sebagai pengguna root, lalu keluarkan perintah mysql
$ 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 prompt
Catatan. Jika Anda tidak dapat terhubung langsung ke server sebagai pengguna root sebelum terhubung ke mysql, Anda dapat menentukan pengguna yang ingin Anda sambungkan dengan menambahkan bendera $ mysql --user=username 7
$ mysql --user=username
Pemberian Keistimewaan
Sekarang Anda berada di prompt $ mysql --user=username 1, Anda hanya perlu mengeluarkan perintah $ mysql --user=username 9 dengan opsi yang diperlukan untuk menerapkan izin yang sesuai
Jenis Keistimewaan
Perintah $ mysql --user=username 9 mampu menerapkan berbagai hak istimewa, mulai dari kemampuan untuk mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 1 tabel dan database, membaca atau menulis mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 2, dan bahkan mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 3 server. Ada berbagai macam flag dan opsi yang tersedia untuk perintah, jadi Anda mungkin ingin membiasakan diri dengan apa yang sebenarnya dapat dilakukan ________0______9 dengan menjelajahi dokumentasi resmi
Keistimewaan Khusus Basis Data
Dalam kebanyakan kasus, Anda akan memberikan hak istimewa kepada pengguna MySQL berdasarkan mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 5 tertentu yang dapat diakses oleh akun tersebut. Ini adalah praktik umum, misalnya, untuk setiap MySQL unik mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 5 pada server untuk memiliki mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 7 unik yang terkait dengannya, sehingga hanya satu mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 7 yang memiliki akses otentikasi ke satu mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 5 dan sebaliknya
Untuk mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; _0 hak istimewa untuk mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 7, memungkinkan pengguna tersebut mengontrol penuh atas mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost'; 5 tertentu, gunakan sintaks berikut
mysql> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Dengan perintah itu, kami telah memberi tahu MySQL untuk
- $ mysql --user=username 9 mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 4 dari tipe mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 5 (jadi semuanya tentu saja). Catatan. Sebagian besar instalasi MySQL modern tidak memerlukan kata kunci mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 4 opsional
- Hak istimewa ini adalah untuk mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; _7 dan berlaku untuk semua tabel database tersebut, yang ditunjukkan dengan mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 8 yang mengikuti
- Hak istimewa ini diberikan kepada mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; _9 ketika mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 9 itu terhubung melalui lokal, sebagaimana ditentukan oleh mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 1. Untuk menentukan host yang valid, ganti mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 2 dengan mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 3
Daripada memberikan semua hak istimewa ke seluruh database, mungkin Anda ingin memberikan mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 4 pengguna hanya kemampuan untuk membaca data (mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 5) dari tabel mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 6 dari database mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; 7. Itu akan mudah dicapai seperti itu
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 serupa dengan di atas, tetapi dengan mengganti mysql> GRANT ALL PRIVILEGES ON books.authors TO 'tolkien'@'localhost'; 7 dengan tanda bintang wildcard
mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%';
Sekarang mysql> GRANT ALL PRIVILEGES ON *.* TO 'tolkien'@'%'; _4 memiliki hak istimewa yang sama dengan akun default root, berhati-hatilah
Menyimpan Perubahan Anda
Sebagai langkah terakhir setelah setiap pembaruan hak pengguna, pastikan untuk menyimpan perubahan dengan mengeluarkan perintah mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) 1 dari prompt mysql