CREATE DATABASE web DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

一、环境:

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';

这个时候访问,是除了默认生成的两个数据库,看不到任何其它的数据库
896608-20170528200933328-1595349979.png

3、给该用户添加权限

grant all privileges on 想授权的数据库.* to 'user1'@'%';

all 可以替换为 select,delete,update,create,drop

这个时候访问,比刚才看到的数据库多出了一个刚刚添加的

896608-20170528200944313-1163883802.png

4、删除用户

Delete FROM mysql.user Where User='user1';

四、可能遇到的问题

flush privilege;

在操作 mysql 库做用户的增删修改的时候,操作完毕的时候最好使用 flush privilege 命令刷新一下权限。否则可能会修改不生效。