MySQL数据控制语言

《MySQL数据库入门实战精讲》学习笔记(三)

SQL语言按功能用途分为4类,分别是DDL、DML、DQL和DCL。其中,DCL是数据控制语言,主要用于管理用户和权限。

DCL语言功能

  1. 创建用户
  2. 删除用户
  3. 修改密码
  4. 给用户赋予权限
  5. 撤销用户权限

用户管理

创建用户

CREATE USER '用户名' [@'主机名'] [IDENTIFIED BY '密码'];
#create user'xsy'@'%'identified by '123456';
#create user'xsy'@'192.160.0.222'identified by'123456';//创建的账户只能从特定地址主机才能登录

注意:

  • MySQL的用户账号由两部分组成用户名和主机名,即用户名@主机名,主机名可以是IP或机器名称,
    主机名为%表示允许任何地址的主机远程登录MySQL数据库
  • 创建出来的用户没有任何权限,需要授权才能操作数据库。否则仅能用来登录。
  • 创建用户时可不提供主机名,默认主机名为%。

删除用户

DROP USER '用户名' [@'主机名'];

修改密码

ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码';

权限管理

给用户赋予权限

grant all privileges on databaseName.tableName to '用户名' [@'主机名'] ;
# grant select on mydb.* to 'xsy'@'%'//给用户xsy赋予mydb数据库的查询权限
  • 给某用户赋予某个数据库的某张表的某个权限。
  • 所有数据库的所有表 表示为*.*

撤销用户权限

revoke all privileges on databaseName.tableName from '用户名' [@'主机名'] ;
#revoke select on mydb.* from 'xsy'@'%'

使用grant和revoke进行授权、撤销授权时,一般需要指定具体是哪些权限,这些权限大体可以分为3类,
数据类、结构类和管理类。
在这里插入图片描述

刷新权限

通常对用户权限进行修改后想要立即生效需要进行刷新。

flush privileges;

查看权限

show grants for '用户名' [@'主机名'];

禁止用户远程登录

在实际工作中,公司的DBA都会设置禁止root用户远程登录,主要原因有:

  • root是MySQL数据库的超级管理员,几乎拥有所有权限,一旦泄露后果非常严重。
  • root是MySQL数据库的默认用户,所有人都知道,如果不禁止远程登录,可以针对root用户暴力破解密码。

想要禁止用户远程登录就要将root账户的host改为localhost

设置方法:

首先进去mysql数据库

use mysql;

查看user表信息

select user,host from user;

在这里插入图片描述
若root的host已经是localhost则已经设置成功,若不是则需要修改为localhost。

update user set host = 'localhost' where user = 'root';

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

椰子zii

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值