MySQL权限管理总结

本文详细介绍了MySQL的权限管理系统,包括user表的结构和分类,如用户列、权限列、安全列和资源控制列。重点讲解了如何创建、删除用户,以及使用GRANT语句赋予用户权限。此外,还涵盖了root用户密码的修改和丢失后的解决办法,以及db表、tables_priv表、columns_priv表和procs_priv表在权限分配中的作用和规则。
摘要由CSDN通过智能技术生成

1. 概述

我们在安装Mysql时会自动安装一个名为mysql的数据库。这个数据库下面存储的是权限表。我们可以使用:show databases ;命令来查看所有的数据库列表。
Mysql会根据这些权限表的内容为每个用户赋予相应的权限,所以我们也是通过这些表来实现管理用户和权限的,如下图所示是在mysql数据库中存在的表:
这里写图片描述
MySQL存取控制包含2个阶段:
阶段1:服务器检查你是否允许连接。
阶段2:假定你能连接,服务器检查你发出的每个请求。看你是否有足够的权限实施它。例如,如果你从数据库中一个表精选(select)行或从数据库抛弃一个表,服务器确定你对表有select权限或对数据库有drop权限。

2. user表

user表的作用相当与mysql工作流程中的”用户管理模块”,它决定着我们对一个连接允许或拒绝,user表用于记录允许连接到服务器的用户帐号信息,里面的对于数据库的权限是全局生效的
如下图所示是user表结构:
这里写图片描述

2.1 根据user表结构,表的字段可以分为4类

(1) 用户列

Host          主机名   ——>如果想要从别的机器来登入数据库,Host可以设成 % 
User          用户名
Password  密码
用户登录时,首先要判断这三个字段是否匹配,匹配则允许登录;
用户创建时,也是设置这三个字段的值;
修改用户密码时,实际也是修改了user表的Password字段的值。

(2) 权限列(以priv结尾的)

Grant_priv         是否有Grant权限
Shutdown_priv  是否有停止mysql服务的权限
Super_priv        是否有超级权限
Execute_priv    是否有执行存储过程和函数的权限
包含普通权限:查询权限、修改权限等 操作数据库的动作;
包含高级管理权限:关闭服务权限、超级权限、加载用户等 管理数据库的动作;
这些字段只有N和Y两个选项,为安全起见默认值都设为N;
对这些权限的管理可以使用GRANT语句、也可以通过UPDATE user表的这些列来实现。

(3) 安全列
这里写图片描述
(4) 资源控制列

max_questions    每小时允许执行多少次查询
max_updates       每小时允许执行多少次更新
max_connections 每小时允许建立多少连接
max_user_connections 单个用户可以同时具有的连接数
这些字段默认值为0,表示没有限制

2.2 帐户管理

MYSQL提供许多语句用来管理用户帐号,这些语句可以用来包括登录和退出MYSQL服务器、创建用户、删除用户、密码管理、权限管理
MYSQL数据库的安全性,需要通过帐户管理来保证登录和退出MYSQL

mysql命令的常用参数
-h:主机名或ip,默认是localhost,最好指定-h参数
-u:用户名
-p:密码,注意:该参数后面的字符串和-p不能有空格
-P:端口号,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值