Lotus 程序設(shè)計(jì)隨筆
Lotus Notes程序設(shè)計(jì)隨筆(一)
作者 李建壹 Louis Lee(小路哥)
一、前言
許多初學(xué)Lotus Notes(Lotus Notes以下簡(jiǎn)稱(chēng)Notes)的朋友常常會(huì)因?yàn)镹otes學(xué)習(xí)范圍太廣、教育訓(xùn)練課程太貴、中文資料太少?等等因素,而不知該從何開(kāi)始入門(mén)學(xué)習(xí)。不過(guò)因?yàn)檫@些因素而放棄的話,其實(shí)是非常之可惜的,畢竟Notes的功能及其整合性在群組軟件領(lǐng)域中,仍然是領(lǐng)先其它群組軟件的佼佼者。
Louis為了讓許多初學(xué)Notes的朋友可以快速上手,所以決定著手撰寫(xiě)此系列的文章,希望以最淺顯易懂的白話文來(lái)為初學(xué)者建立Notes程序設(shè)計(jì)最基本的觀念(但會(huì)不會(huì)中斷不敢保證 :p)。不過(guò)既然是「隨筆」,所以一些順序的編排就不會(huì)那么的有系統(tǒng)。另外,在章文中雖然偶爾會(huì)提到一些技術(shù)觀念,但并不屬于高深的技術(shù)文件,純粹只是觀念養(yǎng)成的文章。若您想進(jìn)一步了解文中提及的觀念時(shí),Louis「強(qiáng)烈」建議直接參考Notes程序設(shè)計(jì)說(shuō)明資料庫(kù)。當(dāng)然,本系列文章中若有訛誤還請(qǐng)各位前輩高手多多指教。
二、Notes學(xué)習(xí)方向
Notes的學(xué)習(xí)方向主要分為程序設(shè)計(jì)與系統(tǒng)管理兩部份,一般通稱(chēng)為Notes AD(Application Development)與SA(System Administration),而這也是IBM官方的說(shuō)法。不過(guò),有時(shí)候AD也有人稱(chēng)為AP,而SA則常會(huì)與IT界常用的系統(tǒng)分析(System Analysis)搞混,所以在與其它朋友交流時(shí)可千萬(wàn)不要雞同鴨講。
但不論是Notes AD還是SA的知識(shí),這兩者并無(wú)明確界線,而且兩者其實(shí)是相輔相成的。以ACL的設(shè)定來(lái)講,就無(wú)法明確歸納至AD或SA任一范疇,因?yàn)椴还苁窃陂_(kāi)發(fā)應(yīng)用程序(應(yīng)用程序以下簡(jiǎn)稱(chēng)AP)或是管理Domino系統(tǒng),ACL的設(shè)定都是必須的常識(shí)。另外,在開(kāi)發(fā)Web AP時(shí),為了讓瀏覽器使用者可以正常瀏覽存取Web AP的內(nèi)容與資料,也須要先在服務(wù)器上做一些設(shè)定,而這也是開(kāi)發(fā)人員所須要了解的。
所以就Louis個(gè)人的觀點(diǎn)而言,千萬(wàn)不要將自己的角色局限在程序設(shè)計(jì)師或系統(tǒng)管理員而排斥學(xué)習(xí)任何一方面的知識(shí)。因?yàn)槿绱酥粫?huì)讓您在執(zhí)行一些任務(wù)時(shí)捉襟見(jiàn)肘罷了。接下來(lái)就讓我們進(jìn)入的正題吧!!
三、Notes資料庫(kù)的分類(lèi)與基礎(chǔ)結(jié)構(gòu)
在學(xué)習(xí)Notes AP開(kāi)發(fā)的第一步驟,就是要先對(duì)Notes資料庫(kù)有所了解,如此才不會(huì)因?yàn)橛^念不足或是錯(cuò)誤而導(dǎo)致在開(kāi)發(fā)過(guò)程中產(chǎn)生阻礙。所以Louis先整理一些觀念讓您稍微了解:
Top
(一)Notes資料庫(kù)的分類(lèi)
以目前市場(chǎng)上的資料庫(kù)產(chǎn)品而言,就資料型態(tài)、功能性或配置方式分成好幾類(lèi),例如最常聽(tīng)到的就是關(guān)聯(lián)式資料庫(kù)(Relational Database),通常簡(jiǎn)稱(chēng)為RDBMS或是RDB,而最具代表性的就是Oracle、DB2、Informix、SQL?等等,不過(guò)這都是要付授權(quán)費(fèi),如果是免費(fèi)的,目前最紅的該屬M(fèi)ySQL了(Notes都可以跟這些資料庫(kù)整合喔~~)。
就資料型態(tài)而言,Notes屬于文件式資料庫(kù)而非關(guān)聯(lián)式資料庫(kù)。很多初學(xué)Notes的朋友對(duì)文件式資料庫(kù)這名詞通常都會(huì)很疑惑,一是因?yàn)榫W(wǎng)路上很難找到相關(guān)信息,二是對(duì)Notes還不是很了解。不過(guò)在之后的內(nèi)容中Louis會(huì)陸續(xù)說(shuō)明文件的觀念。
就資料庫(kù)的配置方式而言,Notes則被歸類(lèi)在分布式資料庫(kù),為什么呢?因?yàn)镹otes
的資料庫(kù)可以藉由抄寫(xiě)機(jī)制,將各資料庫(kù)抄本分置到各服務(wù)器與客戶(hù)端中。分布式資料庫(kù)的理論在網(wǎng)路上有很多資料,若有興趣的話可以到各大搜尋引擎網(wǎng)站找找。
(二)Notes資料庫(kù)的結(jié)構(gòu)
每一個(gè)Notes資料庫(kù)在windows OS下是以檔案格式存在的,其擴(kuò)展名通常是NSF,也就是Notes Storage Facility的簡(jiǎn)寫(xiě),翻譯成中文就是Notes儲(chǔ)存設(shè)備。至于擴(kuò)展名NTF也是Notes范本資料庫(kù),全名是Notes Template Facility,是用來(lái)產(chǎn)生一般資料庫(kù)的范本。也就是說(shuō),您可以利用模板資料庫(kù)來(lái)新建一個(gè)資料庫(kù),而此資料庫(kù)中的設(shè)計(jì)是與模板資料庫(kù)的設(shè)計(jì)一模一樣的。
按照官方的說(shuō)法,每個(gè)Notes資料庫(kù)是由四個(gè)基本組件所組成:
1.ACL:
就是Access Control List,一般翻譯成存取控制清單,或是權(quán)限控制清單,顧名思義就是讓資料庫(kù)管理員可以指定使用者對(duì)該資料庫(kù)執(zhí)行何種動(dòng)作。
2.設(shè)計(jì)組件:
是指套表、視界、外框、圖文框、領(lǐng)航員?等等組件,而這些都是Notes資料庫(kù)最最基礎(chǔ)的組件,也是用來(lái)讓資料庫(kù)可以與使用者互動(dòng)的基本組件,沒(méi)有這些組件,資料庫(kù)即無(wú)法運(yùn)作。
3.所謂邏輯:
是指程序設(shè)計(jì)師在資料庫(kù)中所撰寫(xiě)的程序語(yǔ)言,Lotus Script、公式、代理程序都是。主要是要運(yùn)算處理資料庫(kù)中的資料,或者達(dá)成某些自動(dòng)化的作業(yè)。
4.資料:
是指儲(chǔ)存在文件中的文字、數(shù)字、日期時(shí)間、附加檔案?等等信息。
四、資料的安全控管
若要簡(jiǎn)單描述Domino對(duì)資料的安全控管,基本上由外而內(nèi)可以分成幾關(guān):服務(wù)器è資料庫(kù)è文件è隱藏公式。
以服務(wù)器這一關(guān)來(lái)說(shuō),是在服務(wù)器文件中控管的,例如允許或不允許哪些使用者存取此服務(wù)器、允許或不允許哪些使用者可以在服務(wù)器上建立或刪除資料庫(kù)…等等。
若是使用者被賦予存取服務(wù)器的權(quán)限,就會(huì)進(jìn)入到資料庫(kù)安全控管這關(guān),而這關(guān)的安全控管就是由資料庫(kù)ACL來(lái)決定的。
再來(lái)是文件的安全性控管,這是經(jīng)由套表屬性之安全卷標(biāo)下的選項(xiàng),以及讀者與作者欄位來(lái)處理的。
最后就是隱藏公式,其實(shí),隱藏公式根本就不算是安全性控管的方法,這只能說(shuō)是開(kāi)發(fā)技巧。因?yàn)榧词雇高^(guò)隱藏公式把套表中的特定欄位隱藏起來(lái),使用者仍然可以透過(guò)文件屬性方塊看到各欄位中的資料。
Top
五、ACL
既然我們?cè)谇懊娑啻握劦紸CL,不稍微跟他交個(gè)朋友好像說(shuō)不過(guò)去,所以在這兒就為大伙兒引薦他吧,呵呵。在ACL中主要有幾種組件設(shè)定:使用者類(lèi)型、權(quán)限類(lèi)型、執(zhí)行動(dòng)作。
設(shè)定使用者類(lèi)型是為了避免ID被誤用。舉例來(lái)說(shuō),通常服務(wù)器在資料庫(kù)ACL中都是管理員權(quán)限,假設(shè)服務(wù)器ID被有心人士盜用,可能就會(huì)造成極大的破壞。所以為了防范有心「人」士進(jìn)行這種破壞行動(dòng),就必須在ACL中正確設(shè)定為服務(wù)器類(lèi)型,如此該人士即使拿到服務(wù)器ID也沒(méi)辦法使用Notes client來(lái)對(duì)資料庫(kù)執(zhí)行任何活動(dòng)。因?yàn)椋?wù)器不是「人」,所以不會(huì)使用Notes client(不過(guò)在系統(tǒng)管理中,Louis強(qiáng)烈建議把服務(wù)器當(dāng)作是「人」,這樣有助于管理概念的建立)。但相對(duì)的,如果未設(shè)定適當(dāng)?shù)念?lèi)型,也會(huì)導(dǎo)致某些動(dòng)作無(wú)法執(zhí)行。
再來(lái)是權(quán)限類(lèi)型,依權(quán)限低高依序有七層-沒(méi)有權(quán)限、儲(chǔ)存者、讀者、作者、編輯者、設(shè)計(jì)師、管理員。【沒(méi)有權(quán)限】當(dāng)然就不能對(duì)資料庫(kù)執(zhí)行任何動(dòng)作,因?yàn)檫B進(jìn)去的權(quán)利都沒(méi)有。Louis常戲稱(chēng)【儲(chǔ)存者】為工讀生權(quán)限,儲(chǔ)存者僅能輸入資料到資料庫(kù)中,輸入完畢后,就無(wú)法再看到這些資料。感覺(jué)就像找了一位工讀生來(lái)key in大量資料到資料庫(kù)中,但又不想讓工讀生記起這些資料或是看到其它資料。
先假設(shè)文件或套表中沒(méi)有讀者欄位,當(dāng)使用者被賦予【讀者】權(quán)限時(shí),使用者就只能閱讀文件,而不能編輯文件,當(dāng)然更不可能建立文件(可執(zhí)行動(dòng)作之建立文件選項(xiàng)被強(qiáng)制disable了)。不過(guò),一但文件中有讀者欄位,若使用者的名稱(chēng)未在讀者欄位的名稱(chēng)清單之中,則即使有再高的ACL權(quán)限還是無(wú)法閱讀該文件。
至于【作者】權(quán)限就必須跟【作者】欄位配合使用才具效用,當(dāng)使用者被賦予【作者】權(quán)限,但作者欄位中的使用者名稱(chēng)卻是別位使用者時(shí),這時(shí)即使該份文件是目前使用者所建立,但因?yàn)槠涿Q(chēng)未列于作者欄位中,所以無(wú)法編輯該文件,僅能閱讀而已。順帶一提,如果使用者被賦予【編輯者】(含)以上權(quán)限,但文件中的作者欄位中并沒(méi)有這位使用者名稱(chēng),使用者還是可以編輯文件,因?yàn)椤咀髡摺繖?quán)限必須跟【作者】欄位配合使用才具效用,也就是說(shuō)【編輯者】(含)以上權(quán)限不受作者欄位的約束。
至于【設(shè)計(jì)師】權(quán)限就是多了使用Domino Designer來(lái)開(kāi)發(fā)AP的權(quán)限。而管理員則是多了修改ACL的權(quán)限。
茲概略整理下表以供參考:
管理者 設(shè)計(jì)者 編輯者 作者 讀者 儲(chǔ)存者 沒(méi)有權(quán)利
ACL設(shè)定 V
建立修改設(shè)計(jì)組件 V V
編輯所有文件 V V V
編輯自已文件 V V V V
增加新文件 V V V V V
讀取所有文件 V V V V V
在資料庫(kù)建立時(shí),會(huì)在ACL的使用者清單中看到-Default-這筆項(xiàng)目。-Default-的作用是,當(dāng)使用者在ACL中找不到適用于自己的權(quán)限時(shí),就套用-Default-的權(quán)限。也就是說(shuō),凡名稱(chēng)未明列在ACL中或未包含在ACL的群組中,就套用-Default-的權(quán)限。在開(kāi)發(fā)AP時(shí)若無(wú)特殊需求,-Default-通常都設(shè)定為編輯者。
您還會(huì)看到LocalDomainServers群組與OtherDomainServers群組。顧名思義,只要是與目前資料庫(kù)的所在服務(wù)器位在同一Domino網(wǎng)域的服務(wù)器都會(huì)自動(dòng)包含在LocalDomainServers群組中,除非您去names.nsf中更改此群組文件,那又另當(dāng)別論了Orz。所以此群組預(yù)設(shè)權(quán)限是管理員,主要是為了讓相同網(wǎng)域內(nèi)的服務(wù)器可以進(jìn)行抄寫(xiě)作業(yè)。至于OtherDomainServers群組就是跟LocalDomainServers相反了,因?yàn)榇巳航M的成員均為不同網(wǎng)域外的Domino服務(wù)器,而且預(yù)設(shè)是無(wú)權(quán)限。有些集團(tuán)企業(yè)因?yàn)橛幸粋€(gè)以上的Domino網(wǎng)域,所以可能會(huì)利用此群組來(lái)達(dá)到某些跨網(wǎng)域存取的需求。不過(guò),在達(dá)成此類(lèi)需求時(shí),請(qǐng)先手動(dòng)把那些位于不同網(wǎng)域的服務(wù)器名稱(chēng)加到names.nsf中的OtherDomainServers群組文件喔。
最后要談到Anonymous這個(gè)特殊項(xiàng)目,這是要手動(dòng)新增給Web AP使用的。也就是當(dāng)未透過(guò)Web ID & Password登入的使用者,均會(huì)被視為匿名者并套用Anonymous項(xiàng)目的權(quán)限。若Web AP未設(shè)定此項(xiàng)目時(shí),當(dāng)您使用瀏覽器開(kāi)啟資料庫(kù)時(shí),系統(tǒng)就會(huì)給您一個(gè)警告,要求您到ACL中新增此一項(xiàng)目喔。請(qǐng)?zhí)貏e注意,在開(kāi)發(fā)Web AP時(shí)若無(wú)特殊需求,請(qǐng)將此項(xiàng)目設(shè)為無(wú)權(quán)限,否則您資料庫(kù)中的資料可能就會(huì)在網(wǎng)路上趴趴造了~~。
待續(xù)?
李建壹 Louis Lee(小路哥)
2006/3/8
作者 李建壹 Louis Lee(小路哥)
一、前言
許多初學(xué)Lotus Notes(Lotus Notes以下簡(jiǎn)稱(chēng)Notes)的朋友常常會(huì)因?yàn)镹otes學(xué)習(xí)范圍太廣、教育訓(xùn)練課程太貴、中文資料太少?等等因素,而不知該從何開(kāi)始入門(mén)學(xué)習(xí)。不過(guò)因?yàn)檫@些因素而放棄的話,其實(shí)是非常之可惜的,畢竟Notes的功能及其整合性在群組軟件領(lǐng)域中,仍然是領(lǐng)先其它群組軟件的佼佼者。
Louis為了讓許多初學(xué)Notes的朋友可以快速上手,所以決定著手撰寫(xiě)此系列的文章,希望以最淺顯易懂的白話文來(lái)為初學(xué)者建立Notes程序設(shè)計(jì)最基本的觀念(但會(huì)不會(huì)中斷不敢保證 :p)。不過(guò)既然是「隨筆」,所以一些順序的編排就不會(huì)那么的有系統(tǒng)。另外,在章文中雖然偶爾會(huì)提到一些技術(shù)觀念,但并不屬于高深的技術(shù)文件,純粹只是觀念養(yǎng)成的文章。若您想進(jìn)一步了解文中提及的觀念時(shí),Louis「強(qiáng)烈」建議直接參考Notes程序設(shè)計(jì)說(shuō)明資料庫(kù)。當(dāng)然,本系列文章中若有訛誤還請(qǐng)各位前輩高手多多指教。
二、Notes學(xué)習(xí)方向
Notes的學(xué)習(xí)方向主要分為程序設(shè)計(jì)與系統(tǒng)管理兩部份,一般通稱(chēng)為Notes AD(Application Development)與SA(System Administration),而這也是IBM官方的說(shuō)法。不過(guò),有時(shí)候AD也有人稱(chēng)為AP,而SA則常會(huì)與IT界常用的系統(tǒng)分析(System Analysis)搞混,所以在與其它朋友交流時(shí)可千萬(wàn)不要雞同鴨講。
但不論是Notes AD還是SA的知識(shí),這兩者并無(wú)明確界線,而且兩者其實(shí)是相輔相成的。以ACL的設(shè)定來(lái)講,就無(wú)法明確歸納至AD或SA任一范疇,因?yàn)椴还苁窃陂_(kāi)發(fā)應(yīng)用程序(應(yīng)用程序以下簡(jiǎn)稱(chēng)AP)或是管理Domino系統(tǒng),ACL的設(shè)定都是必須的常識(shí)。另外,在開(kāi)發(fā)Web AP時(shí),為了讓瀏覽器使用者可以正常瀏覽存取Web AP的內(nèi)容與資料,也須要先在服務(wù)器上做一些設(shè)定,而這也是開(kāi)發(fā)人員所須要了解的。
所以就Louis個(gè)人的觀點(diǎn)而言,千萬(wàn)不要將自己的角色局限在程序設(shè)計(jì)師或系統(tǒng)管理員而排斥學(xué)習(xí)任何一方面的知識(shí)。因?yàn)槿绱酥粫?huì)讓您在執(zhí)行一些任務(wù)時(shí)捉襟見(jiàn)肘罷了。接下來(lái)就讓我們進(jìn)入的正題吧!!
三、Notes資料庫(kù)的分類(lèi)與基礎(chǔ)結(jié)構(gòu)
在學(xué)習(xí)Notes AP開(kāi)發(fā)的第一步驟,就是要先對(duì)Notes資料庫(kù)有所了解,如此才不會(huì)因?yàn)橛^念不足或是錯(cuò)誤而導(dǎo)致在開(kāi)發(fā)過(guò)程中產(chǎn)生阻礙。所以Louis先整理一些觀念讓您稍微了解:
Top
(一)Notes資料庫(kù)的分類(lèi)
以目前市場(chǎng)上的資料庫(kù)產(chǎn)品而言,就資料型態(tài)、功能性或配置方式分成好幾類(lèi),例如最常聽(tīng)到的就是關(guān)聯(lián)式資料庫(kù)(Relational Database),通常簡(jiǎn)稱(chēng)為RDBMS或是RDB,而最具代表性的就是Oracle、DB2、Informix、SQL?等等,不過(guò)這都是要付授權(quán)費(fèi),如果是免費(fèi)的,目前最紅的該屬M(fèi)ySQL了(Notes都可以跟這些資料庫(kù)整合喔~~)。
就資料型態(tài)而言,Notes屬于文件式資料庫(kù)而非關(guān)聯(lián)式資料庫(kù)。很多初學(xué)Notes的朋友對(duì)文件式資料庫(kù)這名詞通常都會(huì)很疑惑,一是因?yàn)榫W(wǎng)路上很難找到相關(guān)信息,二是對(duì)Notes還不是很了解。不過(guò)在之后的內(nèi)容中Louis會(huì)陸續(xù)說(shuō)明文件的觀念。
就資料庫(kù)的配置方式而言,Notes則被歸類(lèi)在分布式資料庫(kù),為什么呢?因?yàn)镹otes
的資料庫(kù)可以藉由抄寫(xiě)機(jī)制,將各資料庫(kù)抄本分置到各服務(wù)器與客戶(hù)端中。分布式資料庫(kù)的理論在網(wǎng)路上有很多資料,若有興趣的話可以到各大搜尋引擎網(wǎng)站找找。
(二)Notes資料庫(kù)的結(jié)構(gòu)
每一個(gè)Notes資料庫(kù)在windows OS下是以檔案格式存在的,其擴(kuò)展名通常是NSF,也就是Notes Storage Facility的簡(jiǎn)寫(xiě),翻譯成中文就是Notes儲(chǔ)存設(shè)備。至于擴(kuò)展名NTF也是Notes范本資料庫(kù),全名是Notes Template Facility,是用來(lái)產(chǎn)生一般資料庫(kù)的范本。也就是說(shuō),您可以利用模板資料庫(kù)來(lái)新建一個(gè)資料庫(kù),而此資料庫(kù)中的設(shè)計(jì)是與模板資料庫(kù)的設(shè)計(jì)一模一樣的。
按照官方的說(shuō)法,每個(gè)Notes資料庫(kù)是由四個(gè)基本組件所組成:
1.ACL:
就是Access Control List,一般翻譯成存取控制清單,或是權(quán)限控制清單,顧名思義就是讓資料庫(kù)管理員可以指定使用者對(duì)該資料庫(kù)執(zhí)行何種動(dòng)作。
2.設(shè)計(jì)組件:
是指套表、視界、外框、圖文框、領(lǐng)航員?等等組件,而這些都是Notes資料庫(kù)最最基礎(chǔ)的組件,也是用來(lái)讓資料庫(kù)可以與使用者互動(dòng)的基本組件,沒(méi)有這些組件,資料庫(kù)即無(wú)法運(yùn)作。
3.所謂邏輯:
是指程序設(shè)計(jì)師在資料庫(kù)中所撰寫(xiě)的程序語(yǔ)言,Lotus Script、公式、代理程序都是。主要是要運(yùn)算處理資料庫(kù)中的資料,或者達(dá)成某些自動(dòng)化的作業(yè)。
4.資料:
是指儲(chǔ)存在文件中的文字、數(shù)字、日期時(shí)間、附加檔案?等等信息。
四、資料的安全控管
若要簡(jiǎn)單描述Domino對(duì)資料的安全控管,基本上由外而內(nèi)可以分成幾關(guān):服務(wù)器è資料庫(kù)è文件è隱藏公式。
以服務(wù)器這一關(guān)來(lái)說(shuō),是在服務(wù)器文件中控管的,例如允許或不允許哪些使用者存取此服務(wù)器、允許或不允許哪些使用者可以在服務(wù)器上建立或刪除資料庫(kù)…等等。
若是使用者被賦予存取服務(wù)器的權(quán)限,就會(huì)進(jìn)入到資料庫(kù)安全控管這關(guān),而這關(guān)的安全控管就是由資料庫(kù)ACL來(lái)決定的。
再來(lái)是文件的安全性控管,這是經(jīng)由套表屬性之安全卷標(biāo)下的選項(xiàng),以及讀者與作者欄位來(lái)處理的。
最后就是隱藏公式,其實(shí),隱藏公式根本就不算是安全性控管的方法,這只能說(shuō)是開(kāi)發(fā)技巧。因?yàn)榧词雇高^(guò)隱藏公式把套表中的特定欄位隱藏起來(lái),使用者仍然可以透過(guò)文件屬性方塊看到各欄位中的資料。
Top
五、ACL
既然我們?cè)谇懊娑啻握劦紸CL,不稍微跟他交個(gè)朋友好像說(shuō)不過(guò)去,所以在這兒就為大伙兒引薦他吧,呵呵。在ACL中主要有幾種組件設(shè)定:使用者類(lèi)型、權(quán)限類(lèi)型、執(zhí)行動(dòng)作。
設(shè)定使用者類(lèi)型是為了避免ID被誤用。舉例來(lái)說(shuō),通常服務(wù)器在資料庫(kù)ACL中都是管理員權(quán)限,假設(shè)服務(wù)器ID被有心人士盜用,可能就會(huì)造成極大的破壞。所以為了防范有心「人」士進(jìn)行這種破壞行動(dòng),就必須在ACL中正確設(shè)定為服務(wù)器類(lèi)型,如此該人士即使拿到服務(wù)器ID也沒(méi)辦法使用Notes client來(lái)對(duì)資料庫(kù)執(zhí)行任何活動(dòng)。因?yàn)椋?wù)器不是「人」,所以不會(huì)使用Notes client(不過(guò)在系統(tǒng)管理中,Louis強(qiáng)烈建議把服務(wù)器當(dāng)作是「人」,這樣有助于管理概念的建立)。但相對(duì)的,如果未設(shè)定適當(dāng)?shù)念?lèi)型,也會(huì)導(dǎo)致某些動(dòng)作無(wú)法執(zhí)行。
再來(lái)是權(quán)限類(lèi)型,依權(quán)限低高依序有七層-沒(méi)有權(quán)限、儲(chǔ)存者、讀者、作者、編輯者、設(shè)計(jì)師、管理員。【沒(méi)有權(quán)限】當(dāng)然就不能對(duì)資料庫(kù)執(zhí)行任何動(dòng)作,因?yàn)檫B進(jìn)去的權(quán)利都沒(méi)有。Louis常戲稱(chēng)【儲(chǔ)存者】為工讀生權(quán)限,儲(chǔ)存者僅能輸入資料到資料庫(kù)中,輸入完畢后,就無(wú)法再看到這些資料。感覺(jué)就像找了一位工讀生來(lái)key in大量資料到資料庫(kù)中,但又不想讓工讀生記起這些資料或是看到其它資料。
先假設(shè)文件或套表中沒(méi)有讀者欄位,當(dāng)使用者被賦予【讀者】權(quán)限時(shí),使用者就只能閱讀文件,而不能編輯文件,當(dāng)然更不可能建立文件(可執(zhí)行動(dòng)作之建立文件選項(xiàng)被強(qiáng)制disable了)。不過(guò),一但文件中有讀者欄位,若使用者的名稱(chēng)未在讀者欄位的名稱(chēng)清單之中,則即使有再高的ACL權(quán)限還是無(wú)法閱讀該文件。
至于【作者】權(quán)限就必須跟【作者】欄位配合使用才具效用,當(dāng)使用者被賦予【作者】權(quán)限,但作者欄位中的使用者名稱(chēng)卻是別位使用者時(shí),這時(shí)即使該份文件是目前使用者所建立,但因?yàn)槠涿Q(chēng)未列于作者欄位中,所以無(wú)法編輯該文件,僅能閱讀而已。順帶一提,如果使用者被賦予【編輯者】(含)以上權(quán)限,但文件中的作者欄位中并沒(méi)有這位使用者名稱(chēng),使用者還是可以編輯文件,因?yàn)椤咀髡摺繖?quán)限必須跟【作者】欄位配合使用才具效用,也就是說(shuō)【編輯者】(含)以上權(quán)限不受作者欄位的約束。
至于【設(shè)計(jì)師】權(quán)限就是多了使用Domino Designer來(lái)開(kāi)發(fā)AP的權(quán)限。而管理員則是多了修改ACL的權(quán)限。
茲概略整理下表以供參考:
管理者 設(shè)計(jì)者 編輯者 作者 讀者 儲(chǔ)存者 沒(méi)有權(quán)利
ACL設(shè)定 V
建立修改設(shè)計(jì)組件 V V
編輯所有文件 V V V
編輯自已文件 V V V V
增加新文件 V V V V V
讀取所有文件 V V V V V
在資料庫(kù)建立時(shí),會(huì)在ACL的使用者清單中看到-Default-這筆項(xiàng)目。-Default-的作用是,當(dāng)使用者在ACL中找不到適用于自己的權(quán)限時(shí),就套用-Default-的權(quán)限。也就是說(shuō),凡名稱(chēng)未明列在ACL中或未包含在ACL的群組中,就套用-Default-的權(quán)限。在開(kāi)發(fā)AP時(shí)若無(wú)特殊需求,-Default-通常都設(shè)定為編輯者。
您還會(huì)看到LocalDomainServers群組與OtherDomainServers群組。顧名思義,只要是與目前資料庫(kù)的所在服務(wù)器位在同一Domino網(wǎng)域的服務(wù)器都會(huì)自動(dòng)包含在LocalDomainServers群組中,除非您去names.nsf中更改此群組文件,那又另當(dāng)別論了Orz。所以此群組預(yù)設(shè)權(quán)限是管理員,主要是為了讓相同網(wǎng)域內(nèi)的服務(wù)器可以進(jìn)行抄寫(xiě)作業(yè)。至于OtherDomainServers群組就是跟LocalDomainServers相反了,因?yàn)榇巳航M的成員均為不同網(wǎng)域外的Domino服務(wù)器,而且預(yù)設(shè)是無(wú)權(quán)限。有些集團(tuán)企業(yè)因?yàn)橛幸粋€(gè)以上的Domino網(wǎng)域,所以可能會(huì)利用此群組來(lái)達(dá)到某些跨網(wǎng)域存取的需求。不過(guò),在達(dá)成此類(lèi)需求時(shí),請(qǐng)先手動(dòng)把那些位于不同網(wǎng)域的服務(wù)器名稱(chēng)加到names.nsf中的OtherDomainServers群組文件喔。
最后要談到Anonymous這個(gè)特殊項(xiàng)目,這是要手動(dòng)新增給Web AP使用的。也就是當(dāng)未透過(guò)Web ID & Password登入的使用者,均會(huì)被視為匿名者并套用Anonymous項(xiàng)目的權(quán)限。若Web AP未設(shè)定此項(xiàng)目時(shí),當(dāng)您使用瀏覽器開(kāi)啟資料庫(kù)時(shí),系統(tǒng)就會(huì)給您一個(gè)警告,要求您到ACL中新增此一項(xiàng)目喔。請(qǐng)?zhí)貏e注意,在開(kāi)發(fā)Web AP時(shí)若無(wú)特殊需求,請(qǐng)將此項(xiàng)目設(shè)為無(wú)權(quán)限,否則您資料庫(kù)中的資料可能就會(huì)在網(wǎng)路上趴趴造了~~。
待續(xù)?
李建壹 Louis Lee(小路哥)
2006/3/8
posted on 2007-08-05 11:41 小鋒 閱讀(544) 評(píng)論(1) 編輯 收藏 所屬分類(lèi): lotus Domino