伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

揭秘一条select语句,在MySQL中权限访问控制内幕

来源:本站原创 浏览:102次 时间:2022-11-14

在MySQL数据库中,权限访问控制实际上有两大模块。
第一:用户管理模块
第二:用户访问动作控制模块,用户访问动作最常见就是DML,DDL

其中用户管理模块的作用,就是验证用户能否合法登录mysql数据库,而用户访问动作控制模块,则控制这合法用户能做动作。

其实这么说还是有些抽象,那来看看mysql数据库中关于权限访问控制的4张表。

mysql.usermysql.dbmysql.tables_privmysql.columns_priv

用户管理模块由mysql.user控制,用户访问动作控制模块由mysql.db,mysql.tables_priv,mysql.columns_priv三张表一起控制。

其权限验证大概流程如下所示


举一个select语句的例子

select id,name from test.t4 where status='delete'

用户要执行这个select语句整个流程
第一步:应用首先需要连接mysql数据库,连接时验证host,user,password,如果不满足,则连接被拒绝,例如:用户名不正确,密码不正确,host主机被限制在特殊网段(192.168.2.%),或者限制本地登录(localhost)

第二步:验证global级别是否有select权限,即验证mysql.user表中的select权限,如果Select_priv为Y,则不做后续验证

mysql>  select * from mysql.user where user='abc'\G;*************************** 1. row ***************************                  Host: %                  User: abc           Select_priv: N           Insert_priv: N           Update_priv: N           Delete_priv: N           Create_priv: N             Drop_priv: N           Reload_priv: N         Shutdown_priv: N          Process_priv: N             File_priv: N            Grant_priv: N       References_priv: N            Index_priv: N            Alter_priv: N          Show_db_priv: N            Super_priv: N Create_tmp_table_priv: N      Lock_tables_priv: N          Execute_priv: N       Repl_slave_priv: N      Repl_client_priv: N      Create_view_priv: N        Show_view_priv: N   Create_routine_priv: N    Alter_routine_priv: N      Create_user_priv: N            Event_priv: N          Trigger_priv: NCreate_tablespace_priv: N              ssl_type:            ssl_cipher:           x509_issuer:          x509_subject:         max_questions: 0           max_updates: 0       max_connections: 0  max_user_connections: 0                plugin: mysql_native_password authentication_string: *0D3CED9BEC10A777AEC23CCC353A8C08A633045E      password_expired: N password_last_changed: 2020-09-01 00:52:37     password_lifetime: NULL        account_locked: N1 row in set (0.00 sec)

第三步:验证db级别select权限,如果有,则后续不验证

mysql> select * from mysql.db where user='abc'\G;*************************** 1. row ***************************                 Host: %                   Db: test                 User: abc          Select_priv: Y          Insert_priv: N          Update_priv: N          Delete_priv: N          Create_priv: N            Drop_priv: N           Grant_priv: N      References_priv: N           Index_priv: N           Alter_priv: NCreate_tmp_table_priv: N     Lock_tables_priv: N     Create_view_priv: N       Show_view_priv: N  Create_routine_priv: N   Alter_routine_priv: N         Execute_priv: N           Event_priv: N         Trigger_priv: N1 row in set (0.00 sec)

第四步:验证表级别权限,如果有,则后续不验证

mysql> select * from mysql.tables_priv where user='abc'\G;*************************** 1. row ***************************       Host: %         Db: test       User: abc Table_name: t4    Grantor: root@localhost  Timestamp: 0000-00-00 00:00:00 Table_priv: SelectColumn_priv:1 row in set (0.00 sec)

第五步:验证列级别权限,如果有,则后续不验证

mysql> select * from columns_priv;+------+------+------+------------+-------------+---------------------+-------------+| Host | Db   | User | Table_name | Column_name | Timestamp           | Column_priv |+------+------+------+------------+-------------+---------------------+-------------+| %    | test | abc  | t4         | id          | 0000-00-00 00:00:00 | Select      || %    | test | abc  | t4         | name        | 0000-00-00 00:00:00 | Select      || %    | test | abc  | t4         | status      | 0000-00-00 00:00:00 | Select      |+------+------+------+------------+-------------+---------------------+-------------+3 rows in set (0.00 sec)

如果以上都验证都通过,则拒接执行select语句,上述详细流程图如下所示

这个mysql权限访问控制内幕,你get了吧。

  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net