Sie sollten keinen Benutzernamen/Passwort in Ihre Binärdatei schreiben, da es sehr unflexibel ist und Sie neigen dazu, nicht ändern Sie dieses Kennwort regelmäßig, wenn Sie die Binärdatei jedes Mal neu kompilieren müssen. Darüber hinaus sind Binärdateien in der Regel nicht speziell lesegeschützt, sodass andere Benutzer Ihr Kennwort möglicherweise erhalten.
Die Weitergabe der Anmeldeinformationen als Programmargumente ist ebenfalls eine schlechte Idee, da sie möglicherweise in einer Prozessliste angezeigt wird, in Befehlszeilenhistorien gespeichert werden kann, von Auditing-Tools usw. protokolliert werden kann an mehreren Stellen landen, die nicht angezeigt werden sollen.
Ihre beste Option besteht darin, eine Konfigurationsdatei mit den Anmeldeinformationen zu verwenden und ihr die minimalen Rechte zu geben, die sie benötigt, damit Ihre Anmeldeinformationen sicher sind. Eine einfache Bibliothek für Linux ist zum Beispiel libini, die Ihnen erlaubt, Schlüssel/Wert-Paare in Abschnitten zu speichern, aber es gibt viele andere Optionen. Eine andere ziemlich sichere Option, die beispielsweise von Apache für private Schlüsselpassphrasen und ähnliches verwendet wird, besteht darin, ein Programm (normalerweise ein Shell-Skript) anzugeben, das ausgeführt wird und die Anmeldeinformationen auf stdout ausgibt, die dann von analysiert wird dein Programm. Auch hier müssen Sie sicherstellen, dass nur autorisierte Benutzer/Prozesse dieses Skript lesen oder ausführen dürfen.
Sie verwenden also nicht die MySQL C-API, sondern Web-Anfragen an einige Webserver, auf denen sich die Datenbank befindet? –
Was passiert, wenn Login und Passwort als Argumente des Programms (in 'argv []') angegeben werden? –
Der Fragetitel stimmt nicht mit der tatsächlichen Frage überein, Sie sollten einen besseren finden. Hier geht es darum, Anmeldeinformationen sicher zu speichern. Der typische Ansatz besteht darin, sie in einer Konfigurationsdatei mit eingeschränktem Zugriff zu speichern. –