MySQL adalah sistem manajemen basis data relasional sumber terbuka lintas platform. Ini adalah basis data paling ekonomis dan terjangkau yang biasa kami gunakan. Karena ukurannya yang kecil, kecepatannya cepat, dan total biaya kepemilikan yang rendah, terutama fitur sumber terbuka, memungkinkan pengguna untuk mendapatkan hasil yang paling praktis. Memang benar banyak pengguna yang tidak mengetahui banyak tentang prinsip otorisasi dalam aplikasi. MySQL adalah sistem manajemen basis data relasional sumber terbuka lintas platform. Ini adalah basis data paling ekonomis dan terjangkau yang biasa kami gunakan. Karena ukurannya yang kecil, kecepatannya cepat, dan total biaya kepemilikan yang rendah, terutama fitur sumber terbuka, memungkinkan pengguna untuk mendapatkan hasil yang paling praktis. Memang benar banyak pengguna yang tidak mengetahui banyak tentang prinsip otorisasi dalam aplikasi.
Situasi restart server
Ketika mysqld dimulai, semua isi tabel hibah dibaca ke dalam memori dan menjadi efektif sejak saat itu.
Ketika diterapkan segera oleh server
Modifikasi tabel otorisasi menggunakan GRANT, REVOKE atau SET PASSWORD akan segera diketahui oleh server.
Modifikasi langsung pada formulir otorisasi
Jika Anda memodifikasi tabel hibah secara manual (menggunakan INSERT, UPDATE, dll.), Anda harus menjalankan pernyataan FLUSH PRIVILEGES atau menjalankan mysqladmin flush-privileges untuk memberi tahu server agar memuat ulang tabel hibah, jika tidak, perubahan Anda tidak akan berlaku kecuali Anda memulai ulang server.
Dampak pada koneksi pelanggan yang ada
Ketika server mengetahui bahwa tabel otorisasi telah diubah, koneksi klien yang ada memiliki efek berikut:
·Izin tabel dan kolom berlaku pada permintaan klien berikutnya.
·Perubahan izin database akan berlaku pada perintah USE db_name berikutnya.
·Perubahan izin global dan perubahan kata sandi berlaku saat klien terhubung lagi.
Prinsip delegasi
Tidak peduli seberapa hati-hati Anda, Anda pasti akan meninggalkan celah saat memberi otorisasi kepada pengguna. Saya harap konten berikut dapat membantu Anda. Secara umum, Anda harus mematuhi aturan ini.
Hanya pengguna root yang berhak menulis ulang tabel otorisasi
Jangan memberikan hak untuk menulis ulang tabel otorisasi kepada pengguna lain kecuali pengguna root (tentu saja, jika Anda dapat menggunakan pengguna lain untuk menggantikan pengguna root untuk manajemen, untuk meningkatkan keamanan). Oleh karena itu, pengguna dapat mengganti izin yang ada dengan menimpa tabel otorisasi. Buat lubang keamanan.
Biasanya Anda mungkin tidak melakukan kesalahan ini, tetapi setelah menginstal distribusi baru, tabel otorisasi awal. Kerentanan ini ada dan Anda mungkin melakukan kesalahan jika Anda tidak memahami isi formulir otorisasi saat ini.
Di Unix (Linux), setelah menginstal MySQL sesuai petunjuk di manual, Anda harus menjalankan skrip mysql_install_db untuk membuat database mysql termasuk tabel otorisasi dan izin awal. Di Windows, jalankan program Setup di distribusi untuk menginisialisasi direktori data dan database mysql. Diasumsikan bahwa server juga sedang berjalan.
Saat Anda pertama kali menginstal MySQL di mesin Anda, tabel otorisasi di database mysql diinisialisasi seperti ini:
·Anda dapat terhubung sebagai root dari localhost tanpa menentukan kata sandi. Pengguna root memiliki semua hak (termasuk hak administratif) dan dapat melakukan apa saja. (Omong-omong, pengguna super MySQL dan pengguna super Unix memiliki nama yang sama dan tidak ada hubungannya satu sama lain.)
·Akses anonim diberikan kepada pengguna yang dapat terhubung secara lokal ke database bernama test dan nama database apa pun yang dimulai dengan test_. Pengguna anonim dapat melakukan apa saja terhadap database tetapi tidak memiliki hak administratif.
Secara umum, Anda disarankan untuk menghapus data pengguna anonim:
mysql> HAPUS DARI pengguna WHERE Pengguna="";
Selangkah lebih maju, hapus juga semua pengguna anonim di tabel otorisasi lainnya, tabel dengan kolom Pengguna adalah db, tabel_priv, dan kolom_priv.
Tetapkan juga kata sandi untuk pengguna root.
Tentang pengaturan pengguna, kata sandi, dan host
·Gunakan kata sandi untuk semua pengguna MySQL.
Ingat, jika pengguna_lain tidak memiliki kata sandi, siapa pun dapat masuk sebagai orang lain cukup dengan mysql -u pengguna_lain db_name. Untuk aplikasi klien/server, merupakan praktik umum bagi klien untuk menentukan nama pengguna apa pun. Sebelum dijalankan, Anda dapat mengubah password semua user, atau password root MySQL saja, dengan mengedit script mysql_install_db, seperti ini:
cangkang> mysql -u root mysql
mysql> PERBARUI pengguna SET Kata Sandi=PASSWORD('kata sandi_baru')
-> WHERE pengguna='root';
mysql> HAK ISTIMEWA FLUSH;