我用root账号创建了2个数据库账号和两个库分别是测试和生产用,一个是 只能访问db_development 数据库还有一个是 db_production 设置设置权限。 每次都提示设置成功,然后登陆之后,还是一模一样的设置,dev的账号可以访问全部的账号,我用root登陆进去看,每次在编辑权限的时候都会在最后一行有一个 * 的权限。。怎么都去不掉。。。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,看起来您在使用root账号为两个数据库账号分配权限时遇到了一些困扰,特别是尝试限制db_development
和db_production
访问权限时,发现db_development
的账号能够访问所有数据库。这可能是由于该账号被无意中授予了全局(.)权限。下面是如何解决这个问题的步骤:
检查当前权限配置:
SHOW GRANTS FOR 'db_development账号名'@'%' OR 'db_production账号名'@'%';
db_development
账号授予了类似于GRANT ALL PRIVILEGES ON *.* TO ...
的行,这表示该账号拥有对所有数据库的全部权限。撤销全局权限:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'db_development账号名'@'%';
GRANT SELECT, INSERT, UPDATE, DELETE ON db_development.* TO 'db_development账号名'@'%';
精确设置权限:
db_production
账号,同样要确保权限设置精确到库级别,避免使用*.*
这样的通配符。如果有必要,重复上述撤销与重新授权的过程,确保权限正确无误。刷新权限并验证:
FLUSH PRIVILEGES;
命令以确保权限更改立即生效。db_development
账号尝试连接,并验证其只能访问db_development
数据库,而不能访问其他数据库。注意点:
通过以上步骤,您应该能够解决账号权限设置不正确的问题。如果问题依旧存在,建议检查是否有其他管理工具或策略自动修改了账号权限,或者联系技术支持进一步排查。