Linux环境下创建MySQL只读用户

Linux环境下创建MySQL只读用户

grant select on *.* to jack@"%" identified by "jack";

 

解释

(1) *.* 表示任何数据库的任何表

(2) @"%" 表示任何ip对应的pc机上都可以登录数据库做查询操作

(3) jack 表示用户名

(4) "jack" 表示密码

整个语句的意思:赋予用户jack对任何数据库任何表的查询权限,同时该用户可以在任意ip地址对应的pc机上登录数据库。

 

补充

通过语句中的*.*和@"%"可以看出,除了上述的情况,我们还可以对用户的查询权限做更加细粒度的限制。

比如:

(1) 限定只可以查询数据库db1中的所有表

grant select on db1.* to jack@"%" identified by "jack";

(2) 限定只可以查询数据库db1的user表

grant select on db1.user to jack@"%" identified by "jack";

(3) 限定只可以在ip地址192.168.1.35的pc机上登录数据库,并且只可以查询数据库db1的user表中的数据

grant select on db1.user to jack@192.168.1.35 identified by "jack";

(4) 如果是grant ... to jack@192.168.1.35 identified by "jack";

那么要删除用户jack,则删除语句必须这么写:drop user jack@192.168.1.35

如果是这么写:drop user jack 是无法删除成功的,这一点一定要注意。

 

注意1

当建立了只读用户之后,如果使用该账号登录本机(localhost)上的mysql数据库,此时的登录语句必须要加上本机的ip地址,假设本机的ip地址是192.168.1.40

mysql -ujack -pjack -h192.168.1.40 

只有这样才可以登录成功。

 

如果将192.168.1.40换成localhost或127.0.0.1是否可行呢?答案是否定的。

 

当然此时如果你想通过数据库客户端登录数据库,连接参数[主机名或ip地址]不可以是localhost或127.0.0.1,必须是本机实际的ip地址192.168.1.40。

 

注意2

当建立了只读用户后,如果使用该账号在其他pc机(不同ip地址)上登录数据库,ip地址都是必须要输的。

 

注意3

其实对于MySQL创建只读账号,在linux和windows上,创建语句完全一样。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值