當前位置:首頁 » 編程語言 » sql文件加密
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql文件加密

發布時間: 2023-05-28 23:33:19

sql數據文件怎麼加密

首先要說明不能限制 「誰」,只能限制部分人

其次是加密數據肯定要降低效率

一般情況你數據表中數據不用全部加密,某些關鍵欄位加密就行了

但是你這個只能用可逆轉加密,而且加密後 查詢檢索會麻煩些

不能直接復制,使用 Blob 欄位就類型就行了

要加密簡單點用 Base64編碼好了,也不能直接復制,肉眼看不出來,拿走也不能直接用

其它的加密方式 效果好些,但效率就低了。

② 教你如何在SQL Server資料庫中加密數據

為了防止某些別有用心的人從外部訪問資料庫 盜取資料庫中的用戶姓名 密碼 信用卡號等其他重要信息 在我們創建資料庫驅動的解決方案時 我們首先需要考慮的的第一條設計決策就是如何加密存儲數據 以此來保證它的安全 免受被他人窺測

SQL Server中有哪一種支持可以用於加密對象和數據?從一開始就討論一下SQL Server欠缺什麼是明智的 或者是對於SQL Server中的加密部分你不應該做什麼

首先 SQL Server有兩個內置的密碼函數——即 pwdencrypt() 和 pwdpare() 同時 還有兩個SQL Server用來管理密碼哈希的沒有正式記錄的函數:pwdencrypt() 將密碼哈希過後進行存儲; pwdpare()將提供的字元串與哈希後的字元串進行比較 不幸的是 這個哈希函數不是非常安全 它可以通過字典攻擊演算法被破解(類似命令行應用程序!)

這些函數隨著SQL Server的版本發展而不斷進行修改 這也是另一個沒有使用它們的原因 早期版本的SQL Server對密碼進行的哈希 在後來的版本中無法解密 所以如果你依賴一個版本中的函數 那麼當升級的時候 所有你的加密數據就都沒有用了 除非你可以首先對其解密——這也就違背了敏液加密的最初的目的

第二 你可能會嘗試去創建一個針對你的資料庫的自製的加密解決方案 但是有以下三個理由說明你不要這樣做:

除非你是加密專家 否則胡亂編寫的加密系統只會提供非常低級的價值不高的保護 新鮮的是 單向密碼哈希或者 ROTx 形式的加密幾乎不需要費事就可以被輕松打敗

如果由於你自己的能力的缺乏而導致加密被破解 那麼你的數據就完蛋了 你需要將所有的東西進行沒有加密的備份 是嗎?(即使你加密了 那裡有沒有安全漏洞?)

當市面上提供有專業級別的 具有工業強度的加密解決方案的時候 你就不值得花費時間去自己做 把你的時間用於構建一個好的 堅固的資料庫 而不是再重新發明一次車輪

那麼 什麼才是好的加密數據的方式呢?

對於新手 微軟提供了一個自己生成的加密解敗伏決方案 CryptoAPI 對於輕量級的加密 軍用級別的安全就不在考慮范圍之內 它具有相對容易實現的優勢:管理員可以安裝一個名為CAPI 的ActiveX 控制 它可以在T SQL存儲過程中提供CryptoAPI 功能 CAPI 支持察拿攜各種類型的雙向加密和單向哈希演算法 所以管理員可以挑選最適合應用程序的問題的部分

如果你對使用微軟的解決方案不感興趣 還有一些很好的第三方的方案可以使用 一家名為ActiveCrypt 的軟體有限責任公司製造了XP_CRYPT 它是SQL Server的插件 可以在視圖 程序和觸發器中通過擴展存儲過程和用戶自定義函數(在SQL Server 中)來完成加密 你可以下載一個支持無線的MD DES 以及SHA 哈希的免費版本的應用程序; 其他的加密模型就是在比特深度上進行的 (完全版本是無限的 )在你自己的代碼中 你可以使用XP_CRYPT 與ActiveX 控制一樣(在受限的免費版本中) 對於ASP程序員來說 一個名為AspEncrypt 的組件提供了一種將高級加密整合到你的代碼中的簡單方式

