MySQL中root用户权限太大,不建议平时操作使用root用户(测试环境除外),在平时管理和维护数据库以及通过APP连接使用数据库需要用到权限受限普通用户进行管理。 首先我们先创建一个简单的数据库auth,并在auth中创建表格users,插入两条数据,用于接下来的测试使用。
下面开始MySQL中创建用户,并赋予不同的权限: mysql> grant select on auth.* to user1@localhost identified by ‘123456’; 运行user1用户在本地使用123456密码在auth数据库中使用select语句查询所有表
mysql> grant select,insert on auth.* to user2@localhost identified by ‘123456’; 运行user2用户在本地使用123456密码在auth数据库中使用select,insert语句查询所有表
mysql> grant ALL on . to user3@localhost identified by ‘123’; 运行user3用户使用所有命令管理所有库中所有表,密码为123,(权限过大,和root一样,慎用、慎用、慎用)
验证方法: 打开新的终端,使用新账户连接数据库分别执行增删改查语句
[root@localhost ~]# mysql -u user1 -p
mysql> use auth
mysql> show tables;
mysql> select * from users;
mysql> insert into users values(‘zhangsan’,‘123’); 插入记录报错,只能使用select
[root@localhost ~]# mysql -u user2 -p 退出user1进入user2,重新打开一个窗口进入user2也可以。
mysql> show databases;
mysql> use auth
mysql> select * from users;
mysql> insert into users values(3,‘zhangsan’,‘123’); 可以插入数据
mysql> select * from users;
mysql> delete from users where id=3;; zhangsan重复了想删掉,但是不允许使用delete语句,因为没有赋予user2删除权限。
[root@localhost ~]# mysql -u user3 -p (测试user3是否可拥有所有权限,包括增删改查等)
mysql> show databases;
mysql> use auth;
mysql> show tables;
mysql> select * from users;
mysql> delete from users where id=3;
mysql> select * from users;
mysql> drop table users;
查看用户赋权和取消用户赋权 mysql> show grants for user2@localhost;(查看user2的赋权)
mysql> revoke insert on auth.* from user2@localhost; (删除user2的insert赋权)
mysql> show grants for user2@localhost; (查看user2的赋权)