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

相关推荐
王ASC19 分钟前
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
数据库·sql·oracle
Dlwyz30 分钟前
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
数据库·redis·缓存
如意机反光镜裸1 小时前
如何快速将Excel数据导入到SQL Server数据库
数据库
Stara05111 小时前
Git推送+拉去+uwsgi+Nginx服务器部署项目
git·python·mysql·nginx·gitee·github·uwsgi
不爱学习的啊Biao2 小时前
初识mysql数据库
数据库·mysql·oracle
宛唐羁客2 小时前
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
网络·数据库
吴半杯3 小时前
Redis-monitor安装与配置
数据库·redis·缓存
是桃萌萌鸭~4 小时前
mysqldbcompare 使用及参数详解
数据库·mysql
gma9994 小时前
brpc 与 Etcd 二次封装
数据库·c++·rpc·etcd
Yz98764 小时前
hive复杂数据类型Array & Map & Struct & 炸裂函数explode
大数据·数据库·数据仓库·hive·hadoop·数据库开发·big data