• 沒有找到結果。

資料庫安全 一、

N/A
N/A
Protected

Academic year: 2021

Share "資料庫安全 一、"

Copied!
1
0
0

加載中.... (立即查看全文)

全文

(1)

資料庫安全

一、VB 環境下使用 DAO 物件 (一) 鎖住資料庫

指令:Set db =DbEngine.OpenDatabase([資料庫名稱], True) 第二個參數True 代表開啟之資料庫排他性(Exclusive)設成真。

(二) 鎖住資料表

指令:Set rs =db.OpenRecordset([資料表名稱],[開啟型態], [鎖定型態]) 鎖定型態:dbDenyRead (=2):拒絕他人讀取

dbDenyRead (=1):拒絕他人寫入

dbDenyRead+ dbDenyRead (=3):拒絕他人讀和寫 (三) 鎖住資料頁 (2K 空間)

指令:rs.LockEdits = True (悲觀型), False (樂觀型)

鎖定型態:悲觀型:執行Edit 或 AddNew 時,資料頁即上鎖,一直到執行 Update 或 Cancel 才解除。

樂觀型:執行Edit 或 AddNew 時,資料頁並不上鎖,在執行 Update 時才上鎖

註:在執行rs.Update 時,可在此指令後下達 DbEngine.Idle dbFreeLOcks 指令,

強制VB 暫停,讓開啟之資料及更新資料,可以確保程式中的資料是最新 的版本。所有的ODBC 資料來源都只用樂觀型鎖定。

(四) 交易處理

交易指令:Workspace(0).BeginTRans,必須在建立 Recordset 物件前下達這個 指令

確認指令:Workspace(0).CommitTrans,完成資料異動後下達此指令,將異動 資料寫入資料庫,處理方式是以批次方式進行。

取消異動:Workspace(0).Rollback,取消所有異動動作。

註:交易進行時,是在本機暫時目錄下進行,因此需要足夠之磁碟空間,方可 成功進行異動作業。進行交易處理時,通常將資料庫啟成排他性。

二、 ASP 環境下使用 ADO 物件 之 Recordset Open 方法

指令:rs.Open [SQL 指令], [資料庫連線], [資料集類型], [記錄鎖定類型]

(一) 資料集類型:

1. adOPenForwardOnly (=0):唯讀,記錄只能往前移動 2. adOPenStatic (=3):唯讀,記錄可自由移動

(2)

3. adOpenKeyset (=1):可讀寫,記錄可自由移動 4. adOpenDynamic (=2) :可讀寫,記錄可自由移動

3 和 4 均可同時讓多人共用資料庫,但方法 3 無法看到他人新增的記錄(除非 重新開啟資料庫),方法 4 則可以看到他人新增的記錄。

(二) 記錄鎖定類型

1. adLockReadOnly (=1):預設值,用來開啟唯讀的記錄 2. adLockPessimistic (=2):悲觀鎖定

當欲更新某筆記錄時,該筆記錄即進入鎖定狀態,不允許他人更新該筆資料。

更新記錄指令:rs.Update

取消更新記指令:rs.CancelUpdate 3. adLockOptimistic (=3):樂觀鎖定

假定不會有兩個程式同時更新同筆資料,只在資料寫入資料庫時,才鎖定該 筆記錄。

更新記錄指令:rs.Update

取消更新記錄指令:rs.CancelUpdate

4. adLockBatchOptimistic (=4):批次樂觀鎖定

更新資料時暫時不鎖定記錄,只在呼叫UpdateBatch 時才鎖定欲更新的記錄 更新記錄指令:rs.UpdateBatch

取消更新記錄指令:rs.CancelBatch (三) 交易處理:異動大量資料時

建議採用Recordset 物件,不要採用 SQL 指令,因一旦下達 SQL 指令,異 動資料立即寫入資料庫而無反悔之機會。使用Recordset 物件,可使用

CancelUpdate 指令來取消更新動作。

交易指令:conn.BeginTRans,必須在建立 Recordset 物件前下達這個指令 確認指令:conn.CommitTrans,完成資料異動後下達此指令,將異動資料寫入

資料庫,處理方式是以批次方式進行。

取消異動:conn.RollbackTrans,取消所有異動動作。

註:交易進行時,是在本機暫時目錄下進行,因此需要足夠之磁碟空間,方可 成功進行異動作業。

(3)

三、異動資料之四個安全要素 (一) 單元性:Atomicity

異動資料時,將待異動之資料看成一個整體,必須將整個異動動作執行完 畢,異動期間若發生錯誤或中斷,則必須將異動過的資料回復至異動前的原點 (RollBack 動作)。一般說來,發生撤回(RollBack)之原因有三:

1. 由異動本身所發出:肇因於異動條件不足,資料錯誤,或使用者要求。

2. 由系統本身所發出:肇因於異動資料太大,或是系統本身發生死結。

3. 當機或無法抗拒之意外狀況。

(二) 並行性:Concurrency

一個應用系統在處理資料庫時,同時可能有數個程式等待執行。為了執行 效率及均衡各異動之反映時間,需要將原先以依序方式執行之程式,改成分段 且得以同時執行,其執行結果應與依序執行之結果完全相同,符合此條件則稱 此應用程式具並行性。

(三) 隔離性:Isolation

資料異動期間,系統所產生之中間結果不能透露給其他應用程式讀取或修 改,此項特性稱之為隔離性。

(四) 持續性:Durability

如果異動執行過程完全正常,即可透過「委任」(Commit)指令將異動資料反 應到資料庫內。若系統發生錯誤時,應利用各種方法,儘全力恢復資料庫之正確 此項特性稱之為持續性。常用的做法有:

1. 定期備分資料(Backup) 2. 磁碟副本(Disk Mirroring)

3. 將運算資料(Operational Data)與異動記錄(Transaction Log)分開存放 4. 擬定完整的企業備分策略

(4)

使用者權限管理 – Access 環境下

一、使用者及群組權限管理 (一) 設定

(二) 變更

(三) 群組管理

(5)

(四) 群組成員管理

(五) 群組及成員密碼管理

(6)

參考文獻

相關文件

2.熟 悉 Microsoft Windows Server 作 業 系 統 、 Microsoft SQL Server 資料庫伺服器及網 頁伺服器等環境。. 3.具撰寫 JAVA

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系統環境 下,將給與的紙本或電子檔(如 excel

一、為避免受詴者併用 sulfasalazine 與 methadone ,而因藥物交互作用造成暴露量 升高產生安全性疑慮,請貴院於詴驗執行前 補足下列藥物交互作用資料。(一)Transporter

本次修正是因藥物 Canagliflozin 詴驗團隊發布之 安全性資訊更新資料顯示,比較使用詴驗藥物 Canagliflozin

、專案管理廠商及監造單位相關資料送政府採購法主管機關

下列哪一種記憶體屬於非揮發性記憶體, 不會因電源關閉而使其中的資料消 失, 但是可以透過電壓的方式重複抹除資料, 可用於基本輸入/ 輸出系統 (Basic Input / Output System,BIOS)

利用 Microsoft Access 資料庫管理軟體,在 PC Windows 作業系 統環境下,將給與的紙本或電子檔(如 excel