【正文】
安全性,右鍵用戶選擇屬性,添加安全對象。即一個用戶對 應一個登陸名,同樣一個登陸名也是對應一個用戶名,這里假設數(shù)據(jù)庫用戶user1對應登陸名zhangfaguang,這里并沒有指定default_schema,默認使用dbo作為架構(gòu)。它們不是主體,不能修改或刪除它們。 應用程序角色SQL Server sa 登錄名SQL Server sa 登錄名是服務器級的主體。SQL Server 2008系統(tǒng)有多種不同的主體,不同主體之間的關系是典型的層次結(jié)構(gòu)關系,位于不同層次上的主體其在系統(tǒng)中影響的范圍也不同。二 實驗平臺操作系統(tǒng):Windows 7 64位數(shù)據(jù)庫軟件:SQL Server 2008三 實驗準備研究具體DBMS所支持的安全性技術。在Microsoft SQL Server 2008系統(tǒng)中,通過身份驗證模式和主體解決這個問題。 Windows 域登錄名這是對早期版本的 SQL Server 的行為的更改。數(shù)據(jù)庫用戶對應于服務器登錄名以便登錄者可以操作數(shù)據(jù)庫。12345639。 5. 以user1的身份登錄SQL Server,選擇Student表,分別進行SELECT和INSERT操作,對比操作結(jié)果。,39。)執(zhí)行結(jié)果:系統(tǒng)拒絕執(zhí)行。執(zhí)行結(jié)果:系統(tǒng)拒絕執(zhí)行。操作權限包括:授予權限(GRANT):授予權限以執(zhí)行相關的操作。 把用戶user1添加到角色test_role中。 SQL語句:grant test_role to test_role2 這個是教材上的語法,與SQL Server 2008有所不同。拒絕角色test_role對Student表的SELECT,DELETE權限,再讓SELECT權限生效。視圖機制把要保密的數(shù)據(jù)對無權存取這些數(shù)據(jù)的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。 授予權限: grant select,update on IS_course to user1執(zhí)行結(jié)果:成功授權。更改:已知C1課程的學分為4,把這門課的學分修改成5。 (數(shù)據(jù)庫39。通過加密,使得未被授權的人在沒有密鑰或密碼的情況下所竊取的數(shù)據(jù)變得毫無意義。 每一個數(shù)據(jù)庫實例都擁有一個服務主密鑰,這個密鑰是整個實例的根密鑰,在實例安裝的時候自動生成,其本身由Windows提供的數(shù)據(jù)保護API進行保護。12345639。創(chuàng)建對稱密鑰:create symmetric key yes_keywith algorithm=des /*對稱加密算法des*/encryption by password=39。12345639。 利用非對稱密鑰對數(shù)據(jù)進行加密和解密 EncryptByKey()和 DecryptByKey()而where字句的作用是不導入舊表的數(shù)據(jù)信息,純屬建立只含列名的空表。執(zhí)行結(jié)果:(3行受影響)如圖所示:當然也可以用SQL語句驗證密碼列是否可被查詢到:select *from new_qq_xinxi執(zhí)行結(jié)果:密碼列同樣顯示空值,即無法被查詢到。密文轉(zhuǎn)換其實不難,關鍵在于理解如何正確使用密鑰給對應列加密,還有利用對應的轉(zhuǎn)換函數(shù)。已加密數(shù)據(jù)庫中的頁在寫入磁盤之前會進行加密,在讀入內(nèi)存時會進行解密。 創(chuàng)建主密鑰,maxsize=10MB) 執(zhí)行結(jié)果:命令成功執(zhí)行。use master gocreate server audit specification sp1 規(guī)范名稱for server audit a1 與規(guī)范關聯(lián)的審計add(successful_login_group),審計活動組add(failed_login_group)with(state=on) 啟用規(guī)范執(zhí)行結(jié)果:命令執(zhí)行成功。 查看審計記錄利用企業(yè)管理器中的日志文件查看器來查看審計數(shù)據(jù)。SQL Server2008的透明加密無疑是解決這個問題的好方法。數(shù)據(jù)庫用戶和數(shù)據(jù)庫角色持有架構(gòu)。審計活動是發(fā)生在數(shù)據(jù)庫里的一項具體活動,比如刪除數(shù)據(jù)或運行一個存儲過程。例如:創(chuàng)建一個審計,輸出應用程序日志,隊列延遲為2000毫秒。除了登錄/登出和權限更改的標準審計外,SQL Server 2008允許監(jiān)控數(shù)據(jù)的更改或訪問。即使不再對數(shù)據(jù)庫啟用 TDE,也應該保留加密證書或非對稱密鑰。TDE 保護“處于休眠狀態(tài)”的數(shù)據(jù),即數(shù)據(jù)和日志文件。然后解密:select name,qq,new_mima=convert(char(20),decryptbykey(new_mima))from new_qq_xinxi執(zhí)行結(jié)果:查詢已成功執(zhí)行。 打開密鑰利用對稱密鑰加密數(shù)據(jù)并插入新建的表insert new_qq_xinxi( name, qq, new_mima)select all name, qq, new_mima=EncryptByKey(KEY_GUID(39。如圖所示:解決這個加密問題需要兩大步驟,第一步先要實現(xiàn)需要加密的列的類型轉(zhuǎn)換和建立和原表列名相同的空表;第二步則開始往空表導入原表數(shù)據(jù),同時對“mima”列加密。SQL Server中的數(shù)據(jù)列加密: SQL Server在2005引入了列加密的功能。12345639。11/11/201239。每一個數(shù)據(jù)庫只能有一個數(shù)據(jù)庫主密鑰。對稱加密是那些加密和解密使用同一個密鑰的加密算法。)的SELECT 權限。收回用戶user1的對視圖IS_course的SELECT權限。權限驗證:用戶user1登錄zhangfaguang。實驗案列:建立IS系所開設的課程的