新聞中心
【經(jīng)典譯文】當(dāng)談到開(kāi)源數(shù)據(jù)庫(kù)時(shí),MySQL獲得了業(yè)界大部分的注意力,數(shù)據(jù)庫(kù)頻道之前也曾報(bào)道過(guò)《MySQL等開(kāi)源數(shù)據(jù)庫(kù)受熱捧 傳統(tǒng)數(shù)據(jù)庫(kù)何去何從》。MySQL是一個(gè)易于使用的數(shù)據(jù)庫(kù),同時(shí)有許多開(kāi)源的Web應(yīng)用程序都是直接在它上面開(kāi)發(fā)的。不過(guò)也有異樣的聲音,比如PostgreSQL創(chuàng)始人:MySQL衰退屬必然。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的湄潭網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
另外一種主要的開(kāi)源數(shù)據(jù)庫(kù)是PostgreSQL,雖然它也是眾所周知的,但是卻沒(méi)有獲得像MySQL所得到的認(rèn)可。這是很不幸的,因?yàn)樵谶@兩者中,相比MySQL,PostgreSQL能提供更加安全、更加可靠、數(shù)據(jù)也更加完整的服務(wù)。
但是,這同樣也有一定的缺陷。PostgreSQL對(duì)于設(shè)置和使用的要求比較高,它利用的是特殊權(quán)限、底層操作系統(tǒng)的安全性以及數(shù)據(jù)庫(kù)內(nèi)提供的角色(roles)和特權(quán)。如果你對(duì)這些東西不夠了解的話,會(huì)使得PostgreSQL的使用變得困難。但一旦你掌握了它們,你就可以像使用MySQL一樣很容易的使用PostgreSQL。
與MySQL相類似,PostgreSQL的工作基于這樣一種原則,即特定的用戶有特定的數(shù)據(jù)訪問(wèn)權(quán)限。在PostgreSQL里,這些被稱之為“角色(roles)”,通過(guò)采用CREATE ROLE, ALTER ROLE, and DROP ROLE這些語(yǔ)句可以創(chuàng)建和管理它們。和MySQL不同的是,這些“角色”可以映射和綁定到系統(tǒng)的用戶,這就意味著它可以利用不同形式的體系認(rèn)證:ident server authentication、LDAP server authentication、PAM和Kerberos。而對(duì)于本地連接,你也可以通過(guò)使用這些文件體系的權(quán)限來(lái)確定誰(shuí)可以訪問(wèn)Unix域套接字,以及它的位置。
PostgreSQL中,訪問(wèn)控制的方法是使用pg_hba.conf。對(duì)于身份識(shí)別,也可采用pg_ident.conf;這可以用于將數(shù)據(jù)庫(kù)用戶映射到本地用戶。假如用戶“joe”是允許訪問(wèn)的PostgreSQL用戶數(shù)據(jù)庫(kù)“joe”和“電子商務(wù)”。pg_hba.conf文件包含如下:
| # TYPE | DATABASE | USER | CIDR-ADDRESS | METHOD |
| local | all | all | ident map=esite | |
| host | all | all | 127.0.0.1/32 | ident map=esite |
而pg_ident.conf可能會(huì)包括:
| # MAPNAME | SYSTEM-USERNAME | PG-USERNAME |
| esite | joe | joe |
| esite | joe | ecommerce |
| esite | postgres | joe |
這就允許系統(tǒng)用戶“joe”作為“joe”或者“ecommerce.”來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。它也允許系統(tǒng)“postgres”用戶以“joe”的身份連接到數(shù)據(jù)庫(kù)。同時(shí)強(qiáng)化對(duì)于名字為“esite”識(shí)別方法的映射類型,如在pg_ident.conf中所定義的那樣。這就意味著在本地類型(Unix域套接字)和本地TCP/IP地址(127.0.0.1)中,只有joe和postgres能夠連接到數(shù)據(jù)庫(kù)。沒(méi)有其他的用戶有權(quán)來(lái)訪問(wèn)它。
這種識(shí)別方法是一種很好的方式,用于控制哪一個(gè)本地用戶可以連接到哪一個(gè)數(shù)據(jù)庫(kù)。這種方法只對(duì)本地主機(jī)(TCP/IP 或者UNIX 域套接字)的連接起作用,而對(duì)于遠(yuǎn)程控制是無(wú)效的。
雖然對(duì)于那些習(xí)慣使用MySQL的人來(lái)說(shuō)這看起來(lái)似乎有點(diǎn)混亂,但目前對(duì)具有這種認(rèn)證精度的數(shù)據(jù)庫(kù)的需求確是實(shí)實(shí)在在的。MySQL只支持基于登錄證書(shū)的身份驗(yàn)證,而這些證書(shū)只由數(shù)據(jù)庫(kù)本身進(jìn)行儲(chǔ)存和管理。
另一方面,PostgreSQL不僅允許這種采用密碼機(jī)制的身份驗(yàn)證,而且允許采用無(wú)密碼的身份驗(yàn)證。這些驗(yàn)證機(jī)制包括像討論的認(rèn)證機(jī)制、PAM(其中規(guī)定了許多有意思的驗(yàn)證方案)以及LDAP 和 Kerberos。Kerberos是一種在MySQL使用多年的方式(事實(shí)上,出現(xiàn)于2004年11月的MySQL錯(cuò)誤#6733就需要得到Kerberos的支持)。許多公司的偏好Kerberos和LDAP密碼存儲(chǔ)目錄,這就使得PostgreSQL成為了一個(gè)引人關(guān)注的數(shù)據(jù)庫(kù)。
還有其他很多特色使得PostgreSQL更加適用于企業(yè)。雖然安全性很重要,但除此之外PostgreSQL對(duì)于數(shù)據(jù)完整性、訪問(wèn)控制、ACID規(guī)則以及其他一些重要方面的關(guān)注和支持,都很好的解釋了在眾多的數(shù)據(jù)庫(kù)管理者中為什么PostgreSQL享有如此高的贊譽(yù)。
相關(guān)閱讀
PostgreSQL是以加州大學(xué)伯克利分校計(jì)算機(jī)系開(kāi)發(fā)的 POSTGRES,版本 4.2為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(ORDBMS)。 POSTGRES 領(lǐng)先的許多概念只是在非常遲的時(shí)候才出現(xiàn)在商業(yè)數(shù)據(jù)庫(kù)中。
PostgreSQL 是最初的伯克利的代碼的一個(gè)開(kāi)放源碼的繼承人。
它支持大部分 SQL:2003 標(biāo)準(zhǔn)并且提供了許多其他現(xiàn)代特性:復(fù)雜查詢、外鍵、觸發(fā)器、視圖、事務(wù)完整性、多版本并發(fā)控制
同樣,PostgreSQL 可以用許多方法擴(kuò)展,比如, 通過(guò)增加新的:數(shù)據(jù)類型、函數(shù)、操作符、聚集函數(shù)、索引方法、過(guò)程語(yǔ)言。并且,因?yàn)樵S可證的靈活,任何人都可以以任何目的免費(fèi)使用,修改,和分發(fā) PostgreSQL, 不管是私用,商用,還是學(xué)術(shù)研究使用。
網(wǎng)站欄目:PostgreSQL叫板MySQL開(kāi)源數(shù)據(jù)庫(kù)的楚漢爭(zhēng)霸
轉(zhuǎn)載源于:http://m.fisionsoft.com.cn/article/cdjgjgp.html


咨詢
建站咨詢
