MySQL账号安全设置
========================================================================
推荐账号安全设置
在数据库服务器上严格控制操作系统的账号权限
1) 锁定mysql用户
2) 账号独立使用,管理员账号和应用账号分开,不同应用账号分开
3) MYSQL 用户目录下,除数据文件目录外,其他文件和目录属主都改为root
4)对所有用户使用IP和HOSTNAME来限制
========================================================================
避免下列危险操作
尽量避免以root权限运行mysql
如果使用root用户启动数据库,则任何具有FILE权限的用户都可以读写ROOT用户的文件,这样会给系统造成严重的安全隐患。 删除匿名账号
建议删除匿名账号,或者对账号增加密码 给root账号设置口令
MYSQL安装后,root的默认密码为空,应立即修改 只授予账号必须的权限 使用强密码,避免密码明文 除root外,任何用户不应该有mysql库的user表的存取权限
如果普通用户具有修改mysql.user表的权限,则可以修改root及其高级别账号的密码。
========================================================================
控制账号权限
不要把FILE PROCESS SUPPER 权限授权给非管理员账号 FILE权限主要有以下作用:
A)将数据库的信息通过SELECT INTO OUTFILE 写到服务器上有写权限的目录下,作为文本格式存放。具有权限的目录就是启动MYSQL时的用户权限目录。
B)可以将具有读权限的文本文件通过LOAD DATA INFILE 命令写入数据库表,造成表中的敏感信息泄露 PROCESS权限有以下作用:
可以执行"SHOW PROCESSLIST"命令,查看当前所有用户执行的查询的明文文本,如果其他用户正在执行敏感脚本如更新账号,则会存在安全隐患。 SUPER权限有以下作用:
可以执行kill命令中止任何用户的进程。 禁用LOAD DATA LOCAL
LOAD DATA LOCAL命令运行将本例文件加载到数据库中,存在安全问题,可以使用--local-infile=0来从服务器端禁用LOAD DATA LOCAL命令。 DROP TABLE 命令不会回收表的相关访问权限
当删除表时,其他用户对表的权限并没有被收回,如果创建同名的表,则这些用户对新表的权限会自动赋予,造成权限外流。 REVOKE 命令漏洞
如果用户被多次赋权,然后对用户使用REVOKE操作取消权限时,可能不能将多次赋予的权限一次全部REVOKE完成。因为多次赋权后,可能被认为多组单独的权限,REVOKE时不会依次进行清理
========================================================================
使用SSL确保网络传输安全
使用SSL来确保数据在网络传输过程中不给截取和窃听
SSL协议提供的服务有:
A)认证用户和服务器,确保数据发送到正确的客户机和服务器
B)加密数据以防止数据中途被窃取
C)维护数据的完整性,确保数据在传输过程中不会被改变
========================================================================
使用SSL确保网络传输安全
使用SSL来确保数据在网络传输过程中不给截取和窃听
SSL协议提供的服务有:
A)认证用户和服务器,确保数据发送到正确的客户机和服务器
B)加密数据以防止数据中途被窃取
C)维护数据的完整性,确保数据在传输过程中不会被改变
========================================================================
MySQL加密算法增强
MYSQL中密码加密相当于两次SHA1夹杂一次unhex方式:
SELECT CONCAT('*',UPPER(SHA1(UNHEX(SHA1('my@123'))))),PASSWORD('my@123');
+------------------------------------------------+-------------------------------------------+
| CONCAT('*',UPPER(SHA1(UNHEX(SHA1('my@123'))))) | PASSWORD('my@123') |
+------------------------------------------------+-------------------------------------------+
| *F1B060F1AFDAA276FB109607A6D0A701C19C0314 | *F1B060F1AFDAA276FB109607A6D0A701C19C0314 |
+------------------------------------------------+-------------------------------------------+
在MYSQL 5.6版本前,binlog日志中和用户密码相关的操作是不加密的,在MYSQL 5.6版本中进行了加强,但在搭建复制时仍需要使用明文密码。
MySQL账号安全设置的更多相关文章
- Mysql字符集设置
转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...
- Ubuntu 16.04 安装mysql并设置远程访问
说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...
- 微信nickname乱码及mysql编码格式设置(utf8mb4)
微信nickname乱码及mysql编码格式设置(utf8mb4) 今天在写微信公众平台项目时,写到一个用户管理模块,接口神马的已经调试好了,于是将用户从微信服务器保存到本地数据库,发现报错: jav ...
- Mysql 如何设置字段自动获取当前时间
应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...
- mysql 的设置
网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话) 分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 5 ...
- xampp默认mysql密码设置,修改mysql的默认空密码
xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthent ...
- [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- mysql datetime设置now()无效,直接用程序设置默认值比较好
mysql datetime设置now()无效的,没有此用法,datetime类型不能设置函数式默认值,只能通过触发器等来搞.想设置默认值,只能使用timestamp类型,然后默认值设置为:CURRE ...
- MySQL 字符集设置
/*************************************************************************** * MySQL 字符集设置 * 说明: * 数 ...
随机推荐
- 浅触selinux(持续更新)
ls -lZ 查看selinux权限情况 chcon命令 修改对象(文件)的安全上下文,比如:用户.角色.类型.安全级别.也就是将每个文件的安全环境变更至指定环境.使用--reference选项时,把 ...
- 微信小程序------MD5加密(支持中文和不支持中文)和网络请求(get和post)
开发中常常遇到MD5加密,最近做小程序也用到了,简单总结了一下: 这要有两个加密文件,一个不支持中文,一个支持,所以你选择支持的来用就行了: 也随便说说小程序的get和post网络请求. 来看看效果图 ...
- js传入和传出参数乱码
向js传入参数乱码问题 第一种解决方法 当Js中输出内容中包含中文,可能会导致出现乱码. 如何解决: 1. 设置页面编码: Html代码 <meta http-equiv="Conte ...
- 在菜鸟教程学 HTML(一)
注意:对于中文网页需要使用 <meta charset="utf-8"> 声明编码,否则会出现乱码.有些浏览器会设置 GBK 为默认编码,则你需要设置为 <met ...
- shell 命令参数
$# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本 ...
- 算法笔记_025:字符串的全排列(Java)
目录 1 问题描述 2 解决方案 2.1 递归实现 2.2 字典序排列实现 1 问题描述 输入一个字符串,打印出该字符串的所有排列.例如,输入字符串”abc”,则输出有字符’a’,’b’,’c’所 ...
- skill prefix neo,non input 1
1● neo 新的 2● non 不,非,无
- app.jsNodejs启动测试服务
'use strict'; var express = require('express');var app = express('');var fs = require('fs'); app.get ...
- plsql导入excel文件
plsql导入excel文件 CREATE TABLE DWSB_GRMX1 ( XH VARCHAR2(40), SFZH VARCHAR2(40 ...
- 关于std::map的第三个参数
1.map的其中一个构造函数有第三个参数,可以直接定义map的key值得排序规则, 默认为std::less,即按“<”运算符进行排序 map<string, int> mapWor ...