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

相关推荐
元亓亓亓15 分钟前
MySQL--day2--基本的select语句
数据库·mysql
辛普森Mmmm24 分钟前
Mysql数据库详解
数据库·mysql
冬瓜的编程笔记29 分钟前
【MySQL成神之路】MySQL常见命令汇总
数据库·mysql
FBI HackerHarry浩35 分钟前
Linux云计算训练营笔记day10(MySQL数据库)
linux·运维·数据库·笔记·mysql
20242817李臻44 分钟前
李臻20242817_安全文件传输系统项目报告_第12周
数据库·安全
vvilkim1 小时前
MySQL 用户权限管理:从入门到精通
数据库·mysql
奔驰的小野码1 小时前
MySQL8.x新特性:与mysql5.x的版本区别
数据库·mysql
lml48561 小时前
MySQL高可用
数据库·mysql
YUNYINGXIA1 小时前
MySQL高可用
数据库·mysql
小芳矶2 小时前
【全网首发】解决coze工作流批量上传excel数据文档数据重复的问题
数据库·oracle·excel