DCL:数据控制语言,主要创建用户,管理用户权限。
目录
一、创建用户
语法:
CREATE USER <用户> [ IDENTIFIED BY [ PASSWORD ] 'password' ];
参数说明如下:
1) 用户
指定创建用户账号,格式为 user_name'@'host_name
。这里的user_name
是用户名,host_name
为主机名,即用户连接 MySQL 时所用主机的名字。如果在创建的过程中,只给出了用户名,而没指定主机名,那么主机名默认为“%”,表示一组主机,即对所有主机开放权限。
3) IDENTIFIED BY子句
用于指定用户密码。新用户可以没有初始密码,若该用户不设密码,可省略此子句。
2) PASSWORD 'password'
PASSWORD 表示使用哈希值设置密码,该参数可选。如果密码是一个普通的字符串,则不需要使用 PASSWORD 关键字。'password' 表示用户登录时使用的密码,需要用单引号括起来。
示例:
创建一个用户为 text,主机名为localhost 密码为password的新用户
通过查询可看到当前所有的用户
二、查看用户信息
语法:
use mysql;
select * from user;
执行此命令,可以查看当前数据库的所有用户信息
示例:
三、删除用户
语法:
drop user '用户名'@主机名
示例:
删除新创建的text用户
四、权限
新创建的用户拥有的权限很少,它们只能执行不需要权限的操作。所有要使新创建的用户有更多权限,就需要我们自行去进行赋予权限
1.赋予权限
赋予权限基本命令格式:
grant 权限1,权限2 on 数据库名称.表名称 to 用户名@用户地址
当权限1,权限2,…被all privileges或者all代替,表示赋予用户全部权限。
当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址连接。
以下是一些可用的权限:
权限 | 说明 |
ALL | 所有可用的权限 |
CREATE | :创建库、表和索引 |
LOCK_TABLES | 锁定表 |
ALTER | 修改表 |
DELETE | 删除表 |
INSERT | 插入表或列 |
SELECT | 检索表或列的数据 |
CREATE_VIEW | 创建视图 |
SHOW_DATABASES | 列出数据库 |
DROP | 删除库、表和视图 |
示例:
给新创建的text用户赋予全部权限:
2.撤销权限
语法:
revoke 权限1,权限2 on 数据库名称.表名称 from 用户名@用户地址;
示例:
撤销text用户的所有权限: