數據庫完整性和安全性

在我們對數據庫中的數據進行修改插入的時候,如果對數據都進行完整性的檢測會增加我們的麻煩,
現在把數據的完整性約束作爲數據庫有的一部分既可防止數據庫的破壞,又可以提高完整性約束的檢測
實體完整性約束和主碼:
實體的完整性,一旦某個屬性被定義爲主碼之後,該屬性的值就不可以爲空,而且不可以出現重複的現象,對於完整性
約束的添加,在sql語句中有兩種定義形式
<span style="font-size:18px;">CREATE TABLE STUDENT(
	SNO INT PRIMIRY KEY
	PRIMIRY KEY (SNO));</span>

一些約束通過外部碼約束實現的,也就是說這些相互約束是根據

<span style="font-size:18px;">CREATE TABLE STUDENT(
	CNO CHAR (2) REFERENCE CLASS (CNO));</span>

學生的班級信息必須是要在在班級的表中含有的,而且被作爲外部碼的屬性,必須是在另一個表中被說明爲主碼或者是加上了unique約束,用戶自定義完整性約束利用check語句,通過check語句,我們可以更好的約束屬性值。
<span style="font-size:18px;">AGE INT CHECK (AGE > 18 AND AGE <= 60)
CHECK (DNO IN (SELECT DNO FROM DEPARTMENT))</span>

約束的更新

刪除當前已有的完整性約束:

<span style="font-size:18px;">ALTER TABLE STUDENT
DROP CONSTRAINT DF_SNO;</span>
添加完整性約束:
<span style="font-size:18px;">ALTER TABLE STUDENT
ADD UNIQUE (SNO);

ALTER TABLE STUDENT
ADD CONSTRAINT UN_SNO ;</span>

數據庫的安全性問題

對於數據庫的安全性問題,爲保護數據庫數據的安全性,常採用的方式是以下幾種:

1.用戶標示和鑑別,每一個用戶擁有自己的登錄口令。

2.訪問控制,對於不同的用戶對數據庫數據的操作擁有不同的權限。

3.強制存取控制方法,該方法是在訪問控制上的一個更新,對數據和用戶劃分密級,在操作的時候將密級進行一個比較,然後最終確定用戶的讀寫。

4.視圖和查詢修改,通過視圖隱藏一部分數據,查詢修改就是在用戶執行查找操作的時候,提前做一個優化,選擇性的輸出部分查詢結果。

5.跟蹤審計,對於用戶的操作做一個記錄,分析用戶的操作來判斷用戶是否存在入侵數據庫的行爲。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章