国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

強(qiáng)化SQL Server數(shù)據(jù)庫安全(下)

2017-03-08 19:09
網(wǎng)絡(luò)安全和信息化 2017年4期
關(guān)鍵詞:字段數(shù)據(jù)表非對(duì)稱

SQL Server的常規(guī)數(shù)據(jù)加密

為了保護(hù)數(shù)據(jù)的安全,僅僅依靠權(quán)限控制是不夠的,通過對(duì)數(shù)據(jù)進(jìn)行加密,可以有效保護(hù)SQL Servr數(shù)據(jù)庫的安全。在SQL Server中,加密是分層級(jí)的,根層級(jí)的加密保護(hù)其下子層級(jí)的加密。每一個(gè)SQL Server實(shí)例都擁有服務(wù)主密鑰,這是整個(gè)實(shí)例的根密鑰。

數(shù)據(jù)庫主密鑰工作在數(shù)據(jù)庫級(jí)別,每一個(gè)數(shù)據(jù)庫只能存在一個(gè)主密鑰,可以使用T-SQL語句來創(chuàng)建數(shù)據(jù)庫主密鑰,例如執(zhí)行“CREATE MASTER KEY ENCRYPTION BY PASSWORD ='key123456'”語句,來創(chuàng)建數(shù)據(jù)庫主密鑰,這里的密碼為“key123456”。當(dāng)創(chuàng)建完畢后,可以使用其創(chuàng)建數(shù)據(jù)庫級(jí)別的證書和和非對(duì)稱密鑰。通過證書和非對(duì)稱密碼,可以保護(hù)對(duì)稱密鑰。使用證書、非對(duì)稱密鑰以及對(duì)稱密鑰,可以對(duì)數(shù)據(jù)進(jìn)行保護(hù)。例如,可以對(duì)數(shù)據(jù)表中特定的列進(jìn)行加密。

例 如, 執(zhí) 行“CREATE CERTIFICATE Certauser with SUBJECT = 'Test zhengshu'”語句,可以創(chuàng)建名為“Certauser”的證書,執(zhí) 行“CREATE ASYMMETRIC KEY CeshiAsymmetric WITH ALGORITHM = RSA_2048 ENCRYPTION BY PASSWORD ='password'”語句,可以創(chuàng)建 名 為“CeshiAsymmetric”的非對(duì)稱密鑰。執(zhí)行“CREATE SYMMETRIC KEY CeshiSymme tric WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD= 'password'” 語 句,可以創(chuàng)建名為“CeshiSymme tric”的對(duì)稱密碼。在目標(biāo)數(shù)據(jù)庫中打開“安全性”節(jié)點(diǎn)下打開“證書”,“非對(duì)稱密鑰”,“對(duì)稱密鑰”項(xiàng),可以看到以上創(chuàng)建的證書,非對(duì)稱密鑰以及對(duì)稱密鑰。

執(zhí)行語句“C R E A T E S Y M M E T R I C KEY SymmetricByCert WITH ALGORITHM = AES_256 ENCRYPTION BY CERTIFICATE Certauser”,可以根據(jù) Cert Test證書來創(chuàng)建對(duì)稱密鑰。在實(shí)際使用時(shí),需要配合對(duì)應(yīng)的加解密函數(shù)進(jìn)行操作。例如對(duì)某數(shù)據(jù)表中的列進(jìn)行加密時(shí),首先使用“CONVERT(varbinary(500),kahao)”函數(shù),對(duì)特定的列(這里為“kahao”)進(jìn)行類型轉(zhuǎn)換,將其轉(zhuǎn)換成Varbinary類型,在程序中的合適位置 執(zhí) 行“OPEN SYMMETRIC KEY SymmetricByCert DECRYPTION BY CERTIFICATE Certauser” 語 句,打 開被證書加密的對(duì)稱密鑰。 執(zhí) 行“kahao_encrypt= EncryptByKey(KEY_GUID('SymmetricByCert'),kahao),”之類的語句,對(duì)“kahao”列內(nèi)容進(jìn)行加密。

對(duì)于加密的數(shù)據(jù),按照常規(guī)方式查看時(shí),要么無法顯示,要么顯示雜亂。在解密時(shí),可以執(zhí)行“convert(nvarchar(25),DecryptByKey(kahao_encrypt))”之類的語句,對(duì)該字段的內(nèi)容進(jìn)行解密。當(dāng)然,為了便于加密,在創(chuàng)建數(shù)據(jù)表時(shí),對(duì)于需要加密的字段可以將其類型設(shè)置為“VARBINARY”,并創(chuàng)建所需的數(shù)據(jù)庫用戶名(如“sqluser”),為其賦予查看、插入、更新特定數(shù)據(jù)表的權(quán)限。執(zhí)行“CREATE CERTIFICATE CER_SK_sqluser AUTHORIZATION sqluser WITH SUBJECT='CERTIFICATE FOR ACCESS SYMMETRIC KEYS -FOR USE BY sqluser', start_date= '01/01/2016', EXPIRY_DATE = '12/31/2099'”語句,可針對(duì)sqluser用戶創(chuàng)建證書,并設(shè)置證書的可用期限。

執(zhí)行“CREATE SYMMETRIC KEY SK_EMPLOYEES_sqluser AUTHORIZATION sqluser WITH ALGORITHM=triple_des ENCRYPTION BY CERTIFICATE CER_SK_sqluser”語句,創(chuàng)建所需的對(duì)稱密鑰,名稱為“SK_EMPLOYEES_sqluser”。在程序的合適位置執(zhí)行“exec as login='slh'”語句,以該用戶身份登錄。執(zhí)行“INSERT INTO EMPLOYEE VALUES(1,'yonghu1','5000',ENCRYPTBYKEY(K EY_GUID('SK_EMPLOYEES_sqlserver'),'5000'))”之類的語句,對(duì)指定的字段進(jìn)行加密。執(zhí)行所有的加密操作后,執(zhí)行“CLOSE ALL SYMMETRIC KEYS”語句,關(guān)閉對(duì)稱密鑰。在解密時(shí),需要先執(zhí)行“OPEN SYMMETRIC KEY SK_EMPLOYEES_slh DECRYPTION BY CERTIFICATE CER_SK_sqluser”語句,打開對(duì)稱密鑰。之后執(zhí)行“SELECT EMPLOYEEID,SALARY,CONVER T(VARCHAR(1000),DECRYPTB YKEY(ENCRYPTSALARY)) AS SALARY1 FROM EMPLOYEE”之類的語句,對(duì)加密的字段進(jìn)行解密處理。但是當(dāng)使用別的用戶身份登錄時(shí),即使其擁有對(duì)該數(shù)據(jù)表的控制權(quán)也無法執(zhí)行解密操作,因?yàn)槠錄]有上述證書的所有權(quán)。

猜你喜歡
字段數(shù)據(jù)表非對(duì)稱
圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
湖北省新冠肺炎疫情數(shù)據(jù)表(2.26-3.25)
湖北省新冠肺炎疫情數(shù)據(jù)表
閥控非對(duì)稱缸電液伺服系統(tǒng)線性自抗擾控制
非對(duì)稱干涉儀技術(shù)及工程實(shí)現(xiàn)
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
CNMARC304字段和314字段責(zé)任附注方式解析
圖表
無正題名文獻(xiàn)著錄方法評(píng)述
非對(duì)稱換向閥在液壓缸傳動(dòng)系統(tǒng)中的應(yīng)用