mariadb mysql.user表格讲解

申屠泉
2023-12-01

mysql.user合格表格包含了可以链接MariaDB服务器的用户信息和相关权限。这个表可以直接查询和可以直接被更新。常用的是使用

GRANTCREATE USER去添加用户和管理权限。

MariaDB的权限存在许多级别。例如,一个用户可能不能使用create去创建用户,但是却可以去创建一些表格和数据。请参考privileges官网去查看更多的信息

PS:

MariaDB 10.3及其低版本,这个表使用的是MylSAM存储引擎

MariaDB 10.4及其高版本,mysql.global_priv表取代了mysql.user表。mysql.user则成为了一个试图。

mysql.user表包含了以下字段:

FieldTypeNullKeyDefaultDescriptionIntroduced
Hostchar(60)NOPRI 地址,和user一起使用,提供帐号唯一标识 
Userchar(80)NOPRI 用户,和host一起使用,提供帐号唯一标识 
Passwordlongtext (>= MariaDB 10.4.1), char(41) (<= MariaDB 10.4.0)NO  

哈希密码,由PASSWORD(str)函数生成

常见用法有:

SET PASSWORD FOR 'bob'@'%' = PASSWORD('newpass');
 
Select_privenum('N','Y')NO N可执行SELECT操作 
Insert_privenum('N','Y')NO N可执行PERFORM操作 
Update_privenum('N','Y')NO N可执行UPDATE操作 
Delete_privenum('N','Y')NO N可执行DELETE操作 
Create_privenum('N','Y')NO N可CREATE DATABASE或者TABLE 
Drop_privenum('N','Y')NO N可DROP DATABASE或者TABLE 
Reload_privenum('N','Y')NO N可执行FLUSH操作 
Shutdown_privenum('N','Y')NO N可执行SHUTDOWN Server的操作 
Process_privenum('N','Y')NO N

可执行SHOW PROCESSLIST操作去展示活跃进程的信息

 
File_privenum('N','Y')NO N

可使用LOAD DATA INFILE或者LOAD FILES在Server读写文件

 
Grant_privenum('N','Y')NO N用户有关管理自己所有资源的授权 
References_privenum('N','Y')NO N不可用 
Index_privenum('N','Y')NO N

可执行CREATE INDEX对表格创建index。

没有INDEX权限,用户可以使用CREATE TABLE或者ALTER TABLE去实现。

 
Alter_privenum('N','Y')NO N可执行ALTER TABLE 操作 
Show_db_privenum('N','Y')NO N

执行SHOW DATABASES命令可列出所有的数据库。如果没有这个权限,则用户只能看到其拥有相应权限的数据库。

 
Super_privenum('N','Y')NO N

执行超级用户指令,如 CHANGE MASTER TO, KILL, PURGE LOGS,SET global system variables,或者mysqladmin debug指令。

 
Create_tmp_table_privenum('N','Y')NO N

可执行CREATE TEMPORARY TABLE去创建临时表格

 
Lock_tables_privenum('N','Y')NO N

可去LOCK TABLES的操作

 
Execute_privenum('N','Y')NO N

可执行stored procedure或者函数

 
Repl_slave_privenum('N','Y')NO N

slaver servers使用的用户在master上执行更新操作的账户

 
Repl_client_privenum('N','Y')NO N

可执行SHOW MASTER STATUS和SHOW SLAVE STATUS操作

 
Create_view_privenum('N','Y')NO N

可执行CREATE_VIEW去创建视图

 
Show_view_privenum('N','Y')NO N

可展示CREATE VIEW所生成的视图

 
Create_routine_privenum('N','Y')NO N

可使用CREATE PROCEDURE和CREATE FUNCTIONS指令去存储指令或者程序

 
Alter_routine_privenum('N','Y')NO N

可执行ALTER FUNCTION指令去改变一个存储的函数的特性

 
Create_user_privenum('N','Y')NO N

可使用CREATE USER命令去创建user,或者使用GRANT命令来隐式创建用户

 
Event_privenum('N','Y')NO N

创建,删除和改变事物

 
Trigger_privenum('N','Y')NO N

当用户执行更新,执行操作是可触发triggers。CREATE TRIGGER和DROP TRIGGER可以增加和删除触发。

 
Create_tablespace_privenum('N','Y')NO N  
Delete_history_privenum('N','Y')NO N

可删除有system versioning生成的行

MariaDB 10.3.5
ssl_typeenum('', 'ANY', 'X509', 'SPECIFIED')NO  TLS option:TLS 类型 
ssl_cipherblobNO NULLTLS option: TLS 密码 
x509_issuerblobNO NULLTLS option: X509 密码 
x509_subjectblobNO NULLTLS option: SSL 主题 
max_questionsint(11) unsignedNO 0

一个用户一个小时内可执行的查询最大次数。0是无限

 
max_updatesint(11) unsignedNO 0

一个用户一个小时内可执行的更新操作最大次数。0是无限。

 
max_connectionsint(11) unsignedNO 0

一个用户一个小时内可建立的链接数最大数。0是无限。

 
max_user_connectionsint(11)NO 0

一个用户可同时建立的最大链接数。0是无限。

 
pluginchar(64)NO  

链接是使用的认证插件。默认为default

MariaDB 5.5
authentication_stringtextNO NULL

认证插件的认证字符串

MariaDB 5.5
password_expiredenum('N','Y')NO N

MySQL兼容项

 
is_roleenum('N','Y')NO N定义这个用户是否是个角色MariaDB 10.0.5
default_rolechar(80)NO N

每个登陆用户默认的角色

MariaDB 10.1.1
max_statement_timedecimal(12,6)NO 0.000000

查询被自动杀掉前最长时间

MariaDB 10.1.1
FieldTypeNullKeyDefaultDescriptionIntroduced

认证插件

当plugin列为空时,MariaDB默认认证用户使用mysql_native_password或者mysql_old_password插件。这决定password这列的值时如何哈希的。当没有设置password或者4.1password哈希被使用,MariaDB使用mysql_native_password插件。mysql_old_password插件则被pre-4.1 password哈希所使用。

MariaDB支持可替换的认证插件。当插件列被指定,MariaDB使用其进行认证链接的尝试。

 类似资料: