MySQL笔记三

DCL:

我们知道,SQL语言按功能用途分为4类,分别是DDL、DML、DQL和DCL。其中,DCL是数据控 制语言,主要用于管理用户和权限。在企业中,这部分工作通常是由DBA完成,一般开发人员很少 接触。

DCL主要能做什么? 1. 创建用户 2. 删除用户 3. 修改密码 4. 给用户赋予权限 5. 撤销用户权限

 用户管理:

在MySQL中,使用CREATE USER来创建用户,用户创建后没有任何权限(只能用来登录)。

#创建用户 CREATE USER '用户名' [@'主机名'] [IDENTIFIED BY '密码'];

注意:MySQL的用户账号由两部分组成:用户名和主机名,即用户名@主机名,主机名可以是IP或机器名称,主机名为localhost表示只能当前的主机才能登录,主机名为%表示允许任何地址的主机远程登录MySQL数据库。

#删除用户 DROP USER '用户名' [@'主机名']; #修改密码 ALTER USER '用户名'@'主机名' IDENTIFIED BY '新密码'

权限管理:

在MySQL数据库中,使用grant命令授权、revoke命令撤销授权。(all privileges 全部的权限)

#授权 grant all privileges on databaseName.tableName to '用户名' [@'主机名'] ;

#撤销授权 revoke all privileges on databaseName.tableName from '用户名' [@'主机名'] ;

#刷新权限 FLUSH PRIVILEGES; #查看权限 show grants for '用户名' [@'主机名'] ;

例:

use mysql;
#查看用户有哪些权限
#show grants for 'Jean'@'%';
#把mydb读的权限赋予给Jean
#grant select on mydb.* to Jean;
#把Jean的mydb读的权限收回
#revoke select on mydb.* from Jean;
#flush privileges;
#show grants for 'Jean'@'%';

  权限列表:

 禁止ROOT用户远程登录:

为什么要禁止root远程登录

1. root是MySQL数据库的超级管理员,几乎拥有所有权限,一旦泄露后果非常严重;

2. root是MySQL数据库的默认用户,所有人都知道,如果不禁止远程登录,可以针对root用户暴力破解密码

(user是一张表,对其进行修改操作)

use mysql;
#select * from user;
#禁止Jean远程登录
#update user set Host='localhost' where User='Jean';
#改回去
#update user set Host='%' where User='Jean';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值