SQL语句(四)—— DCL

目录

一、管理用户

 1、查询用户

2、创建用户

3、修改用户密码

4、删除用户

5、在命令行 cmd 中切换用户

6、注意事项

二、权限控制

1、查询权限

2、授予权限

3、撤销权限

4、注意事项

5、示例代码


        DCL英文全称是Data Control Language,即数据控制语言,用来管理数据库用户控制数据库的访问权限

一、管理用户

 1、查询用户

select * from mysql.user;

        用户的信息,用户具有的权限信息,都是存放在系统数据库 mysql 的 user表当中。 

        其中 Host 代表当前用户访问的主机,如果为localhost仅代表只能够在当前本机访问,是不可以远程访问的;如果使用通配符 % ,则可以在任意主机访问

        User 代表的是访问该数据库的用户名。在 MySQL 中需要通过 Host 和 User 来唯一标识一个用户

2、创建用户

create user '用户名'@'主机名' identified by '密码';

        只是创建了用户,并未给用户分配权限,可以访问 mysql,但是不能访问其他数据库。 

3、修改用户密码

alter user '用户名'@'主机名' identified with mysql_native_password by '新密码' ;

4、删除用户

drop user '用户名'@'主机名' ;

5、在命令行 cmd 中切换用户

mysql -u '用户名' -p

6、注意事项

(1)在 MySQL 中需要通过“用户名@主机名”的方式,来唯一标识一个用户。

(2)主机名可以使用 % 通配

(3)这类 SQL 语句开发人员操作的比较少,主要是DBA(Database Administrator)即数据库管理员使用。

7、示例代码

(1)创建用户 itcast, 只能够在当前主机 localhost 访问, 密码123456

create user 'itcast'@'localhost' identified by '123456';

(2)创建用户heima, 可以在任意主机访问该数据库, 密码123456

create user 'heima'@'%' identified by '123456';

(3)修改用户heima的访问密码为1234

alter user 'heima'@'%' identified with mysql_native_password by '1234';

(4)删除 itcast@localhost 用户

drop user 'itcast'@'localhost';

二、权限控制

        MySQL中定义了很多种权限,但是常用的就以下几种:

        上述只是简单罗列了常见的几种权限描述,其他权限描述及含义,可以直接参考官方文档

1、查询权限

show grant for '用户名'@'主机名' ;

2、授予权限

grant 权限列表 on 数据库名.表名 to '用户名'@'主机名';

3、撤销权限

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

4、注意事项

(1)多个权限之间,使用逗号分隔。

(2)授权时, 数据库名和表名可以使用 * 进行通配,代表所有

5、示例代码

(1)查询 'heima'@'%' 用户的权限

show grants for 'heima'@'%';

(2)授予 'heima'@'%' 用户itcast数据库所有表的所有操作权限

grant all on itcast.* to 'heima'@'%';

(3)授予 'heima'@'%' 所有数据库所有表的所有操作权限

grant all on *.* to 'heima'@'%';

(4)撤销 'heima'@'%' 用户的itcast数据库的所有权限

revoke all on itcast.* from 'heima'@'%';

(5)撤销 'heima'@'%' 用户的所有数据库的所有权限 

revoke all on *.* from 'heima'@'%';