如何提高MySql的安全性


Posted in 面试题 onJune 19, 2014
1.如果MYSQL客户端和服务器端的连接需要跨越并通过不可信任的网络,那么需要使用ssh隧道来加密该连接的通信。
2.使用set password语句来修改用户的密码,先“mysql -u root”登陆数据库系统,然后“mysql> update mysql.user set password=password(‘newpwd’)”,最后执行“flush privileges”就可以了。
3.Mysql需要提防的攻击有,防偷听、篡改、回放、拒绝服务等,不涉及可用性和容错方面。对所有的连接、查询、其他操作使用基于acl即访问控制列表的安全措施来完成。也有一些对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.应用程序需要连接到数据库应该使用一般的用户帐号,开放少数必要的权限给该用户;
$page_devide$
13.在各编程接口(c c++ php perl java jdbc等)中使用特定‘逃脱字符’函数;
在因特网上使用mysql数据库时一定少用传输明文的数据,而用ssl和ssh的加密方式数据来传输;
14.学会使用tcpdump和strings工具来查看传输数据的安全性,例如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服务进程的安全选项开关,–local-infile=0或1 若是0则客户端程序就无法使用local load data了,赋权的一个例子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,然后执行 mysql -u root mysql,mysql>update user set password=password(‘newpassword’) where user=’root’;mysql>flush privileges;,最后重新启动mysql就可以了。

Tags in this post...

面试题 相关文章推荐
在Java开发中如何选择使用哪种集合类
Aug 09 面试题
c/c++某大公司的两道笔试题
Feb 02 面试题
利用异或运算实现两个无符号数的加法运算
Dec 20 面试题
汇智创新科技发展有限公司
Dec 06 面试题
亿阳信通股份有限公司笔试题(C#)
Mar 04 面试题
什么是TCP/IP
Jul 27 面试题
Windows和Linux动态库应用异同
Apr 17 面试题
Linux不知道文件后缀名怎么判断文件类型
Apr 26 面试题
如何开发一个JQuery插件
Jul 28 面试题
Java面试题:为什么要用Java
May 11 面试题
高级Java程序员面试要点
Aug 02 面试题
Servlet都有哪些方法?主要作用是什么?
Mar 04 面试题
介绍一下Mysql的存储引擎
Feb 12 #面试题
介绍一下如何优化MySql
Dec 20 #面试题
腾讯公司的一个sql题
Jan 22 #面试题
十一个高级MySql面试题
Oct 06 #面试题
遇到的Mysql的面试题
Jun 29 #面试题
一些关于MySql加速和优化的面试题
Jan 30 #面试题
MYSQL支持事务吗
Aug 09 #面试题
You might like
PHP迭代器的内部执行过程详解
2013/11/12 PHP
php验证码生成代码
2015/11/11 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
PHP-CGI远程代码执行漏洞分析与防范
2017/05/07 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
js tab效果的实现代码
2009/12/26 Javascript
jQuery Validation Plugin验证插件手动验证
2016/01/26 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
2018/06/02 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
详解webpack打包后如何调试的方法步骤
2018/11/07 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
[44:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#4EG VS Fnatic第二局
2016/03/03 DOTA
[37:02]OG vs INfamous 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
以Flask为例讲解Python的框架的使用方法
2015/04/29 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
python+mysql实现教务管理系统
2019/02/20 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
2020/02/25 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
数控加工专业毕业生自荐信
2013/09/27 职场文书
学生操行评语大全
2014/04/24 职场文书
完美的中文自荐信
2014/05/24 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
在JavaScript中如何使用宏详解
2021/05/06 Javascript
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android