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

推荐账号安全设置

在数据库服务器上严格控制操作系统的账号权限
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. 1月4日编程基础hash

    早上git加星了webapp的教程 > h = Hash.new('Go Fishing')       => {}  // 创建一个空hash,设定"Go Fishing&qu ...

  2. 『Python』图像金字塔、滑动窗口和非极大值抑制实现

    图像金字塔 1.在从cv2.resize中,传入参数时先列后行的 2.使用了python中的生成器,调用时使用for i in pyramid即可 3.scaleFactor是缩放因子,需要保证缩放后 ...

  3. create view

    create view View_count as SELECT     spkfk.spid, pf_ckmx.rq, pf_ckmx.spid AS Expr1, pf_ckmx.shl, spk ...

  4. struts2整合axis2后,访问不到wsdl,被struts2拦截的解决办法

    在struts2中整合axis2后,访问wsdl的时候显示404  not found There is no Action mapped for action name xxxxxxxx. 解决办法 ...

  5. iOS UI-Lable标签、NStimer定时器和RunLoop超级死循环

    // 标签UILable -显示文字 // 1.创建标签 UILabel *lable = [[UILabel alloc] init]; // 2.设置标签的坐标和大小 [lable setFram ...

  6. HDU 2767 Proving Equivalences (Tarjan)

    Proving Equivalences Time Limit : 4000/2000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other ...

  7. ADOX创建ACCESS 表时,几个附加属性

     中文  英文 允许空字符串 Jet OLEDB:Allow Zero Length Unicode压缩 Jet OLEDB:Compressed UNICODE Strings 有效性规则 Jet ...

  8. java学习笔记 --- 集合(续)

    1.map集合 1.1.特点:将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 1.2.Map集合和Collection集合的区别? Map集合存储元素是成对出现的,Map集 ...

  9. PowerShell基础

    1. 一些命令像Get-SPSite有不同的参数变量.这些变量通过-?展示出来. Get-SPSite -? 2. F3 在当前行显示最近的一条命令结果 3. F7 显示之前执行过的命令列表 4. 显 ...

  10. Eclipse中复制项目重命名后重新发布,项目名在地址栏仍然是原来的项目名”的问题

    转载自: http://www.cnblogs.com/chenxueling/p/5474717.html 将20170331-JavaEE-SSH项目复制一份,重命名为20170407-JavaE ...