数据控制语言
,用来管理数据库用户、控制数据库的访问权限。
一.管理用户
查询用户
|
select
*
from
mysql
.user
;
Host
代表当前用户访问的主机
,
如为
localhost,
代表只能够在当前本机访问,是不可远程访问的。 User
代表访问该数据库的用户名。在
MySQL
中需通过
Host
和
User
来唯一标识一个用户。
|
创建用户
|
CREATE
USER
'
用户名
'
@
'
主机名
'
IDENTIFIED
BY
'
密码
'
;
|
修改用户密码
|
ALTER
USER
'
用户名
'
@
'
主机名
'
IDENTIFIED WITH mysql_native_password
BY
'
新密码
'
;
|
删除用户
|
DROP
USER
'
用户名
'
@
'
主机名
'
|
注意事项:
•
在
MySQL
中需要通过用户名
@
主机名的方式,来唯一标识一个用户。
•
主机名可以使用
%
通配。
•
这类
SQL
开发人员操作的比较少,主要是
DBA
(
Database Administrator
数据库管理员)使用
A.
创建用户
itcast,
只能够在当前主机
localhost
访问
,
密码
123456;
create
user
'itcast'
@
'localhost'
identified
by
'123456'
;
B.
创建用户
heima,
可以在任意主机访问该数据库
,
密码
123456;
create
user
'heima'
@
'%'
identified
by
'123456'
;
C.
修改用户
heima
的访问密码为
1234;
alter
user
'heima'
@
'%'
identified with mysql_native_password
by
'1234'
;
D.
删除
itcast@localhost 用户:
drop
user
'itcast'
@
'localhost'
;
二.权限控制
权限
|
说明
|
权限
|
说明
|
ALL, ALL PRIVILEGES
|
所有权限
|
DELETE
|
删除数据
|
SELECT
|
查询数据
|
ALTER
|
修改表
|
INSERT
|
插入数据
|
DROP
|
删除数据库/
表
/
视图
|
UPDATE
|
修改数据
|
CREATE
|
创建数据库
/
表
|
注意事项:
•
多个权限之间,使用逗号分隔
•
授权时, 数据库名和表名可以使用
*
进行通配,代表所有。
查询权限:SHOW GRANTS FOR
'
用户名
'
@
'
主机名
'
;
授予权限 :
GRANT
权限列表
ON
数据库名
.
表名
TO
'
用户名
'
@
'
主机名
'
;
撤销权限:REVOKE
权限列表
ON
数据库名
.
表名
FROM
'
用户名
'
@
'
主机名
'
;
查询
'heima'@'%' 用户的权限:show grants for
'heima'
@
'%'
;
授予
'heima'@'%'
用户
itcast
数据库所有表的所有操作权限 :
grant all
on
itcast.* to
'heima'
@
'%'
;
撤销
'heima'@'%'
用户的
itcast数据库的所有权限:revoke all
on
itcast.*
from
'heima'
@
'%'
;