日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server 2005加密體系

瀏覽:184日期:2023-11-07 12:30:18

SQL Server 2005中引入了一套完整的加密方法,具體的術(shù)語呢就偷個懶不寫了,大家可以看BOL么。

大致的結(jié)構(gòu)呢就是在安裝sQL Server 2005的時候利用SQL Server服務賬號生成一個服務主密鑰Service Master Key,然后數(shù)據(jù)庫的管理員可以在數(shù)據(jù)庫上創(chuàng)建Database Master Key,當然也可以不創(chuàng)建,同時數(shù)據(jù)庫管理員可以為Database User創(chuàng)建證書、對稱密鑰或者非對稱密鑰。這三種對象都可以用于加密用戶數(shù)據(jù),但一般推薦利用證書簽署代碼,利用證書或者非對稱密鑰加密對稱密鑰,利用對稱密鑰加密用戶數(shù)據(jù)。

以下還是給一段代碼,因為考慮到我跟王輝兄弟當時在成都賓館里研究這個東西就是苦于找不到完整的范例代碼,后來還是GTEC的徐強大拿給了個Link,然后我們又東拼西湊才出了一段代碼,不敢獨享,拿來與大家分享。

先給利用證書簽署代碼的范例,這段代碼的好處是不用給Database User大的權(quán)限,就可以讓用戶修改部分數(shù)據(jù),這也是SQL Server 2005中權(quán)限粒度化的一種表現(xiàn):

--------------------------------------------------------------------------------

--創(chuàng)建實驗用數(shù)據(jù)庫USE masterIF EXISTS(SELECT [name] FROM sys.databases WHERE [name] = 'Sales')DROP DATABASE SalesCREATE DATABASE SalesIF EXISTS(SELECT principal_id FROM sys.server_principals WHERE [name] = 'ryan' AND [type] = 'S')DROP LOGIN ryanCREATE lOGIN ryan WITH PASSWORD = 'P@ssw0rd'IF EXISTS(SELECT principal_id FROM sys.server_principals WHERE [name] = 'teddy' AND [type] = 'S')DROP LOGIN teddyCREATE lOGIN teddy WITH PASSWORD = 'P@ssw0rd'

--創(chuàng)建用戶ryan,并創(chuàng)建數(shù)據(jù)庫主密鑰USE SalesIF EXISTS(SELECT * FROM sys.database_principals WHERE [name] = 'ryan' AND [type] = 'S')DROP User ryanCREATE USER ryan FOR LOGIN ryan WITH DEFAULT_SCHEMA = dboGO

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@ssw0rd'GO

--創(chuàng)建證書IF EXISTS(SELECT [name] FROM sys.certificates WHERE [name] = 'CERT_MAINTAIN')DROP CERTIFICATE CERT_MAINTAINCREATE CERTIFICATE CERT_MAINTAINWITH SUBJECT = 'Certificate For Database Maintainance',START_DATE = '01/01/2006',EXPIRY_DATE = '12/31/2015'GO

SELECT * FROM sys.certificates

--利用證書創(chuàng)建數(shù)據(jù)庫用戶,并授予該用戶管理數(shù)據(jù)庫用戶的權(quán)限CREATE USER USER_MAINTAIN FOR CERTIFICATE CERT_MAINTAINGRANT ALTER ANY USER TO USER_MAINTAIN

--創(chuàng)建存儲過程IF EXISTS(SELECT [name] FROM sys.procedures WHERE [name] = 'usp_AddUser')DROP PROCEDURE dbo.usp_AddUserGOCREATE PROCEDURE dbo.usp_AddUser@UserName varchar(50)ASIF EXISTS(SELECT * FROM sys.database_principals WHERE [name] = @UserName AND [type] = 'S')EXEC ('DROP USER ' + @UserName)

EXEC ('CREATE USER ' + @UserName)GO

--完成準備工作,開始測試加密GRANT EXEC ON dbo.usp_AddUser TO ryanEXECUTE AS LOGIN = 'ryan'BEGIN TRYEXEC dbo.usp_AddUser 'teddy'END TRYBEGIN CATCHSELECT ERROR_MESSAGE() AS 'Error Msg'END CATCHREVERT

--利用證書簽署存儲過程代碼ADD SIGNATURE TO dbo.usp_AddUser BY CERTIFICATE CERT_MAINTAINALTER CERTIFICATE CERT_MAINTAIN REMOVE PRIVATE KEY

