ERROR 1044 (42000): Access denied for user/非root角色授权用户找不到已创建数据库

没有权限,网上大部分说是

  1. 用户密码错误
  2. 或者空密码的情况下为了安全

而要通过关闭mysql服务等绕过权限。

但我是在设计数据库实验过程中,设计的用户通过角色授权,在验证用户权限时,发现用户找不到已创建数据库,使用
use 数据库名
时报ERROR 1044 (42000): Access denied for user错误,其实是 角色授权用户 需要通过(临时)激活用户的角色权限,

#root下执行
SET DEFAULT ROLE ALL TO 用户;
#退出,重新登录
#SELECT CURRENT_ROLE();

永久激活语句如下:

SET global activate_all_roles_on_login=ON;

两者区别是

  • 非永久只是激活了用户的角色;
  • 而永久激活语句里global是这个语句对整个数据库管理系统都适用,以后不必再激活。

你可能感兴趣的:(数据库,mysql)