一、环境:
CentOS 6.8
mysql 5.6
二、背景
给外包的工作人员提供我司某台服务器的 mysql 中某个数据库的访问权限。
之所以要做限制,是防止他们对我司其他的数据库非法进行操作。
三、正文
1、使用 root 管理员登陆 mysql
mysql -uroot -p123456;
2、创建新用户
CREATE USER 'user1'@'%' IDENTIFIED BY '07fa533360d9';
‘%’ – 所有情况都能访问
‘localhost’ – 本机才能访问
’111.222.33.44‘ – 指定 ip 才能访问
注:修改密码
update mysql.user set password=password('新密码') where user='user1';
这个时候访问,是除了默认生成的两个数据库,看不到任何其它的数据库:
3、给该用户添加权限
grant all privileges on 想授权的数据库.* to 'user1'@'%';
all 可以替换为 select,delete,update,create,drop
这个时候访问,比刚才看到的数据库多出了一个刚刚添加的。
4、删除用户
Delete FROM mysql.user Where User='user1';
四、可能遇到的问题
flush privileges;
在操作 mysql 库做用户的增删修改的时候,操作完毕的时候最好使用 flush privilege 命令刷新一下权限。否则可能会修改不生效。