MYSQL网页编程之Mysql Client链接Mysql Server的认证方...
DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的数据库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云数据库解决方案的重点客户群体。 拜见:http://forge.mysql.com/wiki/MySQL_Internals_ClientServer_Protocol#Password_functions我意译一下,大抵就是以下内容:
4.0版本之前
1、服务器发送随机字符串(scramble_buff)给客户端.
2、客户端把用户明文暗码加密一下,然后将hash加上服务器的随机字符串加密一下酿成新的scramble_buff。(拜见sql/password.c:scramble()).
3、客户端将加密后的scramble_buff值发给服务端.
4、服务器将mysql.user.Password的值加上原始随机字符串举行加密.
5、服务器比对加密后的hash值和服务端送过去的加密后的scramble_buff.
6、假如一样,则考证乐成.
基础就是一个应战机制。可是注重一点:本色上真正意义上的暗码是明文暗码的加密hash值;假如有人晓得了这个用户的mysql.user.Password(而不必晓得原始明文暗码)他就可以间接登录服务端.
4.1今后版本
4.1今后数据库保留的暗码是用SHA1加密的:SHA1(SHA1(password))
1、服务器发送随机字符串(scramble)给客户端.
2、客户端作以下盘算:
stage1_hash=SHA1(明文暗码).
token=SHA1(scramble+SHA1(stage1_hash))XORstage1_hash
3、客户端将token发送给服务端
4、服务端作以下盘算:
stage1_hash=tokenXORSHA1(scramble+mysql.user.Password)
5、服务端比对SHA1(stage1_hash)和mysql.user.Password,假如婚配,则认证准确。
注重:SHA1(A+B)意义是SHA1(A字符串联接B字符串).
此次没上一个版本的缺点了.有了mysql.user.Password和scramble也不克不及取得token。由于他没法取得stage1_hash。
可是假如此人有这用户的mysql.user.Password及收集上截取的一次完全考证数据,他也能依据此次截获的token和scramble反解出stage1_hash的值。而因为stage1_hash是稳定的,因而下次毗连,他猎取了新的scramble后,本人加密一下token,送给服务端也能经由过程考证而毗连到服务器.
最初放一个5.1的认证的抓包了局,注重标红的中央:
server>127.0.0.1.49130:Handshake
127.0.0.1.49130>server:Handshake(newauth)
server>127.0.0.1.49130:Handshake<proto10ver5.1.41-3ubuntu12.6thd55scramble1EGu9Aq8_UnI_@L<*Y>127.0.0.1.49130>server:Handshake(newauth)<userrootdb(null)token6d2c7025c412b997788525b19a5167c89dafcbemaxpkt16777216>server>127.0.0.1.49130:OK<fields0affectedrows0insertid0warnings0>
<Pstyle="TEXT-INDENT:2em">
不可否认,MySQL也是一个很好的关系型数据库,或许在技术上它与其他领先的关系数据库相差并不大,或不具有劣势。但是,对于一些企业环境来说,MySQL显然不具有优势。 SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。 如果是将来做数据库的开发设计,就应该详细学习T-SQL的各种细节,包括T-SQL的程序设计、存储过程、触发器以及具体使用某个开发语言来访问数据库。 代替了原来VB式的错误判断。比Oracle高级不少。 至于淘汰的问题,只能说在你的项目周期之内,微软应该都不会倒闭。 我是一个ERP初学者,对于前台运用基本熟悉,但对于后台SQLServer的运用一点也不懂,特想学习下相关资料。至少懂得一些基本的运用。希望各位能给于建议,小弟再谢过! 需要注意的一点,也是我使用过程中发现的一个问题。在建立function->schema->table后,如果在现有的分区表上建立没有显式声明的聚集索引时,分区表会自动变为非分区表。这一点很让我纳闷。 SP4包括用于以下SQLServer2000组件的程序包:Database组件(下载文件:SQL2000-KB884525-SP4-x86.EXE)更新SQLServer2000的32位Database组件,包括数据库引擎、复制、客户端连接组件及工具。有关其他信息,请参阅ReadmeSql2k32Sp4.htm。AnalysisServices组件(下载文件:SQL2000.AS-KB884525-SP4-x86.EXE)更新SQLServer2000的32位AnalysisServices。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
页:
[1]