itu penting karena nama host itu (hdm38.newyork.comcastbusiness.net ) adalah yang saya gunakan selama mysql create user
dibandingkan menggunakan wildcard seperti %
Saya membiarkan koneksi di atas gagal, tetapi saya perhatikan apa nama host di atas. Anda akan melihatnya di bawah.
Daftar periksa cepat
1) pengguna jarak jauh Anda terhubung melalui akun yang dibuat dengan user,host
yang sesuai entri (lihat output dari select user,host from mysql.user order by 1,2
)
CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';
Dengan perintah di atas kami sekarang memiliki pengguna baru yang memiliki kesempatan untuk masuk. Tidak dapat melakukan apa-apa. Tidak dapat mengubah ke db. Pada dasarnya mereka hanya dapat melakukan hal-hal seperti select now();
2) Anda telah melakukan grants
dengan flush privileges
(setidaknya yang pertama)
GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';
Pengguna kami dengan perintah di atas sekarang dapat melakukan apa saja di database/skema mydb123. Jelajahi perintah Grant di atas dalam manual untuk menyempurnakan akses ke minimum bagi pengguna yang Anda buat.
Jika Anda baru mengenal keamanan mysql, jangan sertakan WITH GRANT OPTION
sampai Anda menelitinya.
Ada orang-orang yang akan mengatakan bahwa nama host di atas menjadi '%' untuk langkah 1 dan 2. Itu berarti santa dapat terhubung dari host mana pun. Pilihan ada padamu. Mulailah dengan kencang, kendurkan setelah Anda mencapai suatu tempat dan telah melakukan penelitian tentangnya.
3) Anda telah memodifikasi my.cnf dan mengubah bind-address
jauh dari 127.0.0.1
atau localhost
, mendukung 0.0.0.0
Jika bind-address bukan 0.0.0.0
, Anda hanya terhubung dengan ssh
4) Anda telah memodifikasi my.cnf dan memiliki baris #skip-networking
. Bahkan jika Anda harus membuat garis hanya untuk menghilangkannya, lakukanlah.
3/4 perubahan memerlukan restart daemon mysql
5) masalah firewall. Jadi untuk EC2, Anda memerlukan AWS Security Group
yang aktif untuk instance termasuk pembukaan port 3306