數據庫系統原理--實驗三 數據庫的安全性與完整性--習題

一、題目

3.1數據庫安全性實驗

設有一個企業,包括採購、銷售和客戶管理等三個部門,採購部門經理 David,採購員Emily; 銷售部門經理Tom,銷售員Jane;客戶管理部門經理Kathy,職員Mike。該企業一個信息系統覆蓋採購、銷售和客戶管理等三個部門的業務,其數據庫模式爲TPCH數據模式。針對此應用場景,使用自主存取控制機制設計一個具體的權限分配方案。
1、創建用戶
(1)爲採購、銷售和客戶管理等三個部門的經理創建用戶標識和用戶口令。
(2)爲採購、銷售和客戶管理等三個部門的職員創建用戶標識和用戶口令。
2、創建角色並分配權限
(1)爲各個部門分別創建一個查詢角色,並分配相應的查詢權限。
(2)爲各個部門分別創建一個職員角色,對本部門信息具有查看、插入權限。
(3)爲各部門創建一個經理角色,相應角色對本部門的信息具有完全控制權限,對其他部門的信息具有查詢權。
3、給用戶分配權限
(1)給各部門經理分配權限。
(2)給各部門職員分配權限。
4、回收角色或用戶權限
(1)收回客戶經理角色的採購信息查看權限。
(2)回收Mike的客戶部門職員權限。
5、驗證權限分配正確性
(1)以David用戶名登錄數據庫,驗證採購部門經理的權限。
(2)回收Mike的客戶部門職員權限。

3.2數據庫完整性實驗

打開ScoreDB數據庫,完成以下操作:
(1)分別定義ScoreDB數據庫中各基表的主鍵、外鍵,實現實體完整性約束和參照完整性約束;
(2)往student表插入一條跟已有的學號相同的學生數據,驗證實體完整性約束;
(3)向score表中插入一條數據,其中數據中的課程編號是課程表中沒有的,驗證參照完整性約束;
(4)修改score表中一條數據的課程編號,該編號是課程表中沒有的,驗證參照完整性約束;
(5)刪除student表中的一條數據(其中學號出現在score表中),驗證參照完整性約束。
(6)增加score表的約束條件,要求成績在0-100之間。增加student表的約束條件,要求性別只允許取“男”或“女”。
(7)創建一個觸發器student_update,實現功能:如果在學生表中修改了學號,則自動修改成績表中的學號。
(8)創建一個級聯刪除觸發器student_delete。要求:當從學生表中刪除某學生信息時,同時刪除score表中此學生相關的選課記錄。
(9)創建一個觸發器student_insert,實現功能:如果往學生表中插入數據,則自動修改班級表中的班級人數classNum。(如果改爲刪除數據,代碼要怎麼改?)
(10)建立一個觸發器course_check,每當刪除課程表中記錄時,先檢查此課程是否已被選修,如選修則不允許刪除,且給出提示信息“此課程已有學生選修,無法刪除!”。

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