编写顺序和执行顺序是不一样的

编写顺序:
SELECT
  字段列表
FROM
  表名列表
WHERE
  条件列表
GROUP BY
  分组字段列表
HAVING
  分组后条件列表
ORDER BY
  排序字段列表
LIMIT
  分页参数

MySQL控制权限_用户名


MySQL控制权限_主机名_02

DCL
英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。
查询mysql用户
use mysql; // 用户所具有的全部信息都是放在mysql这个数据库中的
select * from user;
创建用户-语法
create user '用户名'@'主机名' identified by '密码';
创建用户ituser, 只能够在当前主机localhost访问,密码123456
create user 'ituser'@'localhost' identified by '123456';
当前我们创建的这个数据库用户。
它只能访问mysql数据库,其他数据库没有访问的权限。
创建用户user,可以在任意主机访问数据库,密码123456
create user 'user'@'%' identified by '123456';

ps:% 任意主机
修改用户的密码-语法
alter use '用户名'@'主机名' identified with mysql_native_password by '新密码';
修改用户user的访问密码为123
alter use 'user'@'%' identified with mysql_native_password by '123'
删除用户密码-语法
drop user '用户名'@'主机名';
注意:
·主机名可以使用%通配。
·这类SQL开发人员操作的比较少,主要是DBA ( Database Administrator数据库管理员)使用。
权限控制

MySQL控制权限_主机名_03

查询用户有哪些权限
查询用户有哪些权限语法:  show grants for '用户名'@'主机名';

现在我们查询之前创建的 ituser 用户有哪些权限。
show grants for  'ituser'@'localhost';
出现:GRANT USAGE ON xxx表示只有连接权限
授予权限
grant 列表列表  on 数据库名.表名 to '用户名'@'主机名';

现在我们需要给ituser用户设置某一个数据库的所有权限
grant all on itdemo1.* to 'ituser'@'localhost';
出现 GRANT ALL PRIVILEGES 表示是所有的权限

MySQL控制权限_数据库_04

撤销权限
revoke 列表列表 on 数据库名.表名 from '用户名'@'主机名';

现在我们要撤销 ituser用户 itdemo1数据库下所有表的所有权限,如下
revoke all on itdemo1.* from 'ituser'@'localhost';
撤销成功后,我们可以查询一下:
show grants for  'ituser'@'localhost';
出现:GRANT USAGE ON xxx 表示只有连接权限

ps:itdemo1.* 表示itdemo1数据库下的所有表
注意的是
·多个权限之间,使用逗号分隔
·授权时,数据库名和表名可以使用*进行通配,代表所有。

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。


作者:晚来南风晚相识