dcl 数据控制语言 控制数据得访问权限,主要控制有哪些用户来访问我们得mysql服务器
一、decl 管理用户
1.查询用户
use mysql;
select * from user;
2.创建用户
create user '用户名'@'主机名' identified by '密码';
3. 修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码'
4. 删除用户
drop user '用户名'@'主机名'
例子
use mysql;
select * from user;
-- 创建一个用 谢凡 只能再当前主机localhost 访问,密码是123456;
create user 'xiefan'@'localhost' identified by '123456';
-- 创建 itxiefan 可以再认识主机访问数据 密码123456
create user 'itxiefan'@'%' identified by '123456';
-- 修改 itxiefan密码为1234
alter user 'itxiefan'@'%' identified with mysql_native_password by '1234';
-- 删除itxiefan这个用户
drop user 'itxiefan'@'%' ;
主机名可以用%进行统配
这类sql 管理用户对于开发人员操作比较少 主要是运维这块在使用
二、dcl 权限控制
1.简介
在MySQL中,DCL(Data Control Language)用于控制数据库的访问和权限。DCL包括以下几种权限类型:
- all ,all privileges 所有权限
- select 查询权限
- insert插入数据
- update 修改数据
- delete 删除数据
- alter修改表
- drop 删除数据库/表/视图
- greate 创建数据库/表
GRANT(授予权限):用于授予用户或角色对数据库的权限。GRANT语句用于将权限授予用户或角色,以允许他们执行特定的数据库操作。
REVOKE(撤销权限):用于撤销用户或角色对数据库的权限。REVOKE语句用于从用户或角色中移除权限,以限制他们对数据库的访问。
DENY(拒绝权限):用于拒绝用户或角色对数据库的权限。DENY语句用于防止用户或角色执行特定的数据库操作,即使他们拥有其他权限。
这些权限类型可以通过以下方式进行细化和控制:
数据库级别权限:允许用户或角色访问特定的数据库。
表级别权限:允许用户或角色访问特定的表。
列级别权限:允许用户或角色访问特定的列。
角色级别权限:允许用户或角色拥有其他用户或角色的权限。
全局权限:允许用户或角色执行特定的全局操作,例如创建或删除数据库。
使用DCL语句时,需要具有适当的权限才能执行相应的操作。例如,只有具有GRANT权限的用户才能授予其他用户权限。同样,只有具有REVOKE或DENY权限的用户才能撤销或拒绝其他用户的权限。
这些权限类型提供了灵活的权限管理机制,可以根据需要授予、撤销和拒绝用户对数据库的访问和操作。
2.语法
a.查询权限
show grants for '用户名'@'主机名'
b.授予全新啊
grant 权限列表 on 数据库名.表名 to '用户名'@'主机名'
c.撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'@'主机名'
例子-- 赋予xiefan查询全权限
show grants for 'xiefan'@'localhost';
-- 授予权限test操作的所有权限
grant all on test.* to 'xiefan'@'localhost';
-- 撤销权限test操作的所有权限
revoke all on test.* from 'xiefan'@'localhost';
|