MYSQL权限管理

MYSQL权限管理

在MySQL数据库中,使用grant命令授权、 revoke命令撤销授权。

授权:grant to

grant all privileges on databaseName.tableName to ‘用户名’ [@‘主机名’] ;

撤销授权 revoke from

revoke all privileges on databaseName.tableName from ‘用户名’ [@‘主机名’] ;

刷新权限

FLUSH PRIVILEGES;

查看权限

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

使用grant和revoke进行授权、撤销授权时,需要指定具体是哪些权限,这些权限大体可以分为3类,
数据类、结构类和管理类。

数据结构管理
SELECT INSERT UPDATE DELETE FILECREATE ALTER INDEX DROP CREATE TEMPORARY TABLES SHOW VIEW CREATE ROUTINE ALTER ROUTINE EXECUTE CREATE VIEW EVENT TRIGGERUSAGE GRANT SUPER PROCESS RELOAD SHUTDOWN SHOW DATABASES LOCK TABLES REFERENCES REPUCATION CUENT REPUCATION SLAVE CREATE USER

实例:

查看用户的权限:

新增用户

show grants for “xiaoluo”:

给用户xiaoluo 赋予数据库mydb中的所有表的查询权限;

grant select on mydb to “xiaoluo”;

在这里插入图片描述

移除用户的查询权限

revoke select on mydb.* from “xiaoluo”@"%";

在这里插入图片描述

给xiaoluo 赋予表area的查询和修改权限:

grant select, update on mydb.area to “xiaoluo”@"%";

在这里插入图片描述
只有查询和修改权限,进行删除操作时,系统报错:提示无权限

在这里插入图片描述

修改用户密码:

alter user “user_name”@"%" identified by “new_password”;

指定用户登录IP :限定用户登录的IP 。如果IP不对,即使用户名和密码正确也不能登录!

update user set host=“192.168.0.104” where User=“xiaoluo”;

在这里插入图片描述
在这里插入图片描述

禁止root 用户远程登录:

在实际工作中,一般情况下都会禁止root用户远程登录,请问这是为什么?

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

mysql 用户名实际上是由两部分组成的:用户名@用户地址

对于root用户。我们需要设置地址为:localhost .这样就可以保证别人无法远程登录root 用户。只能在本地登录

mysql 中用户的信息都在同一个表中,mysql.user 表。

这个表中存在所有系统中的用户信息,包含用户名称、用户连接得知、用户权限、用户密码管理(过期设置等)

在这里插入图片描述
小结:对于数据库权限。通常root用户设置为不可远程登录:localhost 登录。对于权限要求高的地方。可以指定每个用户登录的IP 。以及每个用户的具体权限:哪个数据库,哪个表,那一列等。也可以指定新的用户具备管理员的部分权限进行管理工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值