========================================================================

推荐账号安全设置

在数据库服务器上严格控制操作系统的账号权限
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账号安全设置的更多相关文章

  1. Mysql字符集设置

    转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...

  2. Ubuntu 16.04 安装mysql并设置远程访问

    说明: 一个朋友在使用ubuntu-server 16.04安装mysql,设置远程访问的时候出现了问题,请我帮忙.但是,我也没有使用过ubuntu安装mysql,于是乎搜索了很多技术文件,比着葫芦画 ...

  3. 微信nickname乱码及mysql编码格式设置(utf8mb4)

    微信nickname乱码及mysql编码格式设置(utf8mb4) 今天在写微信公众平台项目时,写到一个用户管理模块,接口神马的已经调试好了,于是将用户从微信服务器保存到本地数据库,发现报错: jav ...

  4. Mysql 如何设置字段自动获取当前时间

    应用场景: 1.在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间: 2.在数据库中,要记录每条数据是什么时候修改的,不需要应用程序去特意 ...

  5. mysql 的设置

    网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话) 分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 5 ...

  6. xampp默认mysql密码设置,修改mysql的默认空密码

    xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthent ...

  7. [原创]java WEB学习笔记78:Hibernate学习之路---session概述,session缓存(hibernate 一级缓存),数据库的隔离级别,在 MySql 中设置隔离级别,在 Hibernate 中设置隔离级别

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  8. mysql datetime设置now()无效,直接用程序设置默认值比较好

    mysql datetime设置now()无效的,没有此用法,datetime类型不能设置函数式默认值,只能通过触发器等来搞.想设置默认值,只能使用timestamp类型,然后默认值设置为:CURRE ...

  9. MySQL 字符集设置

    /*************************************************************************** * MySQL 字符集设置 * 说明: * 数 ...

随机推荐

  1. 浅触selinux(持续更新)

    ls -lZ 查看selinux权限情况 chcon命令 修改对象(文件)的安全上下文,比如:用户.角色.类型.安全级别.也就是将每个文件的安全环境变更至指定环境.使用--reference选项时,把 ...

  2. 微信小程序------MD5加密(支持中文和不支持中文)和网络请求(get和post)

    开发中常常遇到MD5加密,最近做小程序也用到了,简单总结了一下: 这要有两个加密文件,一个不支持中文,一个支持,所以你选择支持的来用就行了: 也随便说说小程序的get和post网络请求. 来看看效果图 ...

  3. js传入和传出参数乱码

    向js传入参数乱码问题 第一种解决方法 当Js中输出内容中包含中文,可能会导致出现乱码. 如何解决: 1. 设置页面编码: Html代码 <meta http-equiv="Conte ...

  4. 在菜鸟教程学 HTML(一)

    注意:对于中文网页需要使用 <meta charset="utf-8"> 声明编码,否则会出现乱码.有些浏览器会设置 GBK 为默认编码,则你需要设置为 <met ...

  5. shell 命令参数

    $# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本 ...

  6. 算法笔记_025:字符串的全排列(Java)

    目录 1 问题描述 2 解决方案 2.1 递归实现 2.2 字典序排列实现   1 问题描述 输入一个字符串,打印出该字符串的所有排列.例如,输入字符串”abc”,则输出有字符’a’,’b’,’c’所 ...

  7. skill prefix neo,non input 1

    1● neo 新的     2● non 不,非,无  

  8. app.jsNodejs启动测试服务

    'use strict'; var express = require('express');var app = express('');var fs = require('fs'); app.get ...

  9. plsql导入excel文件

    plsql导入excel文件   CREATE TABLE     DWSB_GRMX1     (         XH VARCHAR2(40),         SFZH VARCHAR2(40 ...

  10. 关于std::map的第三个参数

    1.map的其中一个构造函数有第三个参数,可以直接定义map的key值得排序规则, 默认为std::less,即按“<”运算符进行排序 map<string, int> mapWor ...