MySQL中用户权限管理

tech2022-08-29  102

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的赋权)

最新回复(0)