14-mysql数据控制语言DCL

数据控制语言(DCL)

mysql数据控制语言DCL(Data Control Language)。

数据控制,其实就是“分配权限”——涉及到用户。

主要就是2个问题:

  • 用户管理:
  • 权限分配:
    • 有哪些权限。

mysql中的权限

mysql中,权限是系统内定的一些“名词”,大约30个,每个权限表示“可以做什么工作”。

分配权限就是相当于让某个用户可以做哪些工作。

主要权限如下:

在这里插入图片描述
在这里插入图片描述

mysql中的用户

mysql系统中的用户信息,都记录存储在系统数据库mysql的user表中:

在这里插入图片描述

创建用户

语法形式

create user '用户名' @'登录服务器名,允许其登录的地址' [identified by '密码'];

用户名和服务器名对应mysql库中user表的user和host字段。

说明

  1. 创建的用户需同时指定该用户可以在哪个地址进行登录。其中“%”代表“任何地址”。
  2. 用户创建之后,自动在mysql的user表中添加了一条记录,但该用户还没有权限。

删除用户

语法形式

drop user '用户名'@'登录服务器名,允许其登录的地址';

修改用户密码

修改用户密码:

修改当前用户自己的密码

set password = password('新密码');

修改其他用户的密码

set password for '用户名'@'登录服务器名,允许其登录的地址' = password('新密码');

注意:需有修改权限才能修改他人密码。

权限分配

增加权限

授予用户的权限,增加权限

基本形式

grant 权限列表(权限名1,权限名2,...) on 数据库名.对象名 to '用户名'@'登录服务器名,允许其登录的地址' [identified by '密码'];
  • 权限列表:用逗号隔开的各权限名称,’select’, ‘update’, ‘delete’,等等。
    • ALL 表示“所有权限”
    • ALL privileges”表示所选定对象上的所有可用权限。
  • 库名.对象名:表示权限在哪个库的哪个对象上有效。
    • 对象有“表”,“视图”,“存储过程”,“存储函数”等。
    • *.*”表示所有数据库中的所有对象(全局权限),
    • db1.*”表示数据库db1中的所有对象(库级权限)
  • 用户名:指将权限赋给的用户。如果该用户在系统中不存在,则就会新建该用户,否则就是给该用户增加权限。
  • 登录服务器名:指允许该用户登录到mysql的客户端服务器,通常本地就是localhost,也可以是某服务器名,或某ip地址。
  • identified by ‘密码’:用于设定该用户的密码。
    • 如果该用户不存在,则必须有此设定。
    • 如果该用户已经存在,则此时就是修改该用户的密码。如果不写就表示不修改密码只授予权限。

删除权限

取消用户权限,减少权限

基本形式

revoke 权限列表(权限名1,权限名2,...) on 数据库名.对象名 from '用户名'@'登录服务器名,允许其登录的地址';
  • 其中几项的含义和形式同增加权限。

表示从某个用户身上“取消”某些权限(也许还保留了其他权限)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值