lishixin/Article/program/SQLServer/201311/22397

③ sql怎麼自動備份並將備份文件加密

SQL SERVER 定時自動備份,並將備份文件加密壓縮(2008-11-12 11:21:48)標簽:it 分類:操作系統@資料庫
最近因為公司要升級HR系統,我被安排管理這個項目,公司為了安全起見和我簽署了保密協議,按了手印責任就大了,所以要想辦法加強系統、應用、資料庫的安全,系統無法控制,應用的安全還不錯,所以我就著手做資料庫的安全,資料庫用戶及密碼都控制了,現在需要對自動備份的數據文件進行加密,以下就是我使用到的工具、方法和代碼共享出來,供大家參考。
第一個步驟:就是讓SQL Server自動備份資料庫,通過DB維護計劃完成,這個我就不詳細說了。
第二個步驟:就是加密並壓縮備份的資料庫文件。為了在備份後,馬上進行壓縮,最方便的就是直接使用SQL命令執行壓縮,由於WinRAR可以通過命令行調用,所以我們可以使用SQL Server中的xp_cmdshell命令來執行壓縮指令,同時通過其中的一些參數指定壓縮密碼,這樣加密壓縮就實現了。(為了實現此功能,伺服器上要安裝WinRAR)
第三步驟:修改維護計劃里調用的SQL,在命令中輸入執行備份、加密、刪除備份的文件的存儲過程。

實施步驟和代碼:

1、在備份的資料庫中建立存儲過程

CREATE procere hrp_backup
--alter procere hrp_backup
WITH ENCRYPTION
AS
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@delcmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='D:/Database_bak/' --備份文件夾
set @datefile='HRM8_DBBAK_'+cast(Year(GetDate()) as varchar(4))+cast(Month(GetDate()) as varchar(2))+cast(Day(GetDate()) as varchar(2))
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile=@prefix+''+@datefile+'.rar'
BACKUP DataBASE HRM8 TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'HR數據備份', NOSKIP , STATS = 10, NOFORMAT
--set @delcmd = 'del '+@prefix+ 'RAR/*.rar' --先清空RAR備份文件夾
set @rarcmd ='C:/Progra~1/WinRAR/WinRAR.exe a -ppassword -df -ep1 '+@rarfile+' '+@bakfile
-- -df壓縮後刪除文件 -ep1 從名稱中排除基本目錄
--將password改為您要設置的密碼,進行加密壓縮

--exec master..xp_cmdshell @delcmd
exec master..xp_cmdshell @rarcmd

Go
2、新建維護計劃,在Transact-SQL命令中執行以上的存儲過程。
exec hrp_backup
go

驗證調試成功。

④ sql server中怎麼給資料庫表中的用戶密碼加密

1、首先我們電腦上要安裝有SQL Server,然後要准備一個MDF資料庫文件。打開SQL Server。

⑤ sql 資料庫與客戶端的數據傳輸怎麼加密

1、需要看的那種加密會需要在客戶端獨立設置解密才行,這樣加大了編程工作量,數據在傳輸過程中。
2、高級版本的sqlserver已經加密,特別是帳號密碼不是明文傳輸。
3、加解密過程首先是CPU高開銷操作,過度頻繁一定會帶來性能問題
4、SQL Server 支持安全套接字層 (SSL),並且與 Internet 協議安全 (IPSec) 兼容。所以,sql server是支持在傳輸數據時進行加密的。

⑥ sql資料庫怎麼加密

SQL Server中的加密簡介
在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。這導致一個問題,資料庫中加密的數據僅僅是對某一特定程序有意義,而另外的程序如果沒有對應的解密演算法,則數據變得毫無意義。

