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

sql引入了什麼存儲加密

發布時間: 2022-05-16 03:07:07

sql資料庫怎麼加密

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

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

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

② sql數據加密有幾種方法

對sql中的數據進行加密,有5種方法,

1、利用CONVERT改變編碼方式:

利用該函數把文字或數據轉換成VARBINARY。但該方式不具備保護數據的能力,僅避免瀏覽數據的過程中能直接看到敏感數據的作用。

2、利用對稱密鑰:

搭配EncryptByKey進行數據加密。使用DecryptByKey函數進行解密。這種方式比較適合大數據量。因為對稱密鑰的過程耗用資源較少。

3、利用非對稱密鑰:

搭配EncryptByAsymKey進行數據加密。使用DecryptByAsymKey函數進行解密。用於更高安全級別的加解密數據。因為耗用資源叫多。

4、利用憑證的方式:

搭配EncryptByCert進行加密和DecryptByCert函數進行解密。比較類似非對稱密鑰。

5、利用密碼短語方式:

搭配EncryptBypassPhrase進行加密,使用DecryptByPassPhrase函數來解密。可以使用有意義的短語或其他數據行,當成加密、解密的關鍵字,比較適合一般的數據加解密。

(2)sql引入了什麼存儲加密擴展閱讀:

sql資料庫的組成:

在正式學習SQL語言之前,首先讓我們對SQL語言有一個基本認識,介紹一下SQL語言的組成:

1、一個SQL資料庫是表(Table)的集合,它由一個或多個SQL模式定義。

2、一個SQL表由行集構成,一行是列的序列(集合),每列與行對應一個數據項。

3、一個表或者是一個基本表或者是一個視圖。基本表是實際存儲在資料庫的表,而視圖是由若干基本表或其他視圖構成的表的定義。

4、一個基本表可以跨一個或多個存儲文件,一個存儲文件也可存放一個或多個基本表。每個存儲文件與外部存儲上一個物理文件對應。

5、用戶可以用SQL語句對視圖和基本表進行查詢等操作。在用戶角度來看,視圖和基本表是一樣的,沒有區別,都是關系(表格)。

6、SQL用戶可以是應用程序,也可以是終端用戶。SQL語句可嵌入在宿主語言的程序中使用,宿主語言有FORTRAN,COBOL,PASCAL,PL/I,C和Ada語言等。

SQL用戶也能作為獨立的用戶介面,供交互環境下的終端用戶使用。

參考資料來源:網路-SQL資料庫

③ 請問sql server密碼應該用什麼數據類型來存儲請說明優點,謝謝!

用nvarchar
首先是字元串
所以
是char和nvarchar
但是char會用空格不足長度,也就是說輸入是test,實際存儲的是test+6個空格(以10位為例),這樣以後密碼校對的時候會死活校對不上
但nvarchar是輸入多少就是多少
當然了,你要用MD5加密。長度可以設32

④ SQL數據文件怎麼加密

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

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

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

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

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

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

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

⑤ 關於在SQl里對欄位進行MD5加密存儲的

md5加密有相關的加密函數,但不是在資料庫中操作的,資料庫只是來保存加密的結果字元串。

加密的話你找相關語言的加密函數就行

⑥ 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資料庫如何正確加密

當數據被存儲時候被加密,它們被使用的時候就會自動加密。在其他的情況下,你可以選擇數據是否要被加密。SQL Server資料庫可以加密下列這些組件:密碼存儲過程,視圖,觸發器,用戶自定義函數,默認值,和規則。
在伺服器和用戶之間傳輸的數據密碼加密SQL Server自動將你分配給登陸和應用角色的密碼加密。盡管當你可以從主資料庫中直接察看系統表格而不需要密碼。你不能給對這種情況作出任何修改,事實上,你根本不能破壞它。
定義加密在有些時候,如果對對象進行加密是防止將一些信息分享給他人。例如,一個存儲進程可能包含所有者的商業信息,但是這個信息不能和讓其他的人看到,即使他們公開的系統表格並可以看到對象的定義。這就是為什麼SQL Server資料庫允許你在創建一個對象的時候進行加密。為了加密一個存儲進程,使用下面形式的CREAT PROCEDURE 語句:
CREATEPROCEDUREprocerename[;number]
[@parameterdatatype
[VARYING][=defaultvalue][OUTPUT]]
[,]
[WITHRECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION]
我們關心的僅僅是可選的WITH參數。你可以詳細說明ARECOMPILE或者ENCRYPTION,或者你可以同時說明它們。ENCRYPTION關鍵字保護SQL Server資料庫它不被公開在進程中。結果,如果ENCRYPTION在激活的時候系統存儲進程sp_helptext就會被忽視,這個存儲進程將被存儲在用戶創建進程的文本中。
如果你不想要加密,你可以使用ALTER PROCEDURE,忽略WITH ENCRYPTION子句來重新創建一個進程。
為了能夠使用加密。用戶和伺服器都應該使用TCP/IP NetworkLibraries用來連接。運行適當的Network Utility和檢查Force protocol encryption,看下錶,用戶和伺服器之間的連接將不會被加密。
加密也不能完全自由。當連接確定後源碼天空
,要繼續其他的構造,並且用戶和伺服器必須運行代碼來解釋加密和解釋的包裹。這里將需要一些開銷並且當在編解碼的時候會使進程慢下來。

