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:允许单个用户同时建立连接的次数。

相关推荐
DevOpenClub7 分钟前
网页采集如何稳定输出结构化数据:JSON、链接与快照三阶段流水线
数据库·json·api
其实防守也摸鱼34 分钟前
免杀与持久化入门:从载荷免杀到隐蔽通道的完整指南
运维·服务器·数据库·安全·github·copilot·渗透
SelectDB35 分钟前
统一全文检索与 SQL 分析:Apache Doris 日志分析实践
运维·数据库·掘金技术征文
麻瓜code44 分钟前
【MySQL】SQL优化实战:从慢查询定位到查询改写
数据库·sql·mysql
蓝鸟19741 小时前
Oracle HIS业务视图优化实战|VI_BQ_YWTX11从高耗费到秒级响应
数据库·oracle·his数据库调优·复合索引踩坑·is null索引问题·ql视图优化
数智启示录2 小时前
Apache Doris 4.0.8 混合检索实战(第 5 篇):三套系统只返回两条结果,一条 SQL 如何避开交集丢失
大数据·数据库·经验分享·sql·面试
今天AI了吗2 小时前
大模型技术全景(一):AI、机器学习、深度学习,三者的关系到底是什么?一文搞懂
数据库·人工智能·python·sql·深度学习·机器学习·rust
这个DBA有点耶2 小时前
RANGE/LIST/HASH/二级分区怎么选?分区表适用边界与隐藏代价
数据库·mysql·dba
离陌在学C#2 小时前
C# 异步编程:从 async/await 到 Task 实战指南
开发语言·数据库·c#
还是大剑师兰特2 小时前
MySQL8.0 Windows完整安装教程
windows·mysql·大剑师