過(guò) 怡
(蘇州市職業(yè)大學(xué) 計(jì)算機(jī)工程學(xué)院,江蘇 蘇州 215000)
Wonderware Intrack是廣泛應(yīng)用于制造行業(yè)的生產(chǎn)批次跟蹤系統(tǒng)[1],具有很強(qiáng)的擴(kuò)展性和配置性[2],其后臺(tái)數(shù)據(jù)庫(kù)支持Oracle和SQL Server。在多工廠環(huán)境中,由于需要保證制造執(zhí)行系統(tǒng)的實(shí)時(shí)性,往往各工廠會(huì)安裝獨(dú)立的Wonderware Intrack系統(tǒng),在實(shí)踐中發(fā)現(xiàn),這樣帶來(lái)了兩個(gè)問(wèn)題:①由于數(shù)據(jù)庫(kù)軟件廠商在體系架構(gòu)上的差異,使得Oracle和SQL Server數(shù)據(jù)庫(kù)之間的管理模式區(qū)別較大,在多實(shí)例環(huán)境下,管理員需要配置和管理多個(gè)Oracle和SQL Server數(shù)據(jù)庫(kù)實(shí)例,而數(shù)據(jù)庫(kù)的安全管理是非常重要的一個(gè)環(huán)節(jié),由于其配置的復(fù)雜性和平臺(tái)的不同,使得系統(tǒng)安全更依賴(lài)于管理員的能力和經(jīng)驗(yàn)[3];②Wonderware Intrack沒(méi)有多實(shí)例的管理配置平臺(tái),只有單實(shí)例的ModelMaker客戶端作為管理后臺(tái),管理員需要切換不同的Wonderware Intrack系統(tǒng)進(jìn)行用戶權(quán)限和機(jī)臺(tái)物料等的配置,而切換需要一系列操作,包括數(shù)據(jù)庫(kù)設(shè)置→數(shù)據(jù)庫(kù)連接→ModelMaker登錄,效率較低,且需要重復(fù)登錄數(shù)據(jù)庫(kù)。因此,設(shè)計(jì)一個(gè)集成的數(shù)據(jù)庫(kù)安全管理工具,實(shí)現(xiàn)對(duì)Oracle和SQL Server數(shù)據(jù)庫(kù)的統(tǒng)一管理,能夠進(jìn)行基本的Wonderware Intrack系統(tǒng)配置,屏蔽復(fù)雜而又不盡相同的數(shù)據(jù)庫(kù)之間的操作細(xì)節(jié),對(duì)于提高整個(gè)系統(tǒng)的管理效率和安全性有著重要的意義。
本工具的主要功能分為兩個(gè)層次:底層是數(shù)據(jù)庫(kù)軟件的安全管理,上層是Wonderware Intrack的應(yīng)用層配置管理,數(shù)據(jù)庫(kù)是聯(lián)系兩個(gè)層次的紐帶。
主流數(shù)據(jù)庫(kù)都有完備的安全機(jī)制,主要包括用戶管理、角色管理和權(quán)限管理等。Oracle還有更為細(xì)粒度的管理機(jī)制,如概要文件管理,用以控制對(duì)口令文件和內(nèi)核資源的使用[4]。SQL Server則是以內(nèi)部機(jī)制自動(dòng)管理內(nèi)部資源[5]。由于Oracle的角色管理比SQL Server更加細(xì)粒度化,不適合集成。因此,本工具將安全管理的重點(diǎn)放在用戶管理、權(quán)限管理和SQL導(dǎo)出等通用功能的集成上。其中權(quán)限管理是核心,包括用戶對(duì)各種數(shù)據(jù)庫(kù)對(duì)象的操作,比如表、過(guò)程、視圖。在普通數(shù)據(jù)庫(kù)客戶端軟件中,這種管理有諸多不便,例如如果要知道某個(gè)用戶擁有哪些對(duì)象的權(quán)限,只能通過(guò)復(fù)雜的查詢來(lái)弄清楚;又如要將數(shù)據(jù)導(dǎo)出,客戶端需要直接操作數(shù)據(jù)庫(kù),會(huì)帶來(lái)安全隱患。因此,集成數(shù)據(jù)庫(kù)安全管理工具需要能夠針對(duì)不同數(shù)據(jù)庫(kù)平臺(tái)做出不同的操作,達(dá)到在同一系統(tǒng)下實(shí)現(xiàn)多實(shí)例、多平臺(tái)安全管理的目的。
ModelMaker是Wonderware Intrack的單實(shí)例管理后臺(tái),本工具通過(guò)模擬ModelMaker的連接過(guò)程,把ModelMaker的連接集成到數(shù)據(jù)庫(kù)連接中。這樣設(shè)計(jì)的好處是:①簡(jiǎn)化了Wonderware Intrack的實(shí)例切換;②把ModelMaker擴(kuò)展成為多實(shí)例管理后臺(tái)。另外,由于Wonderware Intrack提供了豐富的API,本工具也集成了Wonderware Intrack的常用配置功能,包括用戶管理和機(jī)臺(tái)物料的配置。
如上所述,本文需要設(shè)計(jì)一個(gè)集成數(shù)據(jù)庫(kù)安全機(jī)制管理平臺(tái),包括Oracle和SQL Server的用戶管理、權(quán)限管理和SQL導(dǎo)出,并利用ModelMaker的開(kāi)放平臺(tái)將Wonderware Intrack的安全和配置管理集成到系統(tǒng)中。安全管理工具的框架結(jié)構(gòu)如圖1所示。
圖1 安全管理工具的框架結(jié)構(gòu)
集成數(shù)據(jù)庫(kù)安全管理平臺(tái)包括用戶登錄、用戶管理、權(quán)限管理和SQL導(dǎo)出四個(gè)模塊。本工具所有的數(shù)據(jù)庫(kù)操作都是可視化運(yùn)行,運(yùn)行腳本可從臨時(shí)SQL文件中查看,運(yùn)行結(jié)果保存在日志文件中。
用戶登錄集成數(shù)據(jù)庫(kù)安全管理平臺(tái),需要選擇相應(yīng)數(shù)據(jù)庫(kù)。如果需要同時(shí)對(duì)ModelMaker進(jìn)行用戶管理,需要選擇同時(shí)登錄ModelMaker,輸入相應(yīng)管理員賬號(hào)密碼登錄。數(shù)據(jù)庫(kù)實(shí)例通過(guò)XML文件預(yù)先定義,包括實(shí)例名稱(chēng)和類(lèi)型,配置格式圖2所示。其中,
圖2 數(shù)據(jù)庫(kù)實(shí)例定義
用戶管理的主要功能包括:①創(chuàng)建和刪除數(shù)據(jù)庫(kù)用戶;②更改用戶信息,包括授予或者回收角色、密碼;③顯示和更改用戶的使用狀態(tài),包括鎖定/解鎖/過(guò)期。用戶管理用到的表和視圖如表1所示。
表1 用戶管理相關(guān)表和視圖
由于SQL Server沒(méi)有直接提供狀態(tài)變更功能,需要修改表sysxlogins中的保留字段xstatus實(shí)現(xiàn),在多次實(shí)驗(yàn)后,本工具采用的實(shí)現(xiàn)方式如下:
xstatus = xstatus& (~2048)
在當(dāng)前狀態(tài)下,通過(guò)對(duì)xstatus的變更可以實(shí)現(xiàn)狀態(tài)在正常、鎖定和過(guò)期之間的轉(zhuǎn)換。
權(quán)限管理是系統(tǒng)的核心功能,本工具實(shí)現(xiàn)的功能有:①顯示所有的用戶概要文件、用戶、角色和數(shù)據(jù)庫(kù)對(duì)象權(quán)限,以及對(duì)應(yīng)的使用狀態(tài),在SQL Server中,本文用自定義角色取代Oracle的用戶概要文件;②將數(shù)據(jù)庫(kù)對(duì)象的權(quán)限授予指定用戶;③回收用戶擁有的數(shù)據(jù)庫(kù)對(duì)象權(quán)限。權(quán)限管理用到的表和視圖如表2所示。
表2 權(quán)限管理相關(guān)表和視圖
本工具實(shí)現(xiàn)了將表和視圖的數(shù)據(jù)通過(guò)SQL以拼接的形式導(dǎo)出。用戶可以選擇表或者視圖,輸入所需的條件,本工具可以將相關(guān)數(shù)據(jù)生成可直接運(yùn)行的SQL腳本,這是一種更安全、更簡(jiǎn)便的數(shù)據(jù)導(dǎo)出方式。SQL導(dǎo)出用到的表和視圖如表3所示。
表3 SQL導(dǎo)出相關(guān)的表和視圖
如果用戶登錄系統(tǒng)的同時(shí)也選擇登錄ModelMaker,則用戶可以在系統(tǒng)中進(jìn)行Wonderware Intrack的配置。為了實(shí)現(xiàn)與ModelMaker的連接,本工具需要把Wonderware安裝后對(duì)應(yīng)的配置連接庫(kù)文件導(dǎo)入系統(tǒng),然后通過(guò)Wonderware的API連接到Wonderware服務(wù)器,語(yǔ)句如下:
OLE_CreateObject(%ItDlg, "InTrack.Dialog.Connect");
%ItDlg.Launch();
登錄成功后,當(dāng)前客戶端的ModelMaker連接已經(jīng)設(shè)為所連接的數(shù)據(jù)庫(kù),所以可以直接從系統(tǒng)登錄ModelMaker。本工具Wonderware Intrack的配置通過(guò)API實(shí)現(xiàn),以用戶創(chuàng)建為例,語(yǔ)句如下:
InUser.Create(user_name, password, InSecuritygroup, InUsercertification);
其中InUser是Intrack用戶對(duì)象,InSeuritygroup是權(quán)限組,InUsercertification是用戶認(rèn)證,user_name和password是新建用戶賬號(hào)。
該集成數(shù)據(jù)庫(kù)管理工具操作簡(jiǎn)單,實(shí)現(xiàn)了Wonderware Intrack和數(shù)據(jù)庫(kù)的登錄和安全管理的集成,可以實(shí)現(xiàn)對(duì)Wonderware Intrack的基本安全配置,能對(duì)多實(shí)例、多平臺(tái)下的Oracle或者SQL Server數(shù)據(jù)庫(kù)的用戶、角色、權(quán)限、數(shù)據(jù)快捷準(zhǔn)確配置,切換方便,能夠滿足大多數(shù)情況下的數(shù)據(jù)庫(kù)安全管理要求。
另外,該工具具有一定伸縮性,可以單獨(dú)實(shí)現(xiàn)對(duì)Oracle和SQL Server數(shù)據(jù)庫(kù)的安全管理。