gpt4 book ai didi

mysql - 在 bash 脚本中存储 MySQL 密码

转载 作者:可可西里 更新时间:2023-11-01 07:18:14 25 4
gpt4 key购买 nike

需要创建简单的 mysql 备份脚本。

但是 - 如何在其中存储 MySQL 用户的加密通行证?

我想避免在任何其他文件中以明文类型存储密码。

正如我在 MySQL 手册中发现的那样:

MySQL encrypts passwords stored in the user table using its own algorithm

所以。没有办法只获取 hash 并将其设置为变量吗?

我的意思是:

DBHASH="cGFzc3dvcmQ="
DBPASS=`echo $DBHASH | openssl enc -base64 -d`

有什么正确的解决方法吗?感谢提示。

最佳答案

如果脚本包含用于进入 MySQL 的可重复例程(即自动解密),则脚本是否包含明文密码并不重要 - 攻击者也会这样做。如果您可以传递散列/解密的密码并让 MySQL 进行比较,它将同样可重复(并且散列无论如何都可以用作密码)。

所以,简单的答案是:你不能这样做。你有一些选择......

  • 使用凭据设置正确的 chmoded (600) ~/.my.cnf
  • 创建一个只允许从本地主机登录的“受限”无密码备份帐户。
  • 在任何一种情况下都只允许从本地主机/备份主机进行备份登录。
  • 如果您使用的是 Debian,您可以使用 debian-sys-maint 帐户(它有一个 my.cnf 已经设置了凭据)
  • 限制 mysql 帐户并在脚本纯文本中包含密码,但只允许给定的用户/root 读取脚本(如果您有 root,您无论如何都可以接管 mysql)。
  • 从外部文件(使用正确的 chmod - 600)读取/“获取”配置变量(用户名/密码)...但您基本上是在做 my.cnf - 通过那么。

记住“备份帐户”不需要写入权限等...

关于mysql - 在 bash 脚本中存储 MySQL 密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20471757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com