MySQL数据库安全设置的操作流程

以下的文章主要介绍的是MySQL数据库安全设置的实际操作流程以及在实际操作中一些值得我们大家注意的相关事项的描述,下面就是对其具体内容的描述,希望会给你带来一些帮助在此方面。

使用MySQL,MySQL数据库安全问题不能不注意。以下是MySQL提示的23个注意事项:

1.如果客户端和服务器端的连接需要跨越并通过不可信任的网络,那么就需要使用SSH隧道来加密该连接的通信。

2.用set password语句来修改用户的密码,三个步骤,先“MySQL -u root”登陆数据库系统,然后“MySQL> update MySQL.user set password=password(‘newpwd‘)”,最后执行“flush privileges”就可以了。

3.需要提防的攻击有,防偷听、篡改、回放、拒绝服务等,不涉及可用性和容错方面。对所有的连接、查询、其他操作使用基于ACL即访问控制列表的MySQL数据库安全措施来完成。也有一些对SSL连接的支持。

4.除了root用户外的其他任何用户不允许访问MySQL主数据库中的user表;

加密后存放在user表中的加密后的用户密码一旦泄露,其他人可以随意用该用户名/密码相应的数据库;

5.用grant和revoke语句来进行用户访问控制的工作;

6.不使用明文密码,而是使用md5()和sha1()等单向的哈系函数来设置密码;

7.不选用字典中的字来做密码;

8.采用防火墙来去掉50%的外部危险,让数据库系统躲在防火墙后面工作,或放置在DMZ区域中;

9.从因特网上用nmap来扫描3306端口,也可用telnet server_host 3306的方法测试,不能允许从非信任网络中访问数据库服务器的3306号TCP端口,因此需要在防火墙或路由器上做设定;

10.为了防止被恶意传入非法参数,例如where ID=234,别人却输入where ID=234 OR 1=1导致全部显示,所以在web的表单中使用‘‘或""来用字符串,在动态URL中加入%22代表双引号、%23代表井号、%27代表单引号;传递未检查过的值给MySQL数据库是非常危险的;

11.在传递数据给MySQL时检查一下大小;

12.应用程序需要连接到数据库应该使用一般的用户帐号,只开放少数必要的权限给该用户;

13.在各编程接口(C C++ PHP Perl Java JDBC等)中使用特定‘逃脱字符’函数;

在因特网上使用MySQL数据库时一定少用传输明文的数据,而用SSL和SSH的加密方式数据来传输;

14.学会使用tcpdump和strings工具来查看传输数据的MySQL数据库安全性,例如tcpdump -l -i eth0 -w -src or dst port 3306 | strings。以普通用户来启动MySQL数据库服务;

15.不使用到表的联结符号,选用的参数 --skip-symbolic-links;

16.确信在MySQL目录中只有启动数据库服务的用户才可以对文件有读和写的权限;

17.不许将process或super权限付给非管理用户,该MySQLadmin processlist可以列举出当前执行的查询文本;super权限可用于切断客户端连接、改变服务器运行参数状态、控制拷贝复制数据库的服务器;

18.file权限不付给管理员以外的用户,防止出现load data ‘/etc/passwd‘到表中再用select 显示出来的问题;

19.如果不相信DNS服务公司的服务,可以在主机名称允许表中只设置IP数字地址;

20.使用max_user_connections变量来使MySQLd服务进程,对一个指定帐户限定连接数;

21.grant语句也支持资源控制选项;

22.启动MySQLd服务进程的MySQL数据库安全选项开关,--local-infile=0或1 若是0则客户端程序就无法使用local load data了

赋权的一个例子

  1. grant insert(user) on MySQL.user to ‘user_name‘@‘host_name‘;

若使用--skip-grant-tables系统将对任何用户的访问不做任何访问控制,但可以用MySQLadmin flush-privileges或MySQLadmin reload来开启访问控制;默认情况是show databases语句对所有用户开放,可以用--skip-show-databases来关闭掉。

23.碰到Error 1045(28000) Access Denied for user ‘root‘@‘localhost‘ (Using password:NO)错误时,你需要重新设置密码,具体方法是:

