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:
GRANT
PRIVILEGES
dari jenisALL
(jadi semuanya tentu saja). Catatan:Sebagian besar instalasi MySQL modern tidak memerlukanPRIVILEGES
opsional kata kunci.- Hak istimewa ini untuk
database_name
dan ini berlaku untuk semua tabel database tersebut, yang ditunjukkan dengan.*
yang mengikuti. - Hak istimewa ini diberikan ke
username
ketikausername
itu 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)