mysql.user合格表格包含了可以链接MariaDB服务器的用户信息和相关权限。这个表可以直接查询和可以直接被更新。常用的是使用
GRANT和CREATE USER去添加用户和管理权限。
MariaDB的权限存在许多级别。例如,一个用户可能不能使用create去创建用户,但是却可以去创建一些表格和数据。请参考privileges官网去查看更多的信息
PS:
MariaDB 10.3及其低版本,这个表使用的是MylSAM存储引擎
MariaDB 10.4及其高版本,mysql.global_priv表取代了mysql.user表。mysql.user则成为了一个试图。
mysql.user表包含了以下字段:
Field | Type | Null | Key | Default | Description | Introduced |
---|---|---|---|---|---|---|
Host | char(60) | NO | PRI | 地址,和user一起使用,提供帐号唯一标识 | ||
User | char(80) | NO | PRI | 用户,和host一起使用,提供帐号唯一标识 | ||
Password | longtext (>= MariaDB 10.4.1), char(41) (<= MariaDB 10.4.0) | NO | 哈希密码,由PASSWORD(str)函数生成 常见用法有: | |||
Select_priv | enum('N','Y') | NO | N | 可执行SELECT操作 | ||
Insert_priv | enum('N','Y') | NO | N | 可执行PERFORM操作 | ||
Update_priv | enum('N','Y') | NO | N | 可执行UPDATE操作 | ||
Delete_priv | enum('N','Y') | NO | N | 可执行DELETE操作 | ||
Create_priv | enum('N','Y') | NO | N | 可CREATE DATABASE或者TABLE | ||
Drop_priv | enum('N','Y') | NO | N | 可DROP DATABASE或者TABLE | ||
Reload_priv | enum('N','Y') | NO | N | 可执行FLUSH操作 | ||
Shutdown_priv | enum('N','Y') | NO | N | 可执行SHUTDOWN Server的操作 | ||
Process_priv | enum('N','Y') | NO | N | 可执行SHOW PROCESSLIST操作去展示活跃进程的信息 | ||
File_priv | enum('N','Y') | NO | N | 可使用LOAD DATA INFILE或者LOAD FILES在Server读写文件 | ||
Grant_priv | enum('N','Y') | NO | N | 用户有关管理自己所有资源的授权 | ||
References_priv | enum('N','Y') | NO | N | 不可用 | ||
Index_priv | enum('N','Y') | NO | N | 可执行CREATE INDEX对表格创建index。 没有INDEX权限,用户可以使用CREATE TABLE或者ALTER TABLE去实现。 | ||
Alter_priv | enum('N','Y') | NO | N | 可执行ALTER TABLE 操作 | ||
Show_db_priv | enum('N','Y') | NO | N | 执行SHOW DATABASES命令可列出所有的数据库。如果没有这个权限,则用户只能看到其拥有相应权限的数据库。 | ||
Super_priv | enum('N','Y') | NO | N | 执行超级用户指令,如 CHANGE MASTER TO, KILL, PURGE LOGS,SET global system variables,或者mysqladmin debug指令。 | ||
Create_tmp_table_priv | enum('N','Y') | NO | N | 可执行CREATE TEMPORARY TABLE去创建临时表格 | ||
Lock_tables_priv | enum('N','Y') | NO | N | 可去LOCK TABLES的操作 | ||
Execute_priv | enum('N','Y') | NO | N | 可执行stored procedure或者函数 | ||
Repl_slave_priv | enum('N','Y') | NO | N | slaver servers使用的用户在master上执行更新操作的账户 | ||
Repl_client_priv | enum('N','Y') | NO | N | 可执行SHOW MASTER STATUS和SHOW SLAVE STATUS操作 | ||
Create_view_priv | enum('N','Y') | NO | N | 可执行CREATE_VIEW去创建视图 | ||
Show_view_priv | enum('N','Y') | NO | N | 可展示CREATE VIEW所生成的视图 | ||
Create_routine_priv | enum('N','Y') | NO | N | 可使用CREATE PROCEDURE和CREATE FUNCTIONS指令去存储指令或者程序 | ||
Alter_routine_priv | enum('N','Y') | NO | N | 可执行ALTER FUNCTION指令去改变一个存储的函数的特性 | ||
Create_user_priv | enum('N','Y') | NO | N | 可使用CREATE USER命令去创建user,或者使用GRANT命令来隐式创建用户 | ||
Event_priv | enum('N','Y') | NO | N | 创建,删除和改变事物 | ||
Trigger_priv | enum('N','Y') | NO | N | 当用户执行更新,执行操作是可触发triggers。CREATE TRIGGER和DROP TRIGGER可以增加和删除触发。 | ||
Create_tablespace_priv | enum('N','Y') | NO | N | |||
Delete_history_priv | enum('N','Y') | NO | N | 可删除有system versioning生成的行 | MariaDB 10.3.5 | |
ssl_type | enum('', 'ANY', 'X509', 'SPECIFIED') | NO | TLS option:TLS 类型 | |||
ssl_cipher | blob | NO | NULL | TLS option: TLS 密码 | ||
x509_issuer | blob | NO | NULL | TLS option: X509 密码 | ||
x509_subject | blob | NO | NULL | TLS option: SSL 主题 | ||
max_questions | int(11) unsigned | NO | 0 | 一个用户一个小时内可执行的查询最大次数。0是无限 | ||
max_updates | int(11) unsigned | NO | 0 | 一个用户一个小时内可执行的更新操作最大次数。0是无限。 | ||
max_connections | int(11) unsigned | NO | 0 | 一个用户一个小时内可建立的链接数最大数。0是无限。 | ||
max_user_connections | int(11) | NO | 0 | 一个用户可同时建立的最大链接数。0是无限。 | ||
plugin | char(64) | NO | 链接是使用的认证插件。默认为default | MariaDB 5.5 | ||
authentication_string | text | NO | NULL | 认证插件的认证字符串 | MariaDB 5.5 | |
password_expired | enum('N','Y') | NO | N | MySQL兼容项 | ||
is_role | enum('N','Y') | NO | N | 定义这个用户是否是个角色 | MariaDB 10.0.5 | |
default_role | char(80) | NO | N | 每个登陆用户默认的角色 | MariaDB 10.1.1 | |
max_statement_time | decimal(12,6) | NO | 0.000000 | 查询被自动杀掉前最长时间 | MariaDB 10.1.1 | |
Field | Type | Null | Key | Default | Description | Introduced |
当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使用其进行认证链接的尝试。