1. 前言 Mysql数据库安全配置、或者叫加固属于风险模型中的一环,它需要安全人员在理论和实践的学习中不断发现新的问题,并针对这些问题对数据的各个方面的配置进行强化。本文试图围绕着数据库风险识别、数据库安全加固这个问题,探讨可以采取的措施来最大程
1. 前言
Mysql数据库安全配置、或者叫加固属于风险模型中的一环,它需要安全人员在理论和实践的学习中不断发现新的问题,并针对这些问题对数据的各个方面的配置进行强化。本文试图围绕着数据库风险识别、数据库安全加固这个问题,探讨可以采取的措施来最大程度的保证我们的数据库的安全控制处在一个较好的水平。
2. Mysql账户权限安全
mysql中存在4个控制权限的表,分别为
1. mysql.USER表
2. mysql.DB表
3. mysql.TABLES_PRIV表
4. mysql.COLUMNS_PRIV表
要注意的是,Mysql中有一个数据库"information_schema",似乎里面保存的也是一些权限信息,但是要明白的是,这个数据库"information_schema"是为系统管理员提供元数据的一个简便方式,它实际上是一个视图,可以理解为对Mysql中的一个信息的封装,对于Mysql主程序来说,身份认证和授权的信息的来源只有一个,就是"mysql"。
0×1. mysql.USER表
select * from USER;
desc USER;
mysql> desc USER; ------------------------------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
------------------------------- ------ ----- --------- -------
| Host | char(60) | NO | PRI | | |
| User | char(16) | NO | PRI | | |
| Password | char(41) | NO | | | |
| Select_priv | enum('N','Y') | NO | | N | |
| Insert_priv | enum('N','Y') | NO | | N | |
| Update_priv | enum('N','Y') | NO | | N | |
| Delete_priv | enum('N','Y') | NO | | N | |
| Create_priv | enum('N','Y') | NO | | N | |
| Drop_priv | enum('N','Y') | NO | | N | |
| Reload_priv | enum('N','Y') | NO | | N | |
| Shutdown_priv | enum('N','Y') | NO | | N | |
| Process_priv | enum('N','Y') | NO | | N | |
| File_priv | enum('N','Y') | NO | | N | |
| Grant_priv | enum('N','Y') | NO | | N | |
| References_priv | enum('N','Y') | NO | | N | |
| Index_priv | enum('N','Y') | NO | | N | |
| Alter_priv | enum('N','Y') | NO | | N | |
| Show_db_priv | enum('N','Y') | NO | | N | |
| Super_priv | enum('N','Y') | NO | | N | |
| Create_tmp_table_priv | enum('N','Y') | NO | | N | |
| Lock_tables_priv | enum('N','Y') | NO | | N | |
| Execute_priv | enum('N','Y') | NO | | N | |
| Repl_slave_priv | enum('N','Y') | NO | | N | |
| Repl_client_priv | enum('N','Y') | NO | | N | |
| Create_view_priv | enum('N','Y') | NO | | N | |
| Show_view_priv | enum('N','Y') | NO | | N | |
| Create_routine_priv | enum('N','Y') | NO | | N | |
| Alter_routine_priv | enum('N','Y') | NO | | N | |
| Create_user_priv | enum('N','Y') | NO | | N | |
| Event_priv | enum('N','Y') | NO | | N | |
| Trigger_priv | enum('N','Y') | NO | | N | |
| Create_tablespace_priv | enum('N','Y') | NO | | N | |
| ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | |
| ssl_cipher | blob | NO | | NULL | |
| x509_issuer | blob | NO | | NULL | |
| x509_subject | blob | NO | | NULL | |
| max_questions | int(11) unsigned | NO | | 0 | |
| max_updates | int(11) unsigned | NO | | 0 | |
| max_connections | int(11) unsigned | NO | | 0 | |
| max_user_connections | int(11) unsigned | NO | | 0 | |
| plugin | char(64) | YES | | | |
| authentication_string | text | YES | | NULL | |
| password_expired | enum('N','Y') | NO | | N | |
------------------------------- ------ ----- --------- -------
0×2. mysql.DB表
从数据库中选择*;
desc DB;
mysql> 描述数据库; ------------- ------ ----- --------- -------
| 领域 |类型 |空|关键|默认|额外|
------------- ------ ----- --------- -------
| 主持人|字符(60) |否 |优先原则 | | |
| 分贝|字符(64) |否 |优先原则 | | |
| 用户 |字符(16) |否 |优先原则 | | |
| 选择_priv |枚举('N','Y')|否 | |尼 | |
| 插入_priv |枚举('N','Y')|否 | |尼 | |
| 更新权限 |枚举('N','Y')|否 | |尼 | |
| 删除_priv |枚举('N','Y')|否 | |尼 | |
| 创建_priv |枚举('N','Y')|否 | |尼 | |
| Drop_priv |枚举('N','Y')|否 | |尼 | |
| 授予权限 |枚举('N','Y')|否 | |尼 | |
| 参考文献_priv |枚举('N','Y')|否 | |尼 | |
| 索引_priv |枚举('N','Y')|否 | |尼 | |
| 更改_priv |枚举('N','Y')|否 | |尼 | |
| 创建_tmp_table_priv |枚举('N','Y')|否 | |尼 | |
| Lock_tables_priv |枚举('N','Y')|否 | |尼 | |
| 创建视图权限 |枚举('N','Y')|否 | |尼 | |
| 显示_视图_权限 |枚举('N','Y')|否 | |尼 | |
| 创建例程特权 |枚举('N','Y')|否 | |尼 | |
| 更改例程权限 |枚举('N','Y')|否 | |尼 | |
| 执行权限|枚举('N','Y')|否 | |尼 | |
| 活动_隐私 |枚举('N','Y')|否 | |尼 | |
| 触发器_priv |枚举('N','Y')|否 | |尼 | |
------------- ------ ----- --------- -------
0×3。 mysql.TABLES_PRIV 表
从 TABLES_PRIV 选择 *;
desc TABLES_PRIV;
mysql> desc TABLES_PRIV;
------------------ ------ ----------------- --------------------
| 领域 |类型 |空|关键|默认|额外|
------------------ ------ ----------------- --------------------
| 主持人|字符(60) |否 |优先原则 | | |
| 分贝|字符(64) |否 |优先原则 | | |
| 用户 |字符(16) |否 |优先原则 | | |
| 表名 |字符(64) |否 |优先原则 | | |
| 授予人 |字符(77) |否 |乘法 | | |
| 时间戳|时间戳|否 | |当前时间戳 |更新 CURRENT_TIMESTAMP |
| 表_priv | set('选择','插入','更新','删除','创建','删除','授予','引用','索引','更改','创建视图','显示视图','触发') |否 | | | |
| Column_priv | set('选择','插入','更新','参考') |否 | | | |
------------------ ------ ----------------- --------------------
0×4。 mysql.COLUMNS_PRIV 表