首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建没有密码的MySQL数据库和用户

创建没有密码的MySQL数据库和用户
EN

Unix & Linux用户
提问于 2014-05-10 14:11:00
回答 1查看 3.1K关注 0票数 2

我正在构建一组bash脚本,基本上可以在云服务器上准备apache虚拟主机、git存储库和其他东西。到目前为止,一切都很好,但是出现了一个大问题: MySQL数据库和用户创建。

当前脚本使用ssh和密钥对云服务器进行身份验证,我的团队中的每个人都可以执行命令。我希望保持这种状态,并允许他们创建新的MySQL数据库和用户,而不需要以root用户身份登录到mysql或其他任何具有高权限的用户,但我没有任何解决方案。

第一个想法是在没有密码的情况下创建一个新的mysql用户,并给予它完全的权限(就像root),但使它只能使用@'localhost'

第二种方法是将这个MySQL控制用户的密码存储在一个文件中,并使其仅供其他脚本使用的当前ssh用户访问。然后mysql登录将使用这个存储的密码登录并创建数据库和用户。

我不知道哪种选择更好,我知道它们是危险的。我征求意见和更好的意见。

EN

回答 1

Unix & Linux用户

发布于 2014-05-12 07:32:55

您希望使团队使用的unix用户和mysql用户拥有尽可能少的访问权限,同时仍然允许他们做您想做的事情。这两种想法似乎都允许比必要时更多的访问权限。对于mysql团队用户来说,最好是:

  1. 只有创建访问权或任何他们需要的访问权限(将您的团队所能做的限制在最低限度)。您可以使用GRANT语句授予mysql用户访问权限。
  2. 将用户/密码存储在只有所有者读取访问权限的~/my.cnf文件中(不再限制您的团队,但如果其他人看到脚本,就会阻止他们查看登录)。

以上都是很容易做到的,也是一个很大的改进。

一个更好的想法,但更多的工作,是不允许团队用户访问创建数据库,而只是将设置站点的请求放在某个队列中,只有您控制的另一个用户脚本(它只具有所需的访问权限)将定期处理该脚本来设置站点。队列可以是一个包含每一行请求的文件,一个包含每个文件的目录,一个请求,或者一个包含每个请求记录的数据库表。这取决于你想要多少保护你的系统。

通常,您应该使用unix和mysql用户,这些用户的访问权限不如root用户。我为自己创建了一个可以工作的mysql用户,它可以创建和删除数据库,并且只执行我经常使用的操作。我只使用根用户或具有类似权限的用户,如果我需要设置另一个用户来授予它访问权限。在一个脚本中,我使用户尽可能限制,以限制损害,如果它出了问题。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/128789

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档