Loading... #### MySQL 权限详解 (1) * All/All Privileges 权限代表全局或者全数据库对象级别的所有权限 * Alter 权限代表允许修改表结构的权限,但必须要求有 create 和 insert 权限配合。如果是 rename 表名,则要求有 alter 和 drop 原表,create 和 insert 新表的权限 * Alter routine 权限代表允许修改或者删除存储过程、函数的权限 * Create 权限代表允许创建新的数据库和表的权限 * Createroutine 权限代表允许创建存储过程、函数的权限 * Createtablespace 权限代表允许创建、修改、删除表空间和日志组的权 限 * Create temporary tables 权限代表允许创建临时表的权限 * Createuser 权限代表允许创建、修改、删除、重命名 user 的权限 * Createview 权限代表允许创建视图的权限 #### MySQL 权限详解 (2) * Delete 权限代表允许删除行数据的权限 * Drop 权限代表允许删除数据库、表、视图的权限,包括 truncatetable 命令 * Event 权限代表允许查询,创建,修改,删除 MySQL 事件 * Execute 权限代表允许执行存储过程和函数的权限 * File 权限代表允许在 MySQL 可以访问的目录进行读写磁盘文件操作,可使用 的命令包括 load data infile,select ... into outfile,load file() 函数 * Grant option 权限代表是否允许此用户授权或者收回给其他用户你给予的权 限 * Index 权限代表是否允许创建和删除索引 * Insert 权限代表是否允许在表里插入数据,同时在执行 analyze table,optimize table,repair table 语句的时候也需要 insert 权限 * Lock 权限代表允许对拥有 select 权限的表进行锁定,以防止其他链接对此表的读或写 #### MySQL权限详解(3) * Process 权限代表允许查看 MySQL 中的进程信息,比如执行 showprocesslist, * Reference 权限是在 5.7.6 版本之后引入,代表是否允许创建外键 * Reload 权限代表允许执行 flush 命令,指明重新加载权限表到系统内存中, refresh 命令代表关闭和重新开启日志文件并刷新所有的表 * Replication client 权限代表允许执行 show master status,show slave status,show binary logs 命令 * Replication slave 权限代表允许 slave 主机通过此用户连接 master 以便建立主从 复制关系 * Select 权限代表允许从表中查看数据,某些不查询表数据的 select 执行则不需 要此权限,如 Select 1+1,Select PI()+2; 而且 select 权限在执行 update/delete 语句中含有 where 条件的情况下也是需要的 * Showdatabases 权限代表通过执行 showdatabases 命令查看所有的数据库名 * Show view 权限代表通过执行 show create view 命令查看视图创建的语句 mysqladmin processlist, show engine 等命令 #### MySQL权限详解(4) * Shutdown 权限代表允许关闭数据库实例,执行语句包括 mysqladmin shutdown * Super 权限代表允许执行一系列数据库管理命令,包括 kill 强制关闭某个连接命令,change master to 创建复制关系命令,以及 create/alter/drop server 等命令 * Trigger 权限代表允许创建,删除,执行,显示触发器的权限 * Update 权限代表允许修改表中的数据的权限 * Usage 权限是创建一个用户之后的默认权限,其本身代表连接登录权限 #### 系统权限表 * 权限存储在 mysql 库的 user,db, tables_priv, columns_priv, and procs_priv 这几个系统表中,待 MySQL 实例启动后就加载到内存中 * User 表:存放用户账户信息以及全局级别(所有数据库)权限,决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权限 * Db 表:存放数据库级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库 * Tables_priv 表:存放表级别的权限,决定了来自哪些主机的哪些用户可以访问数据库的这个表 * Columns_priv 表:存放列级别的权限,决定了来自哪些主机的哪些用户可以访问数据库表的这个字段 * Procs_priv 表:存放存储过程和函数级别的权限 * User 和 db 权限表结构 * User 权限表结构中的特殊字段 * Plugin,password,authentication_string 三个字段存放用户认证信息 * Password_expired 设置成 'Y' 则表明允许 DBA 将此用户的密码设置成过期而且过期后要求用户的使用者重置密码 (alter user/set password 重置密码) * Password_last_changed 作为一个时间戳字段代表密码上次修改时间,执行 create user/alter user/set password/grant 等命令创建用户或修改用户密码时此数值自动更新 * Password_lifetime 代表从 password_last_changed 时间开始此密码过期的天数 * Account_locked 代表此用户被锁住,无法使用 * Tables_priv 和 columns_priv 权限表结构 * Timestamp 和 grantor 两个字段暂时没用 * Tables_priv 和 columns_priv 权限值 * procs_priv 权限表结构 * Routine_type 是枚举类型,代表是存储过程还是函数 * Timestamp 和 grantor 两个字段暂时没用 * 系统权限表字段长度限制表 * 权限认证中的大小写敏感问题 * 字段 user,password,authencation_string,db,table_name 大小写敏感 * 字段 host,column_name,routine_name 大小写不敏感 * User 用户大小写敏感 仅摘录了需要收藏的部分内容。 原文摘自:[https://www.cnblogs.com/Csir/p/7889953.html](https://www.cnblogs.com/Csir/p/7889953.html) 最后修改:2021 年 08 月 19 日 © 转载自他站 赞 赠人玫瑰,手留余香