【问题标题】:Create MySql grants with password using SaltStack使用 SaltStack 创建带密码的 MySql 授权
【发布时间】:2016-11-30 14:29:22
【问题描述】:

要为数据库创建授权,我使用以下 salt 模块

keystone_grants:
mysql_grants.present:
  - database: keystone.*
  - grant: ALL PRIVILEGES
  - user: keystone
  - host: localhost

但它创造了我这个

 ID: Keystone_database
 Function: mysql_grants.present
 Result: True
 Comment: Grant ALL PRIVILEGES on keystone.* to keystone@localhost has been added
Started: 19:42:18.428882
Duration: 4.089 ms
Changes:

即它为我创造了这个赠款

将 keystone.* 上的所有权限授予 keystone@localhost

但我需要创建此授权

在 keystone 上授予所有权限。* TO 'keystone'@'localhost' 由“密码”识别;

有人可以建议我如何使用 SaltStack 添加密码授权

【问题讨论】:

    标签: mysql salt-stack


    【解决方案1】:

    此状态无法为指定主机的权限设置密码。请参阅 salt.states.mysql_user 了解更多说明。

    这句话写在salt.modules.mysql_grants的文档中。他们从那里指向salt.states.mysql_user。遗憾的是,这个文档并没有说明很多关于赠款的内容。

    此状态无法为用户授予权限。有关更多说明,请参阅 salt.states.mysql_grants。

    也许两个都用就够了:

    keystone_grants:
      mysql_grants.present:
        - host: localhost
        - database: keystone.*
        - grant: ALL PRIVILEGES
        - user: keystone
        - host: localhost
    
    keystone:
      mysql_user.present:
        - host: localhost
        - password: somesecret
    

    另外我会推荐mysql-formula

    【讨论】:

    • 如果能找到一些关于为什么状态和公式都存在的解释,那就太好了。 Niether 的文档中提到了另一个,这导致了一些混淆,不知道是哪一个,以及是否要取代另一个。
    • 好吧,公式与状态的对比很棘手,尤其是当有内置状态来管理与公式相同的服务时。当你编写一个公式时,你通常会从你需要配置的服务中抽象出一个支柱配置结构。一个公式可以通过一个界面配置与不同软件相关的多个不同部分。另一方面,国家旨在通过配置一件事来解决一个问题。您可以在公式中重复使用它们,因为它们只是基于模板的状态组合。将公式视为增强状态。
    • 关于 mysql 我想说的是,如果你想管理一个由多个用户使用的 mysql 服务器,并且你需要确保有多个具有适当权限的数据库,你可能想要使用该公式。如果您只是设置一个需要具有一个用户状态的本地 mysql 数据库的服务可能就足够了。选择哪一个取决于您的用例和偏好。
    猜你喜欢
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 2016-02-16
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多