MySQL——数据库的高级操作(二)用户管理(1)uer表

每个软件都会对用户信息进行管理,MySQL也不例外,MySQL中的用户分为root用户和普通用户,root 用户为超级管理员,具有所有权限,如创建用户、删除用户、管理用户等,而普通用户只拥有被赋予的某些权限。

在安装 MySQL时,会自动安装一个名为 mysql的数据库,该数据库中的表都是权限

表,如 user、db、host,tables_priv、column_priv 和 procs_priv,其中 user 表是最重要的一个权限表,它记录了允许连接到服务器的账号信息以及一些全局级的权限信息,通过探作该表就可以对这些信息进行修改。为了让初学者更好地学习 user表,接下来列举 user表中的一些常用字段,如下表所示。

|-----------------------|---------------------------------|------|
| 字段名 | 数据类型 | 默认值 |
| Host | char(60) | N |
| User | char(16) | N |
| Password | char(41) | N |
| Select_priv | enum( 'N', 'Y') | N |
| Insert_priv | enum( 'N', 'Y') | N |
| Update_priv | enum( 'N', 'Y') | N |
| Delete_priv | enum( 'N', 'Y') | N |
| Create _priv | enum( 'N', 'Y') | N |
| Drop_priv | enum( 'N', 'Y') | N |
| Reload_priv | enum( 'N', 'Y') | N |
| Shutdown_priv | enum( 'N', 'Y') | N |
| ssl_type | enum(",'ANY', X509','SPECIFIED) | |
| ssl_cipher | blob | NULL |
| x509_issuer | blob | NULL |
| x509_subject | blob | NULL |
| max_questions | int(11) unsigned | 0 |
| max_updates | int(11) unsigned | 0 |
| max_connections | int(11) unsigned | 0 |
| max_user_connections | int(11) unsigned | 0 |
| plugin | char(64) | |
| authentication string | text | NULL |

表中只列举了 user 表的一部分字段,这些字段大致可分为4类,具体如下。

1、用户列

user 表的用户列包括 Host、User、Password,分别代表主机名、用户名和密码。其中Host 和 User 列为 user 表的联合主键,当用户与服务器建立连接时,输人的用户名、主机名和密码必须匹配 user 表中对应的字段,只有这三个值都匹配的时候,才允许建立连接。当修改密码时,只需要修改 user 表中 Password 字段的值即可。

2、权限列

user 表的权限列包括 Select_priv、Insert_priv、Update_priv 等以 priv 结尾的字段,这些字段决定了用户的权限,其中包括查询权限、修改权限、关闭服务等权限。

user 表对应的权限是针对所有数据库的,并且这些权限列的数据类型都是 ENUM,取值只有 N或 Y,其中 N 表示该用户没有对应权限,Y表示该用户有对应权限,为了安全起见,这些字段的默认值都为 N,如果需要可以对其进行修改。

3、安全列

user 表的安全列用于管理用户的安全信息,其中包括6个字段,具体如下。

(1)ssl_type 和 ssl_cipher: 用于加密。

(2)x509_issuer 和 x509_subject 标准:可以用来标识用户。

(3)plugin 和 authentication_string:用于存储与授权相关的插件。

通常标准的发行版不支持 ssl 加密,初学者可以使用 SHOW VARIABLES LIKE have_openssl'语句查看,如果 have_openssl 的取值为 DISABLED,则表示不支持加密。

4、资源控制列

user 表的资源控制列是用于限制用户使用的资源,其中包括4个字段,具体如下

(1)max_questions:每小时允许用户执行查询操作的次数。

(2)max_updates:每小时允许用户执行更新操作的次数。

(3)max_connections:每小时允许用户建立连接的次数。

(4)max_user_connections:允许单个用户同时建立连接的次数。

相关推荐
husterlichf24 分钟前
MYSQL 常用数值函数 和 条件函数 详解
数据库·sql·mysql
我的golang之路果然有问题27 分钟前
快速了解redis,个人笔记
数据库·经验分享·redis·笔记·学习·缓存·内存
卡皮巴拉爱吃小蛋糕1 小时前
MySQL的MVCC【学习笔记】
数据库·笔记·mysql
农民也会写代码1 小时前
dedecms织梦arclist标签noflag属性过滤多个参数
开发语言·数据库·sql·php·dedecms
m0_748232921 小时前
你还在手动画ER图吗?让SQL自动生成ER图,轻松解决作业难题!
数据库·sql·oracle
玄明Hanko1 小时前
生产环境到底能用Docker部署MySQL吗?
后端·mysql·docker
清流君1 小时前
【MySQL】数据库 Navicat 可视化工具与 MySQL 命令行基本操作
数据库·人工智能·笔记·mysql·ue5·数字孪生
邂逅岁月1 小时前
MySQL表的增删改查初阶(下篇)
数据库·sql·mysql
Python_金钱豹1 小时前
Text2SQL零代码实战!RAGFlow 实现自然语言转 SQL 的终极指南
前端·数据库·sql·安全·ui·langchain·机器人
静听夜半雨1 小时前
CANoe入门——3、新建LIN工程及LIN DataBase(LDF文件)的创建
网络·数据库·c++·编辑器