(1)首先得先登录root用户(即:DBA,root权限),然后才能执行下面

这里写图片描述

use mysql;

(2)创建 并 授权

英文,中文我没找到解决方法

  注意:此处的”localhost”,是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将”localhost”改为”%”,表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。

这里写图片描述

grant select on dbstudy.employee to 'liYong'@'localhost' identified by '123';

(3)刷新系统权限表

这里写图片描述

flush privileges;​

(4)查询

这里写图片描述

select host,user,password from user;

(5)查看GUI里的用户信息

这里写图片描述
这里写图片描述

(6)连接

这里写图片描述
这里写图片描述

如果你使用中文,则会显示Access denied

(7)若出现这类情况

这里写图片描述

  如果你是按之前步骤来的,这个可以忽略,因为这可能是因为你打开了其他的权限,而这个用户的权限不能访问,可以关闭navicat,重新打开,连接。

  若不是,那有可能是你的权限没有grant正确,请检查各个语句。

(8)成功效果

这里写图片描述
这里写图片描述


常用语句:

1。use mysql;
2。select host,user,password from user;
3。grant all privileges on . to ‘用户名’ @’本机ip’ identified by ‘密码’ with grant option;
4。flush privileges;​
5。create view tablename as select xxx from xx where …
CREATE VIEW empTest1 AS SELECT deptNum, MAX(salary) AS MaxSalary, MIN(salary) AS MinSalary, AVG(salary) AS AvgSalary
  FROM employee 
  GROUP BY deptNum;

题目中:对于每个用户只能查询自己的信息。那么只能用使用,即创建针对用户创建一个视图,再grant权限。

create view liyongView as 
    select * from employee
     where username = 'liYong';
GRANT SELECT ON dbstudy.liyongView to 'liYong'@'localhost';
Logo

更多推荐