⑧ 如何在sql的存儲過程中使用md5加密

select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','你要加密的內容')),3,32)

⑨ 這個sql欄位是用什麼加密的

加密這種東西不是那麼容易破解的。。。

尤其你說這個是密碼

因為密碼一般是對你輸入的欄位進行加密

然後和資料庫存儲的進行比較來判斷密碼是否正確的

那麼一般是無法反向解密的。。即是單向滴。。

php加密也就那幾種比較有名氣的

估計也沒有人喜歡麻煩自己搞個演算法 也不安全

最多用常用的演算法組合一下。。

數一下會發現密碼固定34位 $出現的位置是一樣的

base64不像 md5是32位 有點像md5再加了2位做了字元替換。。

不過我想起還有一些常用演算法我用的很少 所以找了一下手冊。。ok

這個是crypt加密的

PHP 的內置 crypt() 功能可實現單向加密 或單向散列。它只所以是單向的,是因為在對某內容進行加密後,您永遠不能將其反轉為明文

很高興自己還沒完全落下。。。還是喜歡挑戰
很不高興居然沒有分的。。。

⑩ 怎樣在sql server2000中讓數據加密

SQL Server 2000的安全配置在進行SQL Server 2000資料庫的安全配置之前,首先你必須對操作系統進行安全配置,保證你的操作系統處於安全狀態。然後對你要使用的操作資料庫軟體(程序)進行必要的安全審核,比如對ASP、PHP等腳本,這是很多基於資料庫的WEB應用常出現的安全隱患,對於腳本主要是一個過濾問題,需要過濾一些類似 , 『 ; @ / 等字元,防止破壞者構造惡意的SQL語句。接著,安裝SQL Server2000後請打上補丁sp1,sp2以及最新的sp3,sp4。
在做完上面三步基礎之後,我們再來討論SQL Server的安全配置。

1、使用安全的密碼策略

我們把密碼策略擺在所有安全配置的第一步,請注意,很多資料庫帳號的密碼過於簡單,這跟系統密碼過於簡單是一個道理。對於sa更應該注意,同時不要讓sa帳號的密碼寫於應用程序或者腳本中。健壯的密碼是安全的第一步!SQL Server2000安裝的時候,如果是使用混合模式,那麼就需要輸入sa的密碼,除非你確認必須使用空密碼。這比以前的版本有所改進。同時養成定期修改密碼的好習慣。資料庫管理員應該定期查看是否有不符合密碼要求的帳號。

比如使用下面的SQL語句:
Use master
Select name,Password from syslogins where password is null

2、使用安全的帳號策略

由於SQL Server不能更改sa用戶名稱,也不能刪除這個超級用戶,所以,我們必須對這個帳號進行最強的保護,當然,包括使用一個非常強壯的密碼,最好不要在資料庫應用中使用sa帳號,只有當沒有其它方法登錄到 SQL Server 實例(例如,當其它系統管理員不可用或忘記了密碼)時才使用 sa。建議資料庫管理員新建立個擁有與sa一樣許可權的超級用戶來管理資料庫。安全的帳號策略還包括不要讓管理員許可權的帳號泛濫。

