暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

MySQL权限详解

原创 杨磊 2021-12-19
1173

MySQL权限有哪些权限,详见如下:

  1. ALL/ALL Privileges权限代表全局或者全数据库对象级别的所有权限
  2. Alter权限代表允许修改表结构的权限,但必须要求有create和insert权限配合。如果rename表明,则要求有alter和drop原表,create 和insert新表的权限。
  3. Alter routine权限代表允许修改或者删除存储过程、函数的权限
  4. create 权限代表允许创建新的数据库和表的权限
  5. create routine权限代表允许创建存储过程、函数的权限
  6. create tablespace权限代表允许创建、修改、删除表空间和日志组的权限
  7. create temporary tables权限代表允许创建临时表的权限
  8. create user权限代表允许创建、修改、删除、重命名user的权限
  9. create view权限代表允许创建视图的权限
  10. delete权限代表允许删除行数据的权限
  11. drop权限代表允许删除数据库、表、视图的权限,包括truncate tabled的命令
  12. event权限代表允许查询,创建,修改,删除MySQL事件
  13. execute权限代表允许执行存储过程和函数的权限
  14. file权限代表允许在MySQL可以访问的目录进行读写磁盘文件操作,可以使用的命令包括load data infile,select … into outfile,load file()函数
  15. grant option权限代表是否允许此用户授权或者回收给其他用户你给予的权限
  16. index权限代表是否允许创建和删除索引
  17. insert权限代表是否允许在表中插入数据,同时也执行analyze table,optimize table,repair table语句的时候也需要insert 权限
  18. lock权限代表允许对拥有select权限的表进行行锁定,以防其他链接对词表的读或写
  19. process权限代表允许查看mysql 中的进程信息,比如执行show processlist,mysqladmin processlist,show engine等命令
  20. reference权限是在5.7.6版本之后引入,代表是否允许创建外键
  21. reload权限代表允许执行flush命令,指明重新加载权限表到系统内存中,refresh命令代表关闭和重新打开日志文件并刷新所有表
  22. replication client权限代表允许执行show master status,show slave status,show binary logs 命令
  23. replication slave 权限代表允许slave主机通过此用户链接master以便建立主从复制关系
  24. select权限代表允许从表中查看的数据,某些不查询表数据的select执行则不需要此权限,如select 1+1,select PI() +2;而且select权限在执行update/delete语句中含where条件的情况下也是需要的
  25. show databases权限代表通过执行 show databases命令查看数据库名
  26. show view权限代表通过show create view命令查看视图创建的语句
  27. 2shutdown 权限代表允许关闭数据库实例,执行语句包括mysqladmin shutdown
  28. super权限代表允许执行一系列数据库管理命令,包括kill强制关闭某个链接命令,change master to 创建复制关系命令,以及create/alter/drop/ server等命令
  29. trigger权限代表允许创建、删除、执行、显示触发器权限
  30. update权限代表允许修改表中的数据权限
  31. usage权限是创建一个用户后的默认权限,其本身代表无权限

**系统权限表:**权限存储在MySQL库的user,db,tables_priv,columns_priv,procs_priv这几个系统表中,待MySQL实例启动后就加在到内存中:

  1. 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代表此用户被锁住,无法使用
  1. db表:存放数据库级别的权限,决定了来自那些主机的那些用户可以访问此数据库
  2. tabls_priv表:存放表级别权限,决定了来自那些主机的哪些用户可以访问数据库的这个表
  3. columns_priv:存放列级别的权限,决定了来自哪些主机的哪些用户可以访问数据库表的这个字段
  4. procs_priv:cunfang 存放存储过程和函数级别的权限
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论