开发者社区 问答 正文

DMS里面权限是摆设么?

我用root账号创建了2个数据库账号和两个库分别是测试和生产用,一个是 只能访问db_development 数据库还有一个是 db_production 设置设置权限。 每次都提示设置成功,然后登陆之后,还是一模一样的设置,dev的账号可以访问全部的账号,我用root登陆进去看,每次在编辑权限的时候都会在最后一行有一个 * 的权限。。怎么都去不掉。。。

展开
收起
rmitcoder 2018-11-27 08:34:47 1649 分享 版权
阿里云 AI 助理回答

根据您描述的问题,看起来您在使用root账号为两个数据库账号分配权限时遇到了一些困扰,特别是尝试限制db_developmentdb_production访问权限时,发现db_development的账号能够访问所有数据库。这可能是由于该账号被无意中授予了全局(.)权限。下面是如何解决这个问题的步骤:

  1. 检查当前权限配置

    • 首先,您需要登录到MySQL数据库,使用root账号执行以下命令来查看具体权限设置:
      SHOW GRANTS FOR 'db_development账号名'@'%' OR 'db_production账号名'@'%';
      
    • 注意检查结果中是否包含对db_development账号授予了类似于GRANT ALL PRIVILEGES ON *.* TO ...的行,这表示该账号拥有对所有数据库的全部权限。
  2. 撤销全局权限

    • 如果发现存在全局权限,您需要撤销这些权限,确保只保留对特定数据库的访问权。执行如下命令撤销全局权限:
      REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'db_development账号名'@'%';
      
    • 确保之后重新授予仅针对特定数据库的适当权限,例如:
      GRANT SELECT, INSERT, UPDATE, DELETE ON db_development.* TO 'db_development账号名'@'%';
      
  3. 精确设置权限

    • 对于db_production账号,同样要确保权限设置精确到库级别,避免使用*.*这样的通配符。如果有必要,重复上述撤销与重新授权的过程,确保权限正确无误。
  4. 刷新权限并验证

    • 修改权限后,执行FLUSH PRIVILEGES;命令以确保权限更改立即生效。
    • 退出root账号,然后使用db_development账号尝试连接,并验证其只能访问db_development数据库,而不能访问其他数据库。
  5. 注意点

    • 在进行权限管理时,务必小心操作,遵循最小权限原则,即仅赋予完成任务所需的最少量权限。
    • 检查是否有任何自动化脚本或维护任务可能在不经意间重置了账号的权限设置。

通过以上步骤,您应该能够解决账号权限设置不正确的问题。如果问题依旧存在,建议检查是否有其他管理工具或策略自动修改了账号权限,或者联系技术支持进一步排查。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答