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

您的位置:首頁技術文章
文章詳情頁

SQL Server 2005加密體系

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

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

大致的結構呢就是在安裝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大的權限,就可以讓用戶修改部分數(shù)據(jù),這也是SQL Server 2005中權限粒度化的一種表現(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ù)庫用戶的權限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 (

相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产日韩欧美| 欧美亚洲一区二区三区| 国产激情在线播放| 国产亚洲欧美日韩在线观看一区二区 | 中文字幕在线视频久| 日韩一级欧洲| 99久久99久久精品国产片果冰| 国内揄拍国内精品久久| 麻豆国产精品一区二区三区| 国产精品草草| av免费不卡国产观看| 日韩一区二区久久| 日韩精品福利一区二区三区| 日韩美女精品| 国产日本亚洲| 久久精品国产99国产| 色爱综合网欧美| 免费视频国产一区| 亚洲免费福利一区| 久久av偷拍| 蜜桃伊人久久| 久久久精品区| 亚洲一区二区免费看| 久久国产高清| 91综合视频| 伊人久久成人| 国语对白精品一区二区| 欧美粗暴jizz性欧美20| 91亚洲精品视频在线观看| 欧美天堂视频| 视频一区在线播放| 日韩av专区| 国产精品久久久久久久免费软件 | 免费日韩av片| 久久久91麻豆精品国产一区| 蜜桃免费网站一区二区三区| 亚洲二区在线| 国产精品国码视频| av一区二区高清| 国产精品白丝一区二区三区| 鲁大师影院一区二区三区| 91精品亚洲| 久久国产免费| 久久精品免费看| 中文字幕日本一区| 欧美~级网站不卡| 国产中文欧美日韩在线| 日本少妇一区二区| 免费在线观看一区二区三区| 亚洲午夜黄色| 成人午夜网址| 精品国产一区二| 日本麻豆一区二区三区视频| 一区二区精彩视频| jiujiure精品视频播放| 国产精品成人一区二区不卡| 国产美女视频一区二区| 国产精品色婷婷在线观看| 午夜亚洲精品| 在线亚洲欧美| 欧美精品一卡| 蜜臀va亚洲va欧美va天堂| 高清av不卡| 亚洲天堂久久| 在线看片日韩| 亚洲精品少妇| 欧美日本不卡| 国产精品男女| 99久久夜色精品国产亚洲狼 | 精品香蕉视频| 久久久精品久久久久久96 | 蜜桃视频一区二区三区 | 亚洲最大av| 国产精品115| 精品一区免费| 蜜臀av性久久久久蜜臀aⅴ流畅| 免播放器亚洲一区| 欧美影院视频| 99免费精品| 免费看欧美美女黄的网站| 国产欧美69| 天堂资源在线亚洲| 蜜臀av亚洲一区中文字幕| 日韩成人午夜精品| 免费在线观看一区| 香蕉久久久久久久av网站| 国产色综合网| 日韩**一区毛片| 亚洲天堂成人| 青青伊人久久| 日韩中文欧美| 免费看黄色91| 99精品国产一区二区三区| 一区二区三区网站| 国产精品久久久久久久免费观看| 91精品啪在线观看国产18| 欧美视频久久| 久久精品卡一| 日本欧美大码aⅴ在线播放| 精品国产乱码| 欧美一级二区| 日产精品一区| 国内精品麻豆美女在线播放视频| 天堂资源在线亚洲| 国产精品色婷婷在线观看| 夜夜嗨一区二区三区| 国产精品不卡| 久久麻豆视频| 久久av网站| 国产精品www.| 欧美日韩xxxx| 欧美在线综合| 不卡中文一二三区| 久久精品观看| 成人美女视频| 精品久久免费| 深夜日韩欧美| 日韩av一二三| 99视频精品| 日韩制服丝袜先锋影音| 午夜在线精品偷拍| 日韩精品一二三| 日韩激情啪啪| 亚洲综合色婷婷在线观看| 在线日韩视频| 亚洲欧美久久| 黑丝一区二区三区| 亚洲乱码视频| 日韩影院在线观看| 国产一区二区精品| 日本在线一区二区三区| 国产精品三上| 99热精品在线| 日韩av资源网| 国产欧美自拍| 国产一区二区三区不卡视频网站 | 日本免费一区二区三区四区| 91精品韩国| 蜜臀av一区二区在线免费观看| 99国产精品久久久久久久| 中文亚洲免费| 婷婷综合国产| 国产精品探花在线观看| zzzwww在线看片免费| 久久午夜影视| 精品中国亚洲| 亚洲黄页一区| 国产精品2区| 香蕉成人av| 免费观看日韩电影| 欧美自拍一区| 国产精品美女久久久| 麻豆成人91精品二区三区| 欧美日韩在线二区| 日本aⅴ免费视频一区二区三区| 日韩a一区二区| 六月婷婷一区| 久久精品二区亚洲w码 | 久久精品72免费观看| 福利一区二区免费视频 | 国产亚洲久久| 一本一本久久| av中文资源在线资源免费观看| 91久久久精品国产| 国产精品最新| 天堂日韩电影| 国产一区二区三区天码| 日韩中文字幕视频网| 国产aa精品| 国产精品115| 欧美在线观看天堂一区二区三区| av资源亚洲| 国产日韩欧美中文在线| 婷婷丁香综合| 欧美在线观看视频一区| 福利在线一区| 日产午夜精品一线二线三线| 国产精品第一国产精品| 国产视频网站一区二区三区| 亚洲区第一页| 中文一区一区三区免费在线观| 91精品亚洲| 九九久久国产| 亚洲精品大全| 一区在线免费观看| 国产a亚洲精品| 国产精品成久久久久| 精品免费av一区二区三区| 日本欧美在线看| 欧美日韩精品免费观看视频完整| 国产videos久久| 午夜影院一区| 久久亚洲成人| 热三久草你在线| 日韩成人免费| 久久伊人亚洲| 日韩成人高清| 日韩精品一卡| 久久久久国产| 日韩午夜av在线|