--在此嘗試執(zhí)行腳本EXECUTE AS LOGIN = 'ryan'EXEC dbo.usp_AddUser 'teddy'REVERT

緊接上一篇,再給一段用密鑰加密數(shù)據(jù)的范例,這段代碼比較簡單,大黃不準像蹂躪大余一樣說我灌水!!!

--------------------------------------------------------------------------------

--創(chuàng)建實驗用數(shù)據(jù)庫USE masterIF EXISTS(SELECT [name] FROM sys.databases WHERE [name] = 'Sales')DROP DATABASE SalesCREATE DATABASE SalesIF EXISTS(SELECT principal_id FROM sys.server_principals WHERE [name] = 'ryan' AND [type] = 'S')DROP LOGIN ryanCREATE lOGIN ryan WITH PASSWORD = 'P@ssw0rd'IF EXISTS(SELECT principal_id FROM sys.server_principals WHERE [name] = 'teddy' AND [type] = 'S')DROP LOGIN teddyCREATE lOGIN teddy WITH PASSWORD = 'P@ssw0rd'GO

--創(chuàng)建用戶ryan,并創(chuàng)建數(shù)據(jù)庫主密鑰USE SalesIF EXISTS(SELECT * FROM sys.database_principals WHERE [name] = 'ryan' AND [type] = 'S')DROP User ryanCREATE USER ryan FOR LOGIN ryan WITH DEFAULT_SCHEMA = dboGOIF EXISTS(SELECT * FROM sys.database_principals WHERE [name] = 'teddy' AND [type] = 'S')DROP User teddyCREATE USER teddy FOR LOGIN teddy WITH DEFAULT_SCHEMA = dboGOCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'P@ssw0rd'GO--使用服務主密鑰加密數(shù)據(jù)庫主密鑰,--在此刪除,因為發(fā)現(xiàn)數(shù)據(jù)庫主密鑰創(chuàng)建時默認及利用服務主密鑰加密--利用服務主密鑰加密的數(shù)據(jù)庫主密鑰稱為自動密鑰管理--可以利用以下查詢語句是否啟用數(shù)據(jù)庫主密鑰的自動密鑰管理SELECT [name], is_master_key_encrypted_by_server FROM sys.databases WHERE [name] = 'Sales'--以下語句用于啟用數(shù)據(jù)庫主密鑰的自動管理--ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEYGO

--為ryan創(chuàng)建證書IF EXISTS(SELECT [name] FROM sys.certificates WHERE [name] = 'CERT_RYAN')DROP CERTIFICATE CERT_RYANCREATE CERTIFICATE CERT_RYAN AUTHORIZATION ryan--ENCRYPTION BY PASSWORD = 'P@ssw0rd' --建議不要使用密碼,因為經(jīng)過測試,是用密碼的證書是利用密碼保護, --而非數(shù)據(jù)庫主密鑰,可用以下語句測試證書的加密方法 --SELECT [name], pvt_key_encryption_type_desc FROM sys.certificates --WHERE [name] = 'CERT_DB'WITH SUBJECT = 'Certificate For Database',START_DATE = '01/01/2006',EXPIRY_DATE = '12/31/2015'GO--為teddy創(chuàng)建證書IF EXISTS(SELECT [name] FROM sys.certificates WHERE [name] = 'CERT_TEDDY')DROP CERTIFICATE CERT_TEDDYCREATE CERTIFICATE CERT_TEDDY AUTHORIZATION teddy--ENCRYPTION BY PASSWORD = 'P@ssw0rd' --建議不要使用密碼,因為經(jīng)過測試,是用密碼的證書是利用密碼保護, --而非數(shù)據(jù)庫主密鑰,可用以下語句測試證書的加密方法 --SELECT [name], pvt_key_encryption_type_desc FROM sys.certificates --WHERE [name] = 'CERT_DB'WITH SUBJECT = 'Certificate For Database',START_DATE = '01/01/2006',EXPIRY_DATE = '12/31/2015'GO

SELECT * FROM sys.certificates

--為ryan和teddy分別創(chuàng)建利用證書保護的對稱密碼CREATE SYMMETRIC KEY Key_SYM_RYAN AUTHORIZATION ryanWITH ALGORITHM = TRIPLE_DESENCRYPTION BY CERTIFICATE CERT_RYANGOCREATE SYMMETRIC KEY Key_SYM_TEDDY AUTHORIZATION teddyWITH ALGORITHM = TRIPLE_DESENCRYPTION BY CERTIFICATE CERT_TEDDYGO