SQL Server的認證模式有Windows身份認證和混合身份認證兩種。如果資料庫管理員不希望操作系統管理員來通過操作系統登陸來接觸資料庫的話,可以在帳號管理中把系統帳號「BUILTIN\Administrators」刪除。不過這樣做的結果是一旦sa帳號忘記密碼的話,就沒有辦法來恢復了。很多主機使用資料庫應用只是用來做查詢、修改等簡單功能的,請根據實際需要分配帳號,並賦予僅僅能夠滿足應用要求和需要的許可權。比如,只要查詢功能的,那麼就使用一個簡單的public帳號能夠select就可以了。

3、加強資料庫日誌的記錄

審核資料庫登錄事件的「失敗和成功」,在實例屬性中選擇「安全性」,將其中的審核級別選定為全部,這樣在資料庫系統和操作系統日誌裡面,就詳細記錄了所有帳號的登錄事件。請定期查看SQL Server日誌檢查是否有可疑的登錄事件發生,或者使用DOS命令。findstr /C:"登錄" d:\Microsoft SQL Server\MSSQL\LOG\*.*

4、管理擴展存儲過程

對存儲過程進行大手術,並且對帳號調用擴展存儲過程的許可權要慎重。其實在多數應用中根本用不到多少系統的存儲過程,而SQL Server的這么多系統存儲過程只是用來適應廣大用戶需求的,所以請刪除不必要的存儲過程,因為有些系統的存儲過程能很容易地被人利用起來提升許可權或進行破壞。如果你不需要擴展存儲過程xp_cmdshell請把它去掉。使用這個SQL語句:
use master
sp_dropextendedproc 'xp_cmdshell'
xp_cmdshell是進入操作系統的最佳捷徑,是資料庫留給操作系統的一個大後門。如果你需要這個存儲過程,請用這個語句也可以恢復過來。
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
如果你不需要請丟棄OLE自動存儲過程(會造成管理器中的某些特徵不能使用),
這些過程包括如下:
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty
Sp_OAMethod Sp_OASetProperty Sp_OAStop
去掉不需要的注冊表訪問的存儲過程,注冊表存儲過程甚至能夠讀出操作系統管理員的密碼來,如下:
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue
Xp_regenumvalues Xp_regread Xp_regremovemultistring
Xp_regwrite
還有一些其他的擴展存儲過程,你也最好檢查檢查。在處理存儲過程的時候,請確認一下,避免造成對資料庫或應用程序的傷害。

5、使用協議加密

SQL Server 2000使用的Tabular Data Stream協議來進行網路數據交換,如果不加密的話,所有的網路傳輸都是明文的,包括密碼、資料庫內容等等,這是一個很大的安全威脅。能被人在網路中截獲到他們需要的東西,包括資料庫帳號和密碼。所以,在條件容許情況下,最好使用SSL來加密協議,當然,你需要一個證書來支持。

6、不要讓人隨便探測到你的TCP/IP埠

默認情況下,SQL Server使用1433埠監聽,很多人都說SQL Server配置的時候要把這個埠改變,這樣別人就不能很容易地知道使用的什麼埠了。可惜,通過微軟未公開的1434埠的UDP探測可以很容易知道SQL Server使用的什麼TCP/IP埠了。不過微軟還是考慮到了這個問題,畢竟公開而且開放的埠會引起不必要的麻煩。在實例屬性中選擇TCP/IP協議的屬性。選擇隱藏 SQL Server 實例。如果隱藏了 SQL Server 實例,則將禁止對試圖枚舉網路上現有的 SQL Server 實例的客戶端所發出的廣播作出響應。這樣,別人就不能用1434來探測你的TCP/IP埠了(除非用Port Scan)。

7、修改TCP/IP使用的埠

請在上一步配置的基礎上,更改原默認的1433埠。在實例屬性中選擇網路配置中的TCP/IP協議的屬性,將TCP/IP使用的默認埠變為其他埠.

9、拒絕來自1434埠的探測

由於1434埠探測沒有限制,能夠被別人探測到一些資料庫信息,而且還可能遭到DOS攻擊讓資料庫伺服器的CPU負荷增大,所以對Windows 2000操作系統來說,在IPSec過濾拒絕掉1434埠的UDP通訊,可以盡可能地隱藏你的SQL Server。

10、對網路連接進行IP限制

SQL Server 2000資料庫系統本身沒有提供網路連接的安全解決辦法,但是Windows 2000提供了這樣的安全機制。使用操作系統自己的IPSec可以實現IP數據包的安全性。請對IP連接進行限制,只保證自己的IP能夠訪問,也拒絕其他IP進行的埠連接,把來自網路上的安全威脅進行有效的控制。