mysql - 为什么不在我的 MySQL 数据库中工作?
问题描述
我目前正在学习 MySQL 中的用户权限和角色。此时我正在学习如何创建自定义角色,授予他们权限,最后创建一些用户只是为了测试这个新角色。问题是,我不知道为什么,但是,即使角色已正确分配给用户,当我使用它们登录时,我也看不到任何模式,就像我没有任何特权一样。我正在使用的脚本是下一个:
创建新角色:
CREATE ROLE 'read_db';
在“bdatosventas”数据库中设置权限:
GRANT SELECT ON bdatosventas.* TO 'read_db';
创建新用户:
CREATE USER 'test_read_user'@'localhost' IDENTIFIED BY 'somepassword';
为这个新用户设置角色:
GRANT 'read_db' TO 'test_read_user'@'localhost';
验证权限:
SHOW GRANTS FOR 'test_read_user'@'localhost';
作为输出,我得到:
GRANT `read_db` TO `test_read_user`@`localhost`
GRANT USAGE ON *.* TO `test_read_user`@`localhost`...
最后一个好:
FLUSH PRIVILEGES;
所以我猜这个角色被正确分配并且应该可以工作。但是当我使用该新用户进入 phpMyAdmin 时,它没有显示任何架构,看不到我的数据库“bdatosventas”,只有一个名为“information_schema”的数据库。有什么问题吗,谢谢。
解决方案
我也发现了这个问题。set default role <role_name> for <user>
我通过按照这些文档运行 sql 来修复它
推荐阅读
- julia - 如何在 Plots.jl 中旋转条形图?
- angular - 测试角度服务返回值
- openapi - Springfox Java Bean 验证未在 Swagger 输出中显示验证组
- entity-framework-core - Entity Framework Core ExecuteSqlInterpolated 给出 Microsoft.Data.SqlClient.SqlException
- javascript - html标签发送带有href的对象
- python - 计算在熊猫数据透视表中使用的出现次数
- python - 使用包含数组的单个结构化元素创建数组
- flutter - Flutter 身份验证和数据持久性与 Provider 架构
- python - 如何在 Sagemaker 的处理步骤中将包上传到实例?
- sql - 在 sqlite 中使用 Bash 变量