只针对test库和以test_为前缀的库:
select * from mysql.userwhere user='xx';
host:%
user:xx
pass:xxxxxxxxxxxxxxxxxx
看到只有select_priv:Y
其他都是N
但是在一台主机上登陆:
mysql -uxx -pxxxxxxxxxxxxxxxxxx -h192.168.100.20 -P3306
mysql>use test
可以在test下建表,删表以及其他写操作
用其他账号建立一个新库test2
再使用只读账号去写test2,则会提示权限不足
然后用其它账号删除test库后再建立test库,看只读账号是否可以写test
试验证明只读账号仍然可以写其他账号新建的test库【安全隐患】
所以为了安全起见:
建议在安装MySQL之后,立即删除test库,同时不允许建立test库,删除mysql.db中关于test和以test_为前缀的系统安装时自带的两个规则
测试:
这是 mysql 的默认规则,文档上写得很清楚,凡是名字以 test 这 4 个字母开头的 db,所有用户在这个库上都有管理员权限。所以为了安全,一般在装好 mysql 以后,都会删除 test 库。