类型:E-教程大小:8.5M语言:中文评分:8.3标签:立即下载MySQL,所以一定要注意安全问题。以下是MySQL提示的23个注意事项:1。如果客户端和服务器之间的连接需要穿过不可信的网络,那么需要SSH隧道来加密连接的通信。
2.使用set password语句修改用户的密码。有三个步骤。首先,“mysql -u root”登录数据库系统,然后“mysql更新MySQL。用户设置密码=password ('newpwd '),最后可以执行“刷新权限”。
3.需要防范的攻击包括防窃听、篡改、回放、拒绝服务等。这不涉及可用性和容错。对于所有连接、查询和其他操作,使用基于ACL(访问控制列表)的安全措施。对SSL连接也有一些支持。
4.不允许除root用户以外的任何用户访问MySQL主数据库中的用户表;
一旦加密后存储在用户表中的加密用户密码泄露,其他人可以随意使用用户名/密码对应的数据库;
5.使用grant和revoke语句控制用户访问;
6.不要使用明文密码,而是使用md5()和sha1()等单向哈希函数来设置密码;
7.不要将字典中的单词用作密码;
8.使用防火墙去除50%的外部危险,让数据库系统在防火墙后工作或者放在DMZ区域;
9.用来自互联网的nmap扫描端口3306也可以通过telnet server_host 3306进行测试。不允许从不可信网络访问数据库服务器的TCP端口3306,需要在防火墙或路由器上设置;
10.为了防止非法参数被恶意传入,例如,其中ID=234,但其他人输入其中ID=234 or 1=1,这将导致所有参数都被显示,因此使用“OR”在web表单中使用字符串,并在动态URL中添加“对于双引号,#对于井号,'对于单引号”;将未经检查的值传递给mysql数据库是非常危险的。
11.向MySQL传递数据时检查大小;
12.应用程序需要连接到数据库。它应该使用一个通用用户帐户,并且只向用户开放一些必要的权限;
13.在每个编程接口中使用特定的‘转义字符’函数(C C PHP Perl Java JDBC等)。);
在互联网上使用mysql数据库时,我们必须使用SSL和SSH加密来传输数据,而不是传输明文数据。
14.学习使用tcpdump和strings工具检查传输数据的安全性,例如tcpdump-l-ieth0-w-src或dstport 3306 | strings。以普通用户身份启动mysql数据库服务;
15.不要使用表的连接符号,选择参数-跳过-跳过-符号-链接;
16.确保只有启动数据库服务的用户才能对mysql目录中的文件拥有读写权限;
17.不允许向非管理用户支付进程或超级权限,mysqladmin processlist可以列出当前执行的查询文本;超级权限可以用来切断客户端连接,改变服务器运行参数的状态,控制复制和复制数据库的服务器;
18 .文件权限不支付给管理员以外的用户,避免了loaddata'/etc/passwd '先显示在表格中,再通过select显示的问题;
19.如果不信任DNS服务公司的服务,只能在主机名权限表中设置IP数字地址;
20.使用max_user_connections变量使mysqld服务进程限制到指定帐户的连接数;
21.21.grant语句还支持资源控制选项;
22.启动mysqld服务进程的安全选项开关。如果local-infile=0或1为0,则客户端程序不能使用本地加载数据。授权的一个例子是MySQL上的grant insert(用户)。用户到“user _ name ”@“host _ name”;如果使用-skip-skip-grant-tables系统,将不会对任何用户的访问进行访问控制,但是可以使用mysqladmin刷新权限或mysqladmin重载来打开访问控制。默认情况下,show databases语句对所有用户开放,并且可以通过skip-show-databases关闭。
23.碰到错误1045(28000)用户根“@”localhost的访问被拒绝(使用密码:NO)错误时,你需要重新设置密码,具体方法是:先用跳过资助表参数启动mysqld,然后执行mysql -u root mysql、mysqlupdate用户设置密码=密码(' newpassword ')其中用户=' rootmysqlFlush '权限;最后重新启动关系型数据库就可以了。