mysql分配用户权限时%和localhost的区别

mysql分配用户权限时%和localhost的区别,第1张

%表示允许用户在任意IP地址或主机上连接当前MySQL服务器

localhost表示只允许用户在当前服务器上连接MySQL服务器

即一个表示允许远程连接,一个只允许本机连接。

SQL 中的 % 标示通配符, 匹配任何字符, 例如:

select * from TableName where name like 'a%' // 可匹配 a 开头的任何字符串

是正则中的 * 因为正则里 + 是至少1个. * 可以0个

一.权限

mysql数据库中的3个权限表:user 、db、 host

权限表的存取过程是:

1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;

2)通过权限验证,进行权限分配时,按照useràdbàtables_privàcolumns_priv的顺序进行分配。即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,以此类推。

二.MySQL各种权限(共27个)

(以下 *** 作都是以root身份登陆进行grant授权,以p1@localhost身份登陆执行各种命令。)

1. usage

连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。

mysql>grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′

该权限只能用于数据库登陆,不能执行任何 *** 作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8658295.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存