SQL中的DCL

DCL(数据控制语言,用来创建数据库用户、控制数据库的控制权限)

管理用户

查询用户:

USE mysql;

SELECT * FROM user;

创建用户:

CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';

修改用户密码:

ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '新密码';

删除用户:

DROP USER '用户名'@'主机名';

案例:

-- 创建用户test,只能在当前主机localhost访问,密码123456

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

-- 创建用户test,能在任意主机访问该数据库,密码123456

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

create user 'test' identified by '123456';

-- 修改用户test的访问密码为1234

alter user 'test'@'localhost' identified with mysql_native_password by '1234';

-- 删除test@localhost用户

drop user 'test'@'localhost';

注意事项

在MySQL中需要通过用户名@主机名的方式,来唯一标识一个用户

主机名可以使用 % 通配

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

权限控制

常用权限:

权限说明

ALL, ALL PRIVILEGES所有权限

SELECT查询数据

INSERT插入数据

UPDATE修改数据

DELETE删除数据

ALTER修改表

DROP删除数据库/表/视图

CREATE创建数据库/表

更多权限请看官方文档

查询权限:

SHOW GRANTS FOR '用户名'@'主机名';

授予权限:

GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机名';

撤销权限:

REVOKE 权限列表 ON 数据库名.表名 FROM '用户名'@'主机名';

案例:

--查询'heima'@'%'用户的权限

show grants for 'heima'@'%';

--授予'heima'@'%'用户的itcast数据表所有表的所有表的操作权限

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

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

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

注意事项

多个权限用逗号分隔

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容