先用--skip-grant-tables参数启动MySQLd,然后执行

  1. MySQL -u root MySQL,MySQL>update user set passwordpassword=password(‘newpassword‘) where user=‘root‘;MySQL>Flush privileges;

最后重新启动MySQL就可以了。

原文地址:https://www.cnblogs.com/syncnavigator/p/10198270.html

时间: 2024-08-04 23:10:51

MySQL数据库安全设置的操作流程的相关文章

mysql数据库安全设置

数据库作为数据管理的平台,它的安全性首先由系统的内部安全和网络安全两部分来决定.对于系统管理员来说,首先要保证系统本身的安全,在安装MySQL数据库时,需要对基础环境进行较好的配置. 1.修改root用户口令,删除空口令缺省安装的MySQL的root用户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,至少8位,由字母.数字和符号组成的不规律密码.使用 MySQL自带的命令mysaladmin修改root密码,同时也可以登陆数据库,修改数据库mysql下的user表的字段内容,修改方法如

源码安装mysql5.6.20&&mysql主从设置(多实例做多个主从)

一.源码安装mysql5.6.20 1.编译环境安装 yum install wget gcc* make openssl openssl-devel openssl-clients -y && yum groupinstall "Development Libraries" -y 2.源码下载(软件见Linux部署源码包) wget -P /usr/local/src/ http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.

mysql密码设置及重置方法

mysql密码设置及重置方法 作者 :小刘 今天这篇文章,我们来看下mysql数据库的密码设置,当我们不小心忘记了root密码,是一件很糟糕的事情,希望此文章可以帮助大家,我们先从设置密码开始吧!我们刚安装好的mysql数据库,默认root的密码为空,这时我们可以用一下命令设置密码mysqladmin -u root password "密码"如图(为root设置密码为123456)  如果你知道原来的旧密码,我们就可以用下面的命令直接更改就可以了mysqladmin -u root

T端mysql优化设置

下面是一个我自己用的设置MYSQL的安全的魔兽世界私服的单机设置办法.这个是针对2-4G内存来设置的.提升MYSQL的吞吐量.实现MYSQL的稳定,让多人在游戏里面玩的时候不至于由于MYSQL而导致很卡[client] port=3306 [mysqld] port=3306 old-passwords=1 basedir="D:\MGCORE-4.1.0-V1.2.1-14007\Web_Mysql\mysql5/" datadir="D:\MGCORE-4.1.0-V1.

MySQL数据库设置远程访问权限方法小结

http://www.jb51.net/article/42441.htm MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. 1,设置访问单个数据库权限 复制代码代码如下: mysql>grant all privileges on test.* to 'root'@'%'; 说明:设置用户名为root,密码为空,可访问数据库test 2,设置访问全部数据库权限 复制代码代码如下: mysql>g

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

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

JAVA 常见乱码问题及MYSQL character_set_server 设置

最近接手一个手机端服务端的程序(JAVA实现),我这边测试的话前台直接用的get方式传数据, get请求编码方式和post请求提交编码方式不同,get是把数据直接放到url中,例如以上的uname,IE浏览器先对中文进行utf-8编码(一个中文3个字符表示 太长),继而为了缩短字符又用ISO8859-1编码后传递给服务器.服务器的doGet方法中要先进行ISO8859-1解码再utf-8解码才能看到中文. post请求则在浏览器端把数据以utf-8的形式存储到http的请求体中,不用通过url传

MySQL 字符集设置

/*************************************************************************** * MySQL 字符集设置 * 说明: * 数据库这块很多时候都会因为字符集不兼容导致数据通信异常,所以这边把 * MySQL的字符集设定为utf-8,这个比较通用. * * 2016-9-24 深圳 南山平山村 曾剑锋 **************************************************************

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

xampp默认mysql密码设置,修改mysql的默认空密码 分类: xampp2012-09-12 11:24 30264人阅读 评论(5) 收藏 举报 mysqlphpmyadminauthentication数据库管理工具数据库extension 以前开发我一直都是用的appserv,appserv的特点就是一键安装,安装的时候会要求用户输入mysql的root密码.今天我改用xampp作为我的开发环境,所以碰到了修改mysql默认空密码的问题. 我看了下网上所提供的一些帮助信息,搞的那么