到了SQL Server2005,引入了列級加密。使得加密可以對特定列執行,這個過程涉及4對加密和解密的內置函數

SQL Server 2008時代,則引入的了透明數據加密(TDE),所謂的透明數據加密,就是加密在資料庫中進行,但從程序的角度來看就好像沒有加密一樣,和列級加密不同的是,TDE加密的級別是整個資料庫。使用TDE加密的資料庫文件或備份在另一個沒有證書的實例上是不能附加或恢復的。

⑦ MD5如何對sql加密

對SQL加密?
SQL
SERVER
有自己的一套安全系統驗證,它做的已經很好了
一般我們對SQL的加密都是對裡面數據內容的加密,而常用的是密碼的加密
現在常用的加密是MD5,把用戶的密碼加密後,保存到SQL資料庫
還有一種是對分布式SQL的加密,就ASP.NET
2.0而言,可以在web.config文件里的SQL網路鏈接字元進行加密,以保證SQL
server的安全性
如有其他問題請提出,很高興為你解答

⑧ 請問SQL怎麼對數據進行加密

--以下代碼包括創建密鑰,加密,解密和刪除密鑰
/*
1.利用對稱密鑰
搭配EncryptByKey進行數據加密
使用DecryptByKey函數進行解密
這種方式比較適合大數據量
*/
='XIAOMA'
='ZXCCERTIFICATE',EXPIRY_DATE='2015/01/01'
CREATESYMMETRICKEYSYM_TOMWITHALGORITHM=
OPENSYMMETRICKEYSYM_
SELECTCONVERT(NVARCHAR(10),Decryptbykey((Encryptbykey(Key_guid('SYM_TOM'),N'TOM3'))))
CLOSESYMMETRICKEYSYM_TOM
DROPSYMMETRICKEYSYM_TOM
DROPCERTIFICATETOMCERT;
DROPMASTERKEY;
--或--
=AES_256ENCRYPTIONBYPASSWORD='ZXC123456'
='ZXC123456'
SELECTCONVERT(VARCHAR(10),Decryptbykey(Encryptbykey(Key_guid('ZXC'),'YHDH_C')))
CLOSESYMMETRICKEYZXC;
DROPSYMMETRICKEYZXC;
/*
2.利用非對稱密鑰
搭配EncryptByAsymKey進行數據加密
使用DecryptByAsymKey函數進行解密
用於更高安全級別的加解密數據
*/
='XIAOMA'
=RSA_2048ENCRYPTIONBYPASSWORD='ZXC123456'
(DECRYPTIONBYPASSWORD='ZXC123456')
SELECTCONVERT(VARCHAR(100),Decryptbyasymkey(Asymkey_id('ABC'),Encryptbyasymkey(Asymkey_id('ABC'),'ZXC123456')))
DROPASYMMETRICKEYABC;
DROPMASTERKEY
/*
3.利用憑證的方式
搭配EncryptByCert進行加密
DecryptByCert函數進行解密
比較類似非對稱密鑰
*/
='XIAOMA'
='ZXCCERTIFICATE',EXPIRY_DATE='2015/01/01'
SELECTCONVERT(VARCHAR(20),Decryptbycert(Cert_id('ZXC'),Encryptbycert(Cert_id('ZXC'),'123456')))
DROPCERTIFICATEZXC;
DROPMASTERKEY
--或--
='Mary5',
SECRET='123456';
ALTERLOGINUser1
ADDCREDENTIALAlterEgo
DropCREDENTIALAlterEgo
DROPCREDENTIALAlterEgo
/*
4.利用密碼短語方式
搭配EncryptBypassPhrase進行加密
使用DecryptByPassPhrase函數來解密
比較適合一般的數據加解密
*/
SELECTCONVERT(VARCHAR(100),Decryptbypassphrase('xiaoma',Encryptbypassphrase('xiaoma','123456')))