Mysql权限控制及常用操作方法

mysql权限验证过程

第一阶段:服务器首先会检查你是否允许连接。因为创建用户的时候会加上主机限制,可以限制成本地、某个IP、某个IP段、以及任何地方等,只允许你从配置的指定地方登陆。

第二阶段:如果你能连接,Mysql会检查你发出的每个请求,看你是否有足够的权限实施它。比如你要更新某个表、或者查询某个表,Mysql会查看你对哪个表或者某个列是否有权限。再比如,你要运行某个存储过程,Mysql会检查你对存储过程是否有执行权限等。

# 用户名和IP是否允许 --> 查看mysql.user表 --> 查看mysql.db表 --> 查看mysql.table_priv表 --> 查看mysql.column_priv 表--> 提示用户没有权限

 

常用的操作方法

 

1.创建用户

create user mycat@'192.168.0.%' identified by '123456';

 

2.修改用户密码

set password for mycat@'192.168.0.%' = password('xxxxxx');

update  mysql.user  set  password=password('xxxx')  where user='mycat@'192.168.0.%'';

ALTER USER 'mycat'@'192.168.0.%' IDENTIFIED WITH mysql_native_password BY 'xxxxxx';   #mysql8.0修改加密规则

 

 

3.修改用户名

rename user old_name@'192.168.0.%' to new_name@'192.168.0.%';

 

4.删除用户

drop user mycat@'192.168.0.%';

 

5.查看所有用户列表

select host,user,password from mysql.user ;

 

6.给账号授权

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX,ALTER ON db_name.* TO mycat@'192.168.0.%' with grant option;

 

7.收回授权

REVOKE CREATE,INDEX,ALTER ON db_name.* from mycat@'192.168.0.%';

 

8.查看用户权限

SHOW GRANTS FOR mycat@'192.168.0.%';

 

9.刷新权限

flush privileges;

 

10.mysql5.7支持角色

mysql.proxies_priv 5.7开始使用,有ROLE功能

mysql> create user dba@127.0.0.1 identified by '123456'; ##当作DBA角色

mysql> create user neo@127.0.0.1 identified by '123456';

mysql> create user cqs@127.0.0.1 identified by '123456';

mysql> grant proxy on dba@127.0.0.1 to neo@127.0.0.1; ##将dba@127.0.0.1 的权限授权给 neo@127.0.0.1

mysql> grant proxy on dba@127.0.0.1 to cqs@127.0.0.1;

mysql> grant select on *.* to dba@127.0.0.1;

 

权限控制原则

 

权限控制主要是出于安全因素,因此需要遵循一下几个经验原则:

1、只授予能满足需要的最小权限,防止用户干坏事。比如用户只是需要查询,那就只给select权限就可以了,不要给用户赋予update、insert或者delete权限。

2、创建用户的时候限制用户的登录主机,一般是限制成指定IP或者内网IP段。

3、初始化数据库的时候删除没有密码的用户。安装完数据库的时候会自动创建一些用户,这些用户默认没有密码。

4、为每个用户设置满足密码复杂度的密码。

5、定期清理不需要的用户。回收权限或者删除用户。

 

权限列表

权限

权限级别

权限说明

ALL

所有权限

CREATE

数据库、表

或索引

创建数据库、表或索引权限

DROP

数据库或表

删除数据库或表权限

GRANT OPTION

数据库、表或

保存的程序

赋予权限选项

REFERENCES

数据库或表

 

ALTER

更改表,比如添加字段、索引等

DELETE

删除数据权限

INDEX

索引权限

INSERT

插入权限

SELECT

查询权限

UPDATE

更新权限

CREATE VIEW

视图

创建视图权限

SHOW VIEW

视图

查看视图权限

ALTER ROUTINE

存储过程

更改存储过程权限

CREATE ROUTINE

存储过程

创建存储过程权限

EXECUTE

存储过程

执行存储过程权限

FILE

服务器主机上

的文件访问

文件访问权限

CREATE TEMPORARY

TABLES

服务器管理

创建临时表权限

LOCK TABLES

服务器管理

锁表权限

CREATE USER

服务器管理

创建用户权限

PROCESS

服务器管理

查看进程权限

RELOAD

服务器管理

执行flush-hosts, flush-logs, flush-privileges,

flush-status, flush-tables, flush-threads, refresh,

reload等命令的权限

REPLICATION CLIENT

服务器管理

复制权限

REPLICATION SLAVE

服务器管理

复制权限

SHOW DATABASES

服务器管理

查看数据库权限

SHUTDOWN

服务器管理

关闭数据库权限

SUPER

服务器管理

执行kill线程权限

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值