MySQL adalah perangkat lunak manajemen basis data sumber terbuka yang membantu pengguna untuk menyimpan, mengorganisasi, dan kemudian mengambil data. MySQL memiliki beragam opsi untuk memberikan izin bernuansa kepada pengguna tertentu di dalam tabel dan basis data — tutorial ini akan memberikan ikhtisar singkat tentang sebagian dari banyak opsi tersebut.
Di sepanjang tutorial ini, baris apa pun yang pengguna harus masukkan atau sesuaikan akan disorot! Sedangkan untuk sisanya, sebagian besar dapat dilakukan salin dan tempel.
Dalam Bagian 1 dari Tutorial MySQL, kita telah melakukan semua pengeditan di MySQL sebagai pengguna root, dengan akses penuh ke semua basis data. Namun, jika mungkin diperlukan pembatasan lebih banyak, ada beberapa cara untuk menciptakan pengguna dengan izin khusus.
Mari kita mulai dengan menciptakan pengguna baru di dalam shell MySQL:
- CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Catatan: Ketika menambahkan pengguna di dalam shell MySQL di tutorial ini, kita akan menetapkan hos pengguna sebagai localhost
dan bukan alamat IP server. localhost
adalah nama hos yang berarti “komputer ini,” dan MySQL memperlakukan nama hos tertentu secara istimewa: saat pengguna dengan hos tersebut melakukan log masuk ke MySQL, MySQL akan mencoba terhubung ke server lokal menggunakan berkas soket Unix. Dengan demikian, localhost
biasanya digunakan saat Anda berencana untuk tershubung dengan melakukan SSH ke server atau saat Anda menjalankan klien mysql
lokal untuk terhubung ke server MySQL lokal.
Di titik ini newuser tidak memiliki izin untuk melakukan apa pun dengan basis data. Bahkan, sekalipun newuser mencoba log masuk (dengan kata sandi, password, itu tidak akan berhasil mencapai shell MySQL.
Oleh karena itu, hal pertama yang dilakukan adalah memberikan akses ke informasi yang akan diperlukan pengguna.
- GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Tanda bintang dalam perintah ini merujuk ke basis data dan tabel (secara berurutan) yang dapat diakses — perintah spesifik ini memungkinkan pengguna untuk membaca, mengedit, mengeksekusi, dan melaksanakan semua tugas di seluruh basis data dan tabel.
Harap diperhatikan bahwa dalam contoh ini, kita memberi newuser<^> suatu akses root penuh ke segala hal dalam basis data kita. Walaupun membantu menjelaskan beberapa konsep MySQL, tetapi hal ini mungkin tidak praktis untuk kebanyakan kasus penggunaan dan dapat menjadikan keamanan basis data Anda berada dalam risiko tinggi.
Setelah menyelesaikan izin yang Anda ingin siapkan untuk pengguna baru, selalu pastikan untuk memuat ulang semua privilese.
- FLUSH PRIVILEGES;
Sekarang, perubahan yang Anda buat akan diterapkan.
Berikut ini adalah daftar singkat dari izin umum lainnya yang bisa dinikmati oleh pengguna.
SELECT
guna membaca seluruh basis dataUntuk memberikan izin kepada pengguna tertentu, Anda dapat menggunakan kerangka kerja ini:
- GRANT type_of_permission ON database_name.table_name TO 'username'@'localhost';
Jika Anda ingin memberi mereka akses ke basis data atau tabel apa pun, pastikan untuk menempatkan tanda bintang (*) di tempat nama basis data atau tabel.
Setiap kali Anda memperbarui atau mengubah izin, pastikan untuk menggunakan perintah Flush Privileges.
Jika Anda perlu mencabut izin, strukturnya hampir identik dengan memberikan izin:
- REVOKE type_of_permission ON database_name.table_name FROM 'username'@'localhost';
Perhatikan bahwa saat mencabut izin, sintaks mengharuskan Anda menggunakan FROM
, alih-alih TO
seperti saat kita memberikan izin.
Anda dapat meninjau izin pengguna saat ini dengan menjalankan yang berikut:
- SHOW GRANTS FOR 'username'@'localhost';
Sama seperti Anda dapat menghapus basis data dengan DROP, Anda dapat menggunakan DROP untuk menghapus pengguna secara bersamaan:
- DROP USER 'username'@'localhost';
Untuk menguji pengguna baru, log keluar dengan mengetik:
- quit
dan log masuk kembali dengan perintah ini di terminal:
- mysql -u [username] -p
Setelah menyelesaikan tutorial ini, Anda seharusnya memiliki pemahaman tentang cara menambah pengguna baru dan memberikan berbagai izin kepada mereka dalam basis data MySQL. Dari sini, Anda dapat terus menjelajahi dan bereksperimen dengan berbagai pengaturan izin untuk basis data, atau Anda mungkin ingin mempelajari lebih lanjut tentang konfigurasi MySQL dengan tingkat yang lebih tinggi.
Untuk informasi lebih lanjut tentang dasar-dasar MySQL, kami menyarankan Anda untuk melihat tutorial berikut:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.