如何才能有效对抗MySQL数据库的解密高手
作者:lili 发布时间:2009-05-22 18:21:00
当你连接一个MySQL服务器时,你通常应该使用一个口令。口令不以明文在连接上传输。所有其它信息作为能被任何人读懂的文本被传输。如果你担心这个,你可使用压缩协议(MySQL3.22和以上版本)使事情变得更难。甚至为了使一切更安全,你应该安装ssh。用它,你能在一个MySQL服务器与一个MySQL客户之间得到一个加密的tcp/ip连接。
为了使一个MySQL系统安全,强烈要求你考虑下列建议:
对所有MySQL用户使用口令。记住,如果other_user没有口令,任何人能简单地用MySQL -u other_user db_name作为任何其它的人登录。对客户机/服务器应用程序,客户可以指定任何用户名是常见的做法。在你运行它以前,你可以通过编辑MySQL_install_db脚本改变所有用户的口令,或仅仅MySQL root的口令像这样:
shell> mysql -u root mysql mysql> update user
set password=password("new_password")
where user="root"; mysql> flush privileges;
不要作为Unix的root用户运行MySQL守护进程。mysqld能以任何用户运行,你也可以创造一个新的Unix用户MySQL使一切更安全。如果你作为其它Unix用户运行mysqld,你不需要改变在user表中的root用户名,因为Mysql用户名与unix 用户名没关系。你可以作为其它unix用户编辑mysql.server启动脚本mysqld。通常这用su命令完成。
如果你把一个Unix root用户口令放在mysql.server脚本中,确保这个脚本只能对root是可读的。
检查那个运行Mysqld的Unix用户是唯一的在数据库目录下有读/写权限的用户。
不要把process权限给所有用户。mysqladmin processlist的输出显示出当前执行的查询正文,如果另外的用户发出一个update user set password=password("not_secure")查询,被允许执行那个命令的任何用户可能看得到。mysqld为有process权限的用户保留一个额外的连接, 以便一个mysql root用户能登录并检查,即使所有的正常连接在使用。不要把file权限给所有的用户。
有这权限的任何用户能在拥有mysqld守护进程权限的文件系统那里写一个文件!为了使这更安全一些,用select ... into outfile生成的所有文件对每个人是可读的,并且你不能覆盖已经存在的文件。
file权限也可以被用来读取任何作为运行服务器的unix用户可存取的文件。这可能被滥用,例如,通过使用load data装载“/etc/passwd”进一个数据库表,然后它能用select被读入。
如果你不信任你的dns,你应该在授权表中使用IP数字而不是主机名。原则上讲,--secure选项对mysqld应该使主机名更安全。在任何情况下,你应该非常小心地使用包含通配符的主机名。


猜你喜欢
- 一个小问题今天在做一个实验时,需要对一个包含中英文词汇的TXT文件进行读入和整理。Python代码的编码规则为UTF-8。在读入时,文件的每
- Keras运行迭代一定代数以后,速度越来越慢,经检查是因为在循环迭代过程中增加了新的计算节点,导致计算节点越来越多,内存被占用完,速度变慢。
- 开门见山,直接以例子介绍: 代码如下:CREATE TABLE [dbo].[course]( [id] [int] NULL,
- zeroclipboard是一个跨浏览器的库类 它利用 Flash 进行复制,所以只要浏览器装有 Flash 就可以运行,而且比 IE 的
- 字符画是一种由字母、标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画。静态图
- 抽象工厂模式抽象工厂模式是一种创建型设计模式, 它能创建一系列相关的对象, 而无需指定其具体类。抽象工厂定义了用于创建不同产品的接口, 但将
- 一、使用等号查询可以像普通查询使用等号进行查询,但必须查询时间必须和字段对应时间完全相等,比如我要查下面这个值sql如下:SELECT id
- MySQL不允许SELECT FROM后面指向用作UPDATE的表,有时候让人纠结。当然,有比创建无休止的临时表更好的办法。本文解释如何UP
- 本文实例讲述了Python实现通过文件路径获取文件hash值的方法。分享给大家供大家参考,具体如下:import hashlibimport
- 本文实例讲述了Go语言map字典用法。分享给大家供大家参考。具体分析如下:这段代码生成了青岛、济南、烟台三个城市拼音和汉字的对照字典,根据拼
- 本文实例讲述了thinkPHP5.0框架简单配置作用域的方法。分享给大家供大家参考,具体如下:配置参数支持作用域的概念,默认情况下,所有参数
- 本篇文章主要介绍Java操作MongoDB。开发环境:System:WindowsIDE:eclipse、MyEclipse 8Databa
- from flask import requestFlask 是一个人气非常高的Python Web框架,笔者也拿它写过一些大大小小的项目,
- import pyperclipimport pyautogui# PyAutoGUI中文输入需要用粘贴实现# Py
- 什么是生成器?生成器是一个包含了特殊关键字yield的函数。当被调用的时候,生成器函数返回一个生成器。可以使用send,throw,clos
- 作者是一名沉迷于Python无法自拔的蛇友,为提高水平,把Python的重点和有趣的实例发在简书上。一、递归是指函数/过程/子程序在运行过程
- 今天有个需要需要传递中文参数给URL但是在GBK环境下的脚本传递GBK的参数老是给我报UNICODE的解码错误。烦的很。所以我们果断选择用u
- Vue加载流程1.初始化的第一阶段是Vue实例也就是vm对象创建前后:首先Vue进行生命周期,事件初始化发生在beforeCreate生命周
- 起因因为一些事情,需要将域名解析为ip地址,想到Python作为万能语言,就用Python来实现这个功能代码import socketurl
- 资源React-16.8.*react-router-dom-4.3.*TypeScript-3.5.*webpack-4.*eslint-