--創(chuàng)建測試用表IF EXISTS(SELECT [name] FROM sys.tables WHERE [name] = 'encryption')DROP TABLE encryptionCREATE TABLE dbo.encryption (PT nchar(10),;;;;--Plain TextET varbinary(128),; --Encrypted Text)GOGRANT SELECT, INSERT ON encryption TO ryanGRANT SELECT, INSERT ON encryption TO teddy

--完成準備工作,開始測試加密EXECUTE AS LOGIN = 'ryan'OPEN SYMMETRIC KEY Key_SYM_RYAN DECRYPTION BY CERTIFICATE CERT_RYANINSERT INTO encryption VALUES (N'RYAN',EncryptByKey(Key_GUID('Key_SYM_RYAN'), N'RYAN'))CLOSE ALL SYMMETRIC KEYSREVERT

EXECUTE AS LOGIN = 'teddy'OPEN SYMMETRIC KEY Key_SYM_TEDDY DECRYPTION BY CERTIFICATE CERT_TEDDYINSERT INTO encryption VALUES (N'TEDDY',EncryptByKey(Key_GUID('Key_SYM_TEDDY'), N'TEDDY'))CLOSE ALL SYMMETRIC KEYSREVERT

--測試數(shù)據(jù)已經(jīng)被加密SELECT * FROM encryption

--解密數(shù)據(jù)EXECUTE AS LOGIN = 'ryan'OPEN SYMMETRIC KEY Key_SYM_RYAN DECRYPTION BY CERTIFICATE CERT_RYANSELECT PT, CONVERT(nchar,DecryptByKey(ET)) AS ET FROM encryptionCLOSE ALL SYMMETRIC KEYSREVERTEXECUTE AS LOGIN = 'teddy'OPEN SYMMETRIC KEY Key_SYM_TEDDY DECRYPTION BY CERTIFICATE CERT_TEDDYSELECT PT, CONVERT(nchar,DecryptByKey(ET)) AS ET FROM encryptionCLOSE ALL SYMMETRIC KEYSREVERT

sp; --而非數(shù)據(jù)庫主密鑰,可用以下語句測試證書的加密方法 --SELECT [name], pvt_key_encryption_type_desc FROM sys.certificates --WHERE [name] = 'CERT_DB'WITH SUBJECT = 'Certificate For Database',START_DATE = '01/01/2006',EXPIRY_DATE = '12/31/2015'GO

SELECT * FROM sys.certificates

--為ryan和teddy分別創(chuàng)建利用證書保護的對稱密碼CREATE SYMMETRIC KEY Key_SYM_RYAN AUTHORIZATION ryanWITH ALGORITHM = TRIPLE_DESENCRYPTION BY CERTIFICATE CERT_RYANGOCREATE SYMMETRIC KEY Key_SYM_TEDDY AUTHORIZATION teddyWITH ALGORITHM = TRIPLE_DESENCRYPTION BY CERTIFICATE CERT_TEDDYGO

