MySQL中的DCL(Data Control Language
2017-03-02 本文已影响0人
kangyiii
DCL表示数据控制语言,所谓数据控制,其实就是"分配权限",通常会涉及到用户。我们主要讨论两个问题,1.用户管理 2.权限分配。
MySQL中的权限
MySQL中,主要的权限如下:
MySQL中的权限
MySQL中的用户信息都存储在系统数据库mysql的user表中,user表中则存储着每个用户拥有的权限。
Snip20170301_3.png创建用户
creat user '用户名'@'允许登录的地址' identified by '密码';
说明:
- 创建的用户需同时指定该用户可以在哪个地址进行登录。
- 用户创建之后,自动在mysql的user表中添加了一条记录,但该用户没有任何权限。
删除用户
drop user '用户名'@'允许其登录的地址';
修改用户密码
//修改自己的密码
set password = password('新密码');
//修改他人密码(需要修改权限):
set password for '用户名'@'允许其登录的地址'=password('新密码');
权限分配
增加权限:
grant 权限名1,权限名2,···on 数据库名.对象名 to '用户名'@'允许其登录的地址' identified by '密码';
>
1. 权限名:就是'select','update','delete',等等。其中ALL表示"所有权限",或all privileges也一样
2. 对象名:*.*表示所有数据库中的所有对象,数据库名.*表示该数据库中的所有对象(较常用)。
3. identified by后可不写,表示不修改密码。但创建用户时必须填写密码。
删除权限
表示从某个用户身上移除某些权限
revoke 权限名1,权限名2,···on 数据库名.对象名 from '用户名'@'允许其登录的地址';