权限表
- 查看表
MariaDB [(none)]> show databases; # 查看所有数据库 +--------------------+ | Database | +--------------------+ | information_schema | | jdbc | | mysql | | performance_schema | +--------------------+ 4 rows in set (0.000 sec) MariaDB [(none)]> use mysql # 使用mysql数据库 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> show tables; # 查看所有表 +---------------------------+ | Tables_in_mysql | +---------------------------+ | column_stats | | columns_priv | | db | | event | | func | | general_log | | gtid_slave_pos | | help_category | | help_keyword | | help_relation | | help_topic | | host | | index_stats | | innodb_index_stats | | innodb_table_stats | | plugin | | proc | | procs_priv | | proxies_priv | | roles_mapping | | servers | | slow_log | | table_stats | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | transaction_registry | | user | +---------------------------+ 31 rows in set (0.000 sec)
- 查看user表
MariaDB [mysql]> desc user; +------------------------+-----------------------------------+------+-----+----------+-------+ | Field | Type | Null | Key | Default | Extra | +------------------------+-----------------------------------+------+-----+----------+-------+ | Host | char(60) | NO | PRI | | | | User | char(80) | NO | PRI | | | | Password | char(41) | NO | | | | | Select_priv | enum('N','Y') | NO | | N | | | Insert_priv | enum('N','Y') | NO | | N | | | Update_priv | enum('N','Y') | NO | | N | | | Delete_priv | enum('N','Y') | NO | | N | | | Create_priv | enum('N','Y') | NO | | N | | | Drop_priv | enum('N','Y') | NO | | N | | | Reload_priv | enum('N','Y') | NO | | N | | | Shutdown_priv | enum('N','Y') | NO | | N | | | Process_priv | enum('N','Y') | NO | | N | | | File_priv | enum('N','Y') | NO | | N | | | Grant_priv | enum('N','Y') | NO | | N | | | References_priv | enum('N','Y') | NO | | N | | | Index_priv | enum('N','Y') | NO | | N | | | Alter_priv | enum('N','Y') | NO | | N | | | Show_db_priv | enum('N','Y') | NO | | N | | | Super_priv | enum('N','Y') | NO | | N | | | Create_tmp_table_priv | enum('N','Y') | NO | | N | | | Lock_tables_priv | enum('N','Y') | NO | | N | | | Execute_priv | enum('N','Y') | NO | | N | | | Repl_slave_priv | enum('N','Y') | NO | | N | | | Repl_client_priv | enum('N','Y') | NO | | N | | | Create_view_priv | enum('N','Y') | NO | | N | | | Show_view_priv | enum('N','Y') | NO | | N | | | Create_routine_priv | enum('N','Y') | NO | | N | | | Alter_routine_priv | enum('N','Y') | NO | | N | | | Create_user_priv | enum('N','Y') | NO | | N | | | Event_priv | enum('N','Y') | NO | | N | | | Trigger_priv | enum('N','Y') | NO | | N | | | Create_tablespace_priv | enum('N','Y') | NO | | N | | | Delete_history_priv | enum('N','Y') | NO | | N | | | ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | | | ssl_cipher | blob | NO | | NULL | | | x509_issuer | blob | NO | | NULL | | | x509_subject | blob | NO | | NULL | | | max_questions | int(11) unsigned | NO | | 0 | | | max_updates | int(11) unsigned | NO | | 0 | | | max_connections | int(11) unsigned | NO | | 0 | | | max_user_connections | int(11) | NO | | 0 | | | plugin | char(64) | NO | | | | | authentication_string | text | NO | | NULL | | | password_expired | enum('N','Y') | NO | | N | | | is_role | enum('N','Y') | NO | | N | | | default_role | char(80) | NO | | | | | max_statement_time | decimal(12,6) | NO | | 0.000000 | | +------------------------+-----------------------------------+------+-----+----------+-------+ 47 rows in set (0.001 sec)
字段分类
- 范围列(或用户列)
host : 表示连接类型 % 表示所有远程通过 TCP方式的连接 IP 地址 如 (192.168.1.2、127.0.0.1) 通过制定ip地址进行的TCP方式的连接 机器名 通过制定网络中的机器名进行的TCP方式的连接 ::1 IPv6的本地ip地址,等同于IPv4的 127.0.0.1 localhost 本地方式通过命令行方式的连接 ,比如mysql -u xxx -p xxx 方式的连接。 user : 表示用户名,同一用户通过不同方式链接的权限是不一样的。 password : 密码 所有密码串通过 password(明文字符串) 生成的密文字符串。MySQL 8.0 在用户管理方面增加了 角色管理,默认的密码加密方式也做了调整,由之前的 SHA1 改为了 SHA2 ,不可逆 。同时 加上 MySQL 5.7 的禁用用户和用户过期的功能,MySQL 在用户管理方面的功能和安全性都较之 前版本大大的增强了。 mysql 5.7 及之后版本的密码保存到 authentication_string 字段中不再使用password 字段。
- 权限列
Grant_priv字段 表示是否拥有GRANT权限 Shutdown_priv字段 表示是否拥有停止MySQL服务的权限 Super_priv字段 表示是否拥有超级权限 Execute_priv字段 表示是否拥有EXECUTE权限。拥有EXECUTE权限,可以执行存储过程和函数。 Select_priv , Insert_priv等 为该用户所拥有的权限。
- 安全列
安全列只有6个字段,其中两个是ssl相关的(ssl_type、ssl_cipher),用于 加密 ; 两个是x509相关的(x509_issuer、x509_subject),用于 标识用户 ; 另外两个Plugin字段用于 验证用户身份 的插件,该字段不能为空。如果该字段为空,服务器就使用内建授权验证机制验证用户身份
- 资源控制列
资源控制列的字段用来 限制用户使用的资源 ,包含4个字段,分别为: max_questions,用户每小时允许执行的查询操作次数; max_updates,用户每小时允许执行的更新操作次数; max_connections,用户每小时允许执行的连接操作次数; max_user_connections,用户允许同时建立的连接次数
- 查看db表
MariaDB [mysql]> desc db; +-----------------------+---------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------------------+---------------+------+-----+---------+-------+ | Host | char(60) | NO | PRI | | | | Db | char(64) | NO | PRI | | | | User | char(80) | NO | PRI | | | | Select_priv | enum('N','Y') | NO | | N | | | Insert_priv | enum('N','Y') | NO | | N | | | Update_priv | enum('N','Y') | NO | | N | | | Delete_priv | enum('N','Y') | NO | | N | | | Create_priv | enum('N','Y') | NO | | N | | | Drop_priv | enum('N','Y') | NO | | N | | | Grant_priv | enum('N','Y') | NO | | N | | | References_priv | enum('N','Y') | NO | | N | | | Index_priv | enum('N','Y') | NO | | N | | | Alter_priv | enum('N','Y') | NO | | N | | | Create_tmp_table_priv | enum('N','Y') | NO | | N | | | Lock_tables_priv | enum('N','Y') | NO | | N | | | Create_view_priv | enum('N','Y') | NO | | N | | | Show_view_priv | enum('N','Y') | NO | | N | | | Create_routine_priv | enum('N','Y') | NO | | N | | | Alter_routine_priv | enum('N','Y') | NO | | N | | | Execute_priv | enum('N','Y') | NO | | N | | | Event_priv | enum('N','Y') | NO | | N | | | Trigger_priv | enum('N','Y') | NO | | N | | | Delete_history_priv | enum('N','Y') | NO | | N | | +-----------------------+---------------+------+-----+---------+-------+ 23 rows in set (0.001 sec)
- 字段分类
- 用户列
db表用户列有3个字段,分别是Host、User、Db。这3个字段分别表示主机名、用户名和数据库名。 表示从某个主机连接某个用户对某个数据库的操作权限,这3个字段的组合构成了db表的主键。
- 权限列
Create_routine_priv和Alter_routine_priv这两个字段决定用户是否具有创建和修改存储过程的权限。
- tables_priv表用来 对表设置操作权限
MariaDB [mysql]> desc tables_priv; +-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------------------+-------------------------------+ | Field | Type | Null | Key | Default | Extra | +-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------------------+-------------------------------+ | Host | char(60) | NO | PRI | | | | Db | char(64) | NO | PRI | | | | User | char(80) | NO | PRI | | | | Table_name | char(64) | NO | PRI | | | | Grantor | char(141) | NO | MUL | | | | Timestamp | timestamp | NO | | current_timestamp() | on update current_timestamp() | | Table_priv | set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger','Delete versioning rows') | NO | | | | | Column_priv | set('Select','Insert','Update','References') | NO | | | | +-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------------------+-------------------------------+ 8 rows in set (0.001 sec)
- 字段简介
Host 、 Db 、 User 和 Table_name 四个字段分别表示主机名、数据库名、用户名和表名。 Grantor表示修改该记录的用户。 Timestamp表示修改该记录的时间。 Table_priv 表示对象的操作权限。包括Select、Insert、Update、Delete、Create、Drop、Grant、References、Index和Alter。 Column_priv字段表示对表中的列的操作权限,包括Select、Insert、Update和References。
- 查看columns_priv表
MariaDB [mysql]> desc mysql.columns_priv; +-------------+----------------------------------------------+------+-----+---------------------+-------------------------------+ | Field | Type | Null | Key | Default | Extra | +-------------+----------------------------------------------+------+-----+---------------------+-------------------------------+ | Host | char(60) | NO | PRI | | | | Db | char(64) | NO | PRI | | | | User | char(80) | NO | PRI | | | | Table_name | char(64) | NO | PRI | | | | Column_name | char(64) | NO | PRI | | | | Timestamp | timestamp | NO | | current_timestamp() | on update current_timestamp() | | Column_priv | set('Select','Insert','Update','References') | NO | | | | +-------------+----------------------------------------------+------+-----+---------------------+-------------------------------+ 7 rows in set (0.001 sec)
- procs_priv表可以对 存储过程和存储函数设置操作权限
MariaDB [mysql]> desc mysql.procs_priv; +--------------+-------------------------------------------------------+------+-----+---------------------+-------------------------------+ | Field | Type | Null | Key | Default | Extra | +--------------+-------------------------------------------------------+------+-----+---------------------+-------------------------------+ | Host | char(60) | NO | PRI | | | | Db | char(64) | NO | PRI | | | | User | char(80) | NO | PRI | | | | Routine_name | char(64) | NO | PRI | | | | Routine_type | enum('FUNCTION','PROCEDURE','PACKAGE','PACKAGE BODY') | NO | PRI | NULL | | | Grantor | char(141) | NO | MUL | | | | Proc_priv | set('Execute','Alter Routine','Grant') | NO | | | | | Timestamp | timestamp | NO | | current_timestamp() | on update current_timestamp() | +--------------+-------------------------------------------------------+------+-----+---------------------+-------------------------------+ 8 rows in set (0.001 sec)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
2021-06-07 ES6简单入门