MySQL(十)安全管理

目录

一、用户和权限管理

1、用户验证的三个基本要素

①查看MySQL用户

②客户端主机

2、创建用户

3、设置用户密码

 4、重命名用户

 5、删除用户

 6、权限级别

7、权限类型

 8、授权

9、查看用户权限

10、撤销权限

 11、授权表

二、制定数据安全策略

1、数据库级别安全策略

2、操作系统级别安全策略

3、网络级安全策略

4、业务级安全策略


一、用户和权限管理

        MySQL是多用户的数据库,可以通过授权或撤销权限来控制允许或不允许用户执行的操作。用户从职权上可以分为超级用户和普通用户。在实际应用中,尽量避免应用程序使用root用户直接操作数据库。

        MySQL用户与权限管理包括三个管理要素:用户、对象和权限。

1、用户验证的三个基本要素

①查看MySQL用户

MySQL使用用户名、客户端主机和密码三个基本要素来验证用户,也使用这三个要素区别不同的用户。MySQL的用户以记录的形式存放在mysql数据库user表中。

select user,host,authentication_string from mysql_user;

 user表示用户名;host字段表示允许用户登录的主机名或ip;authentication_string表示密码。

查询当前所有用户以及相应信息:

select * from user \G;

 *_priv表示有相应的权限。

②客户端主机

MySQL使用host字段限制用户连接数据库时可用的主机名或ip,以提高MySQL安全性。只有host字段中指定的主机名或ip才能使用用户名和密码连接数据库。

客户端主机的格式有:

‘%’代表任意字符,‘_’代表一个字符

客户端主机格式
客户端主机形式示例
主机名localhost
域名mis.ming.com
IP地址192.168.2.1
IP地址加掩码10.1.100.0/255.255.255.0
带通配符的域名%.ming.com
带通配符的IP地址192.168.%/192.168.2._
完全的通配符%

2、创建用户

一般格式:

create user 'username'@'host' identified by 'password';

username最长16个字符,特殊字符必须使用单引号,密码必须使用单引号。

创建用户:

create user chen@localhost identified by 'chen';
create user yang identified by 'yang';
create user 'tom'@'192.168.2.1' identified by 'tom';

 chen和yang能在本地进行连接,tom只能在ip为192.168.2.1的主机进行连接。

3、设置用户密码

一般语法:

set password=password('newpassword');

或set password='newpassword';

修改其他用户密码格式:

set password for 'username'@'host'=password('newpassword');

修改tom的密码:

set password for tom@192.168.2.1='newtom';

 4、重命名用户

一般格式:

rename user oldusername to newusername;

 rename user newtom to tom@192.168.2.1;

 5、删除用户

一般格式:
drop user username;

drop user yang;

 6、权限级别

权限级别
级别通用格式说明
全局级*.*所有数据库
数据库级dbname.*指定数据库的所有表
表级dbname.tablename指定数据库的指定表
列级-指定表的指定列
存储过程级dbname.procname指定数据库的指定存储过程

7、权限类型

分为三类:只读类、修改类和管理类

数据库权限分类
分类权限级别说明
只读类select全局级、数据库级、表级 
修改类insert全局级、数据库级、表级 
update全局级、数据库级、表级 
delete全局级、数据库级、表级 
drop全局级、数据库级、表级 
alter全局级、数据库级、表级 
create全局级、数据库级、表级 
管理类file全局级允许用户指示MySQL服务器在服务器主机系统中读取正在执行的所有语句
process全局级允许用户使用show processlist语句查看客户机正在执行的所有语句
shutdown全局级允许用户使用shutdown语句
super全局级授予所有特权,但不能向其他用户授予特权

 8、授权

授权使用grant语句,可以用来创建用户和修改权限。

一般格式:
grant 权限 (colame) on dbname.tablename to username@host idedtified by 'password';

创建zhao用户,可以查询sbbs数据库中cms_user表的id字段。

grant select(id) on sbbs.cms_user to zhao@localhost identified by 'zhao';

 使用zhao用户登录数据库,查询

 select * from cms_user;

 

提示权限不足

可以查询id。

使用root用户查看zhao的权限。

select * from tables_priv where user='zhao';

9、查看用户权限

show grants;
show grants for zhao@localhost;

10、撤销权限

使用revoke撤销用户的权限

一般格式:

revoke 权限 (colname) on <dbname>.<tablename> from username@host;

撤销zhao用户的查询权限.

revoke select(id) on sbbs.cms_user from zhao@localhost;

 11、授权表

授权表
权限级别表说明
mysql.user针对服务器已知的每一个用户的记录
mysql.db特定数据库
mysql.tables)priv特定数据库的某个表
mysql.columns_priv特定数据库特定表的某些列。

二、制定数据安全策略

1、数据库级别安全策略

①密码不能过于简单

②避免使用权限过大的用户

③密码以密文方式写入mysql.user表

④避免创建匿名用户。

2、操作系统级别安全策略

①MySQL数据库服务器避免安装其他应用程序

②mysql数据保存在linux下Mysql文件中的user和group,不要授予其他用户权限

3、网络级安全策略

①设置防火墙

②通过Internet连接数据库,应当配置使用SSH或SSL加密协议。

4、业务级安全策略

①监控重要数据表的数据,实时记录相关访问数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值