位置: 编程技术 - 正文
推荐整理分享MySQL验证用户权限的方法(mysql中用户和权限的作用),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql中用户和权限的作用,mysql用户登录权限,mysql身份验证,mysql用户身份验证查询的是哪个表,mysql对用户进行验证,mysql用户身份验证查询的是哪个表,mysql用户登录权限,mysql对用户进行验证,内容如对您有帮助,希望把文章链接给更多的朋友!
知识归纳
因为MySQL是使用User和Host两个字段来确定用户身份的,这样就带来一个问题,就是一个客户端到底属于哪个host。如果一个客户端同时匹配几个Host,对用户的确定将按照下面的优先级来排
基本观点越精确的匹配越优先 Host列上,越是确定的Host越优先,[localhost, ..1.1, wiki.yfang.cn] 优先于[..%, %.yfang.cn],优先于[.%, %.cn],优先于[%] User列上,明确的username优先于空username。(空username匹配所有用户名,即匿名用户匹配所有用户) Host列优先于User列考虑当你登录mysql服务器之后,你可以使用user()和current_user()来检查你登陆的用户。
user() 返回你连接server时候指定的用户和主机 current_user() 返回在mysql.user表中匹配到的用户和主机,这将确定你在数据库中的权限当你登录服务器并执行MySQL的命令时,系统将检查你当前的用户(current_user)是否有权限进行当前操作。
首先检查user表中的全局权限,如果满足条件,则执行操作 如果上面的失败,则检查mysql.db表中是否有满足条件的权限,如果满足,则执行操作 如果上面的失败,则检查mysql.table_priv和mysql.columns_priv(如果是存储过程操作则检查mysql.procs_priv),如果满足,则执行操作 如果以上检查均失败,则系统拒绝执行操作。测试过程创建3个用户名相同,HOST和权限都不同的USER
从另外一个机器登陆过来
明确的user,host,进行精确匹配,找到用户为'bruce'@'..0.'删除掉这个用户再登陆
此时匹配的用户是bruce@%然后把这个用户也删除,再登陆
此时匹配的是''@'%' 用户
对于空用户,默认有对test或test开头的数据库有权限。
标签: mysql中用户和权限的作用
本文链接地址:https://www.jiuchutong.com/biancheng/312328.html 转载请保留说明!友情链接: 武汉网站建设