--創(chuàng)建測試用表IF EXISTS(SELECT [name] FROM sys.tables WHERE [name] = 'encryption')DROP TABLE encryptionCREATE TABLE dbo.encryption (

相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
毛片在线网站| 欧美13videosex性极品| 久久不卡日韩美女| 欧美日韩亚洲一区三区| 日本午夜精品久久久久| 啪啪亚洲精品| 国产极品嫩模在线观看91精品| 国产亚洲欧美日韩在线观看一区二区| 日韩一二三区在线观看| 国产探花一区| 久久一区亚洲| 麻豆国产在线| 欧美精选一区二区三区| 久久成人亚洲| 欧美日韩视频免费看| 精品一区二区男人吃奶 | 日本在线观看不卡视频| 少妇精品久久久一区二区| 欧美一区二区三区免费看| 国产精品亚洲二区| 久久精品国产网站| 欧美成a人免费观看久久| 国产视频一区三区| 欧美一区激情| 日韩欧美在线中字| 蜜桃久久av| 日本成人在线网站| 久久精品国产亚洲aⅴ| 99精品视频在线| 激情综合网站| 久久精品72免费观看| 岛国精品一区| 久久在线电影| 婷婷成人av| 日本欧美不卡| 蜜桃视频第一区免费观看| 欧美日韩1区2区3区| 亚洲伊人av| 亚洲精选久久| 亚洲欧洲美洲av| 亚洲区国产区| 中文字幕高清在线播放| 视频一区二区中文字幕| 国际精品欧美精品| 成人影视亚洲图片在线| 欧美日韩四区| 久久99性xxx老妇胖精品| 99精品在线观看| 青青国产精品| 激情欧美国产欧美| 国产欧美88| 亚洲第一区色| 国产精品nxnn| 蜜桃伊人久久| 久久久天天操| 国产精品一站二站| 免费人成网站在线观看欧美高清| 精品国产精品国产偷麻豆| 亚洲日产国产精品| 久久女人天堂| 欧美亚洲自偷自偷| 视频一区在线播放| 999国产精品视频| 精品国内亚洲2022精品成人| 综合干狼人综合首页| 亚洲天堂成人| 福利一区视频| 免费在线亚洲| 欧美一区成人| 亚洲ww精品| 美国av一区二区| 免费视频国产一区| 婷婷综合六月| 美女高潮久久久| 99精品一区| 另类专区亚洲| 亚洲精品影视| 国产亚洲福利| 丁香婷婷久久| 日韩美女精品| 国产真实久久| 电影91久久久| 欧美黄页在线免费观看| 国产免费成人| 肉色欧美久久久久久久免费看| 亚洲精品一二| 亚洲无线一线二线三线区别av| 国产精品最新| 鲁大师成人一区二区三区| 日本免费新一区视频| 午夜电影亚洲| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 日韩免费久久| 欧美一区自拍| 午夜欧美精品久久久久久久| 国产suv精品一区二区四区视频 | 免费观看久久久4p| 99久久精品国产亚洲精品| 欧美日韩18| 美美哒免费高清在线观看视频一区二区| 久久uomeier| 国产精品99久久久久久董美香| 一二三区精品| 国产精品美女久久久浪潮软件| 蜜桃精品在线| 久久久久亚洲精品中文字幕| 国产日韩欧美中文在线| 亚洲影院天堂中文av色| 亚洲高清激情| 国产日韩一区二区三免费高清| 国产精品久一| 亚久久调教视频| 亚洲视频电影在线| 99re国产精品| 亚洲一区欧美二区| 好看的av在线不卡观看| 伊人精品一区| 久久精品国产大片免费观看| 国产中文字幕一区二区三区| 国产日韩欧美一区二区三区在线观看 | 欧美日本精品| 亚欧洲精品视频在线观看| 在线一区二区三区视频| 国产精品美女久久久浪潮软件| 蜜桃精品在线| 免费看的黄色欧美网站 | 一区二区三区四区日本视频| 国产suv精品一区二区四区视频| 久久一区欧美| 97视频热人人精品免费| 国产91欧美| 日本а中文在线天堂| 成人日韩av| 日韩欧美久久| 国产一精品一av一免费爽爽| 日韩精品乱码av一区二区| 国产乱子精品一区二区在线观看| 国产欧美大片| 精品99在线| 偷拍精品精品一区二区三区| 久久久五月天| 夜夜嗨一区二区三区| 在线精品一区| 国产探花在线精品| 日韩高清成人在线| 在线看片福利| 国产伊人精品| 伊人久久亚洲| 久热re这里精品视频在线6| 日韩激情综合| 欧美国产另类| 日韩欧美精品| 亚洲欧美日韩精品一区二区| 日本欧美在线| 精品久久电影| 国精品一区二区三区| 奶水喷射视频一区| 国产日韩视频在线| 97se综合| 玖玖玖国产精品| 国产精品密蕾丝视频下载| 亚洲三级精品| 成人精品亚洲| 亚洲午夜91| 日韩免费精品| 亚洲黄色免费av| 制服诱惑一区二区| 欧美片第1页综合| 日韩和的一区二在线| 91精品福利观看| 日本精品不卡| 婷婷综合福利| 在线中文字幕播放| 亚洲精品乱码日韩| а√天堂8资源在线| 激情视频一区二区三区| 日韩av一区二区三区四区| 国产精品yjizz视频网| 色婷婷久久久| 日本麻豆一区二区三区视频| а√天堂8资源中文在线| 美国三级日本三级久久99 | 亚洲欧美视频| 日韩专区视频网站| 久久中文字幕av一区二区不卡| 综合一区二区三区| 蜜桃av在线播放| 婷婷国产精品| 国产亚洲精品美女久久| 亚洲香蕉网站| 国产极品一区| 丝袜美腿高跟呻吟高潮一区| 久久久精品国产**网站| 久久中文字幕av| 免费高潮视频95在线观看网站| 亚洲不卡视频| 欧美成人高清| 久久免费福利| 亚洲另类黄色| 欧洲激情综合|