MySQL中用户权限管理

MySQL中root用户权限太大,不建议平时操作使用root用户(测试环境除外),在平时管理和维护数据库以及通过APP连接使用数据库需要用到权限受限普通用户进行管理。
首先我们先创建一个简单的数据库auth,并在auth中创建表格users,插入两条数据,用于接下来的测试使用。
MySQL中用户权限管理
MySQL中用户权限管理
MySQL中用户权限管理
MySQL中用户权限管理

下面开始MySQL中创建用户,并赋予不同的权限:
mysql> grant select on auth.* to [email protected] identified by ‘123456’;
运行user1用户在本地使用123456密码在auth数据库中使用select语句查询所有表
MySQL中用户权限管理

mysql> grant select,insert on auth.* to [email protected] identified by ‘123456’;
运行user2用户在本地使用123456密码在auth数据库中使用select,insert语句查询所有表
MySQL中用户权限管理

mysql> grant ALL on . to [email protected] identified by ‘123’;
运行user3用户使用所有命令管理所有库中所有表,密码为123,(权限过大,和root一样,慎用、慎用、慎用)
MySQL中用户权限管理

验证方法:
打开新的终端,使用新账户连接数据库分别执行增删改查语句

[[email protected] ~]# mysql -u user1 -p
MySQL中用户权限管理

mysql> use auth
MySQL中用户权限管理

mysql> show tables;
MySQL中用户权限管理

mysql> select * from users;
MySQL中用户权限管理

mysql> insert into users values(‘zhangsan’,‘123’); 插入记录报错,只能使用select
MySQL中用户权限管理

[[email protected] ~]# mysql -u user2 -p 退出user1进入user2,重新打开一个窗口进入user2也可以。
MySQL中用户权限管理
MySQL中用户权限管理

mysql> show databases;
MySQL中用户权限管理

mysql> use auth
MySQL中用户权限管理

mysql> select * from users;
MySQL中用户权限管理

mysql> insert into users values(3,‘zhangsan’,‘123’); 可以插入数据
MySQL中用户权限管理

mysql> select * from users;
MySQL中用户权限管理

mysql> delete from users where id=3;; zhangsan重复了想删掉,但是不允许使用delete语句,因为没有赋予user2删除权限。
MySQL中用户权限管理

[[email protected] ~]# mysql -u user3 -p (测试user3是否可拥有所有权限,包括增删改查等)
MySQL中用户权限管理

mysql> show databases;
MySQL中用户权限管理

mysql> use auth;
MySQL中用户权限管理

mysql> show tables;
MySQL中用户权限管理

mysql> select * from users;
MySQL中用户权限管理

mysql> delete from users where id=3;
MySQL中用户权限管理

mysql> select * from users;
MySQL中用户权限管理

mysql> drop table users;
MySQL中用户权限管理

查看用户赋权和取消用户赋权
mysql> show grants for [email protected];(查看user2的赋权)
MySQL中用户权限管理

mysql> revoke insert on auth.* from [email protected];
(删除user2的insert赋权)
MySQL中用户权限管理

mysql> show grants for [email protected];
(查看user2的赋权)
MySQL中用户权限管理