【正文】
ic 數(shù)據(jù)庫角色。(1)身份驗(yàn)證模式 Microsoft SQL Server 2008系統(tǒng)提供了兩種身份驗(yàn)證模式:Windows身份驗(yàn)證模式和混合模式。(2)主體 主體是可以請(qǐng)求系統(tǒng)資源的個(gè)體或組合過程。這兩個(gè)實(shí)體是 SQL Server 所必需的。權(quán)限測(cè)試:create table test_create( test_sno char(10))執(zhí)行結(jié)果:成功生成test_create表。,39。 1)固定數(shù)據(jù)庫角色 2) 用戶自定義數(shù)據(jù)庫角色在實(shí)驗(yàn)四安全性數(shù)據(jù)庫角色中新建一個(gè)數(shù)據(jù)庫角色test_role。user139。12345639。權(quán)限驗(yàn)證:用戶user1登錄zhangfaguang。)的SELECT 權(quán)限。每一個(gè)數(shù)據(jù)庫只能有一個(gè)數(shù)據(jù)庫主密鑰。12345639。如圖所示:解決這個(gè)加密問題需要兩大步驟,第一步先要實(shí)現(xiàn)需要加密的列的類型轉(zhuǎn)換和建立和原表列名相同的空表;第二步則開始往空表導(dǎo)入原表數(shù)據(jù),同時(shí)對(duì)“mima”列加密。然后解密:select name,qq,new_mima=convert(char(20),decryptbykey(new_mima))from new_qq_xinxi執(zhí)行結(jié)果:查詢已成功執(zhí)行。即使不再對(duì)數(shù)據(jù)庫啟用 TDE,也應(yīng)該保留加密證書或非對(duì)稱密鑰。例如:創(chuàng)建一個(gè)審計(jì),輸出應(yīng)用程序日志,隊(duì)列延遲為2000毫秒。數(shù)據(jù)庫用戶和數(shù)據(jù)庫角色持有架構(gòu)。 查看審計(jì)記錄利用企業(yè)管理器中的日志文件查看器來查看審計(jì)數(shù)據(jù)。,maxsize=10MB) 執(zhí)行結(jié)果:命令成功執(zhí)行。已加密數(shù)據(jù)庫中的頁在寫入磁盤之前會(huì)進(jìn)行加密,在讀入內(nèi)存時(shí)會(huì)進(jìn)行解密。執(zhí)行結(jié)果:(3行受影響)如圖所示:當(dāng)然也可以用SQL語句驗(yàn)證密碼列是否可被查詢到:select *from new_qq_xinxi執(zhí)行結(jié)果:密碼列同樣顯示空值,即無法被查詢到。 利用非對(duì)稱密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密 EncryptByKey()和 DecryptByKey()創(chuàng)建對(duì)稱密鑰:create symmetric key yes_keywith algorithm=des /*對(duì)稱加密算法des*/encryption by password=39。 每一個(gè)數(shù)據(jù)庫實(shí)例都擁有一個(gè)服務(wù)主密鑰,這個(gè)密鑰是整個(gè)實(shí)例的根密鑰,在實(shí)例安裝的時(shí)候自動(dòng)生成,其本身由Windows提供的數(shù)據(jù)保護(hù)API進(jìn)行保護(hù)。 (數(shù)據(jù)庫39。 授予權(quán)限: grant select,update on IS_course to user1執(zhí)行結(jié)果:成功授權(quán)。拒絕角色test_role對(duì)Student表的SELECT,DELETE權(quán)限,再讓SELECT權(quán)限生效。 把用戶user1添加到角色test_role中。執(zhí)行結(jié)果:系統(tǒng)拒絕執(zhí)行。,39。12345639。這是對(duì)早期版本的 SQL Server 的行為的更改。在Microsoft SQL Server 2008系統(tǒng)中,通過身份驗(yàn)證模式和主體解決這個(gè)問題。SQL Server 2008系統(tǒng)有多種不同的主體,不同主體之間的關(guān)系是典型的層次結(jié)構(gòu)關(guān)系,位于不同層次上的主體其在系統(tǒng)中影響的范圍也不同。它們不是主體,不能修改或刪除它們。4. 分別通過SQL Server的工具和SQL語言授予數(shù)據(jù)庫用戶user1在Student表上的SELECT、DELETE權(quán)限 SQL語句:grant select on student to user1 grant delete on student to user1 企業(yè)管理器:進(jìn)入【實(shí)驗(yàn)四安全性】數(shù)據(jù)庫,右擊安全性,右鍵用戶選擇屬性,添加安全對(duì)象。2339。上面是運(yùn)用企業(yè)管理器的可視化操作直接創(chuàng)建了數(shù)據(jù)庫角色,這里同樣可以用SQL語句 實(shí)現(xiàn)。企業(yè)管理器:進(jìn)入角色屬性,然后添加角色成員。企業(yè)管理器:對(duì)著“應(yīng)用程序角色”新建程序角色,輸入角色名稱、架構(gòu)和密碼即可。然后查詢和修改“數(shù)據(jù)庫安全性”數(shù)據(jù)庫的視圖IS_course的數(shù)據(jù)。驗(yàn)證結(jié)果:成功收回uer1對(duì)視圖IS_course的查詢權(quán)限。實(shí)驗(yàn)案例:先創(chuàng)建一個(gè)數(shù)據(jù)主密鑰:create master key encryption by password =39。 查詢企業(yè)管理器是否生成對(duì)應(yīng)證書和密鑰,如圖:此外,對(duì)稱密鑰不僅可以通過密碼創(chuàng)建,還可以通過其它對(duì)稱密鑰,非對(duì)稱密鑰和證書創(chuàng)建。第一步:由于密碼不是Varbinary類型, 所以先要將mima列轉(zhuǎn)為Varbinary類型。成功獲取了密碼明文,如圖: 在解密的時(shí)候曾多次遇到無法恢復(fù)的情況,經(jīng)分析是由兩種情況所致。即使數(shù)據(jù)庫沒有加密,數(shù)據(jù)庫加密密鑰可能也保留在數(shù)據(jù)庫中,執(zhí)行某些操作時(shí)可能需要訪問這些加密密鑰。create server audit a2 to application_log with (queue_delay=2000) 創(chuàng)建服務(wù)器審計(jì)規(guī)范服務(wù)器審計(jì)規(guī)范是與一個(gè)特定的SQL Server審計(jì)相關(guān)的一個(gè)或多個(gè)服務(wù)器級(jí)別的審計(jì)活動(dòng)組的集合??梢娊巧珯C(jī)制是相當(dāng)便利的,直接給予角色特定權(quán)限,避免了對(duì)多個(gè)單用戶授權(quán)帶來的繁瑣。執(zhí)行這個(gè)語句后,SQL Server將開始審計(jì)指定的事件。d:\數(shù)據(jù)庫實(shí)驗(yàn)39。數(shù)據(jù)庫文件的加密在頁級(jí)執(zhí)行。from qq_xinxi 從舊表導(dǎo)入其他非加密數(shù)據(jù)。 利用證書對(duì)數(shù)據(jù)進(jìn)行加密和解密EncryptByAsymKey() 和 DecryptByAsymKey() /*證書過期日期*/注意格式:with后面含多個(gè)字句時(shí)用逗號(hào)分開。如圖: