DCL
DCL是Data Control Language的缩写,主要包括数据权限有关的操作指令
用户管理操作
创建用户
-- username:用户名,ip:该用户访问ip,password:密码,newPassword:新密码 create user 'username'@'ip' identified by 'password'; #案例 #mysql_native_password 密码规则 CREATE USER `heyi`@`localhost` IDENTIFIED WITH mysql_native_password BY '123456'
删除用户
drop user 'username'@'ip';
修改密码
ALTER USER `username`@`ip` IDENTIFIED BY 'newPassword'; #案例 ALTER USER `heyi`@`localhost` IDENTIFIED BY '123';
修改用户名称
rename user 'username'@'ip'; to 'newUserName'@'ip';;
授权操作
查看权限
# @ip表示用户只能在当前ip下才能访问数据库,它支持通配%(表示任意) 可以表示为@%(任意ip) show grants for 'username'@'ip'
赋权
#设置表权限 GRANT privilege ON TABLE `dbName`.`tableName` TO `username`@`ip`; #案例 GRANT Alter ON TABLE `dsshop`.`admin_auth_group` TO `heyi11`@`localhost`; #设置数据库权限 GRANT privilege ON `dbName`.* TO `username`@`ip`; #案例 GRANT Execute, Grant Option ON `demo`.* TO `heyi11`@`localhost`; #设置mysql服务权限 GRANT privilege ON *.* TO `username`@`ip`; #案例 GRANT Create User ON *.* TO `heyi11`@`localhost`;
取消权限
#取消表权限 REVOKE privilege ON TABLE `dbName`.`tableName` FROM `username`@`ip`; #案例 REVOKE Alter, Create, Create View, Delete ON TABLE `dsshop`.`admin_auth_group` FROM `heyi11`@`localhost`; #取消数据库权限 REVOKE privilege ON `dbName`.* FROM `username`@`ip`; #案例 REVOKE Grant Option ON `demo`.* FROM `heyi11`@`localhost`; #取消mysql服务权限 REVOKE privilege ON *.* FROM `username`@`ip`; #案例 REVOKE Create User, Drop, Event ON *.* FROM `heyi11`@`localhost`;
privilege 权限
可选项包括如下:
all privileges -- 除grant外的所有权限 select -- 仅查权限 usage -- 无访问权限 alter -- 使用alter table alter routine -- 使用alter procedure和drop procedure create -- 使用create table create routine -- 使用create procedure create temporary tables -- 使用create temporary tables create user -- 使用create user、drop user、rename user和revoke all privileges create view -- 使用create view delete -- 使用delete drop -- 使用drop table execute -- 使用call和存储过程 file -- 使用select into outfile 和 load data infile grant option -- 使用grant 和 revoke index -- 使用index insert -- 使用insert lock tables -- 使用lock table process -- 使用show full processlist show databases -- 使用show databases show view -- 使用show view update -- 使用update reload -- 使用flush shutdown -- 使用mysqladmin shutdown(关闭MySQL) …………