Saya punya beberapa alat BASH yang menggunakan mysql -e "{command}"
fungsi ini. Memasukkan kata sandi setiap kali saya menggunakan alat ini akan merepotkan, jadi, untuk menghindari kata sandi ditulis dalam file plaintext dengan kode, saya menyimpannya dalam memori (menggunakan read -s
) dan meminta BASH membacanya setiap kali menjalankan perintah.
Mysql masih berpikir kata sandi sedang dikirim melalui baris perintah (karena, dengan cara berbicara, itu adalah), dan masih memberi saya kesalahan "Menggunakan kata sandi pada antarmuka baris perintah bisa tidak aman."
Demi tujuan saya, saya tidak perlu menekan pesan ini. Yang perlu saya ketahui adalah, apa yang bisa membuatnya tidak aman? Kata sandi tidak pernah terlihat secara fisik, jadi berselancar bahu tidak dapat melakukannya dan bahkan seseorang yang menebak kata sandi SSH saya tidak akan dapat melakukannya karena disimpan dalam memori daripada dalam skrip itu sendiri. Apakah serangan pria di tengah atau sesuatu yang serupa mungkin terjadi?
bash
membacanya ketika Anda menjalankan perintah? Jika Anda melakukannya mysql -p"$pass"
maka siapa pun dapat melihatnya di ps
.
~/.my.cnf
Contoh Anda dapat menentukan per host dengan melakukan[client<hostname>]
mis.[clientlocalhost]
Alat MySQL akan menggunakannya secara otomatis sehingga lebih mudah dan aman