若相依 发表于 2015-1-16 22:15:11

MYSQL编程:mysql数据库你必要出格注重的23个事项

客户还是可以使用DBaaS系统所能提供的所有能力。数据库云服务消除了组织对专职人员、本地数据库存储设备的需要。他们不必安装、配置和维护任何软硬件。  利用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.userto‘user_name’@host_name’;若利用–skip-grant-tables体系将对任何用户的会见不做任何会见把持,但能够用mysqladminflush-privileges或mysqladminreload来开启会见把持;默许情形是showdatabases语句对一切用户开放,能够用–skip-show-databases来封闭失落。
  23.碰着Error1045(28000)AccessDeniedforuser‘root’@localhost’(Usingpassword:NO)毛病时,你必要从头设置暗码,详细办法是:先用–skip-grant-tables参数启动mysqld,然后实行mysql-urootmysql,mysql>updateusersetpassword=password(’newpassword’)whereuser=’root’;mysql>Flushprivileges;,最初从头启动mysql就能够了。
<Pstyle="TEXT-INDENT:2em">
首先我们要知道,或许有一项技术存在很多理由让我们可以选择使用MySQL学习教程,但是让我们不使用它往往只要有一个理由就足够了。

飘飘悠悠 发表于 2015-1-27 05:36:32

分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。

若天明 发表于 2015-2-5 03:09:49

这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。

柔情似水 发表于 2015-2-11 03:25:19

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关

金色的骷髅 发表于 2015-3-1 20:35:38

其中最有名的应该是row_number了。这个终于解决了用临时表生成序列号的历史,而且SQLServer2005的row_number比Oracle的更先进。因为它把Orderby集成到了一起,不用像Oracle那样还要用子查询进行封装。

乐观 发表于 2015-3-10 23:49:22

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

只想知道 发表于 2015-3-17 16:11:26

比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。

透明 发表于 2015-3-24 12:34:42

比如日志传送、比如集群。。。
页: [1]
查看完整版本: MYSQL编程:mysql数据库你必要出格注重的23个事项