只想知道 发表于 2015-1-16 22:17:01

MYSQL网站制作之23个利用MySQL数据库的注重事项

MySQL已经为支持所有最流行的Web2.0语言做好了准备,诸如Ruby、Ajax等,当然还有PHP。有的业界分析师说过,“每一个Web2.0公司实质上就是一个数据库公司。利用MySQL,平安成绩不克不及不注重。以下是MySQL提醒的23个注重事项:1。假如客户端和服务器真个毗连必要超过并经由过程不成信托的收集,那末就必要利用SSH地道来加密该毗连的通讯。
2。用setpassword语句来修正用户的暗码,三个步骤,先“mysql-uroot”上岸数据库体系,然后“mysql>updatemysql.usersetpassword=password(newpwd)”,最初实行“flushprivileges”就能够了。
3。必要防备的打击有,防偷听、改动、回放、回绝服务等,不触及可用性和容错方面。对一切的毗连、查询、其他操纵利用基于ACL即会见把持列表的平安措施来完成。也有一些对SSL毗连的撑持。
4。除root用户外的其他任何用户不同意会见mysql主数据库中的user表;
加密后寄存在user表中的加密后的用户暗码一旦保守,其别人能够随便用该用户名/暗码响应的数据库;
5。用grant和revoke语句来举行用户会见把持的事情;
6。不利用明文暗码,而是利用md5()和sha1()等单向的哈系函数来设置暗码;
7。不选用字典中的字来做暗码;
8。接纳防火墙往复失落50%的内部伤害,让数据库体系躲在防火墙前面事情,或安排在DMZ地区中;
9。从因特网上用nmap来扫描3306端口,也可用telnetserver_host3306的办法测试,不克不及同意从非信托收集中会见数据库服务器的3306号TCP端口,因而必要在防火墙或路由器上做设定;
10。为了避免被歹意传进不法参数,比方whereID=234,他人却输出whereID=234OR1=1招致全体显现,以是在web的表单中利用或""来用字符串,在静态URL中到场%22代表双引号、%23代表井号、%27代表单引号;传送未检查过的值给mysql数据库长短常伤害的;
11。在传送数据给mysql时反省一下巨细;
12。使用程序必要毗连到数据库应当利用一样平常的用户帐号,只开放多数需要的权限给该用户;
13。在各编程接口(CC++PHPPerlJavaJDBC等)中利用特定‘逃走字符’函数;
在因特网上利用mysql数据库时必定罕用传输明文的数据,而用SSL和SSH的加密体例数据来传输;
14。学会利用tcpdump和strings工具来检察传输数据的平安性,比方tcpdump-l-ieth0-w-srcordstport3306strings。以一般用户来启动mysql数据库服务;
15。不利用到表的联合标记,选用的参数--skip-symbolic-links;
16。确信在mysql目次中只要启动数据库服务的用户才能够对文件有读和写的权限;
17。不准将process或super权限付给非办理用户,该mysqladminprocesslist能够枚举出以后实行的查询文本;super权限可用于割断客户端毗连、改动服务器运转参数形态、把持拷贝复制数据库的服务器;
18.file权限不付给办理员之外的用户,避免呈现loaddata/etc/passwd到表中再用select显现出来的成绩;
19。假如不信任DNS服务公司的服务,能够在主机称号同意表中只设置IP数字地点;
20。利用max_user_connections变量来使mysqld服务历程,对一个指定帐户限制毗连数;
21.grant语句也撑持资本把持选项;
22。启动mysqld服务历程的平安选项开关,--local-infile=0或1如果0则客户端程序就没法利用localloaddata了,赋权的一个例子grantinsert(user)onmysql.usertouser_name@host_name;若利用--skip-grant-tables体系将对任何用户的会见不做任何会见把持,但能够用mysqladminflush-privileges或mysqladminreload来开启会见把持;默许情形是showdatabases语句对一切用户开放,能够用--skip-show-databases来封闭失落。
23。碰着Error1045(28000)AccessDeniedforuserroot@localhost(Usingpassword:NO)毛病时,你必要从头设置暗码,详细办法是:先用--skip-grant-tables参数启动mysqld,然后实行mysql-urootmysql,mysql>updateusersetpassword=password(newpassword)whereuser=root;mysql>Flushprivileges;,最初从头启动mysql就能够了。
这是无法比较的,因为基于云的数据库提供了不同的模式。关键是要通过围绕云计算产品来包装其他增值服务以适应不断变化的市场条件:这就是DBaaS。

小妖女 发表于 2015-1-19 06:40:26

个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。

活着的死人 发表于 2015-1-25 14:00:53

我个人认为就是孜孜不懈的学习

若相依 发表于 2015-2-2 22:20:21

对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。

谁可相欹 发表于 2015-2-8 14:19:19

SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.

老尸 发表于 2015-2-25 18:45:50

having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。

柔情似水 发表于 2015-3-8 01:36:58

两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书

因胸联盟 发表于 2015-3-15 19:30:45

需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。

小魔女 发表于 2015-3-22 03:11:23

从底层原理到表层引用,书籍多的很。个人认为没有什么那本书好?这样的说法。主要看和个人的学习方法是否适合。
页: [1]
查看完整版本: MYSQL网站制作之23个利用MySQL数据库的注重事项