快捷搜索:

初学者在使用MySQL时必须了解的注意事项

初学者在应用MySQL时必须懂得的留意事变:

1.假如客户端和办事器真个连接必要超过并经由过程弗成相信的收集,那么就必要应用SSH地道来加密该连接的通信。

2.用set password语句来改动用户的密码,三个步骤,先“mysql -u root”登岸数据库系统,然后“mysql> update mysql.user set password=password(’newpwd’)”,着末履行“flush privileges”就可以了。

3.必要防备的进击有,防偷听、窜改、回放、回绝办事等,不涉及可用性和容错方面。对所有的连接、查询、其他操作应用基于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中加入"代表双引号、#代表井号、'代表单引号;通报未反省过的值给mysql数据库是异常危险的;

11.在通报数据给mysql时反省一下大年夜小;

12.利用法度榜样必要连接到数据库应该应用一样平常的用户帐号,只开放少数需要的权限给该用户;

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

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就可以了。

您可能还会对下面的文章感兴趣: