當前位置:首頁 » 數據倉庫 » sqlserver資料庫加密
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver資料庫加密

發布時間: 2022-05-06 03:13:12

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

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

2. c# sqlserver 數據加密解密

比較簡單的做法是數據在存入資料庫之前用c#進行加密,然後再存入資料庫,讀取數據之後,用相應的解密方法對數據進行解密。

但是,如果你一定要在存儲過程中加密的話,可以使用c#創建好對應的加密解密方法,然後生成一個加解密的類庫dll,在sqlserver中引入該dll中的加密方法進行加密(Sqlserver調用dll的方法sqlserver調用dll),程序中可以直接調用該dll中的解密方法,也可以把解密方法直接寫在程序中。

3. 怎麼實現對SQL Server資料庫的欄位進行加密和解密

將那個欄位設為主鍵
------解決方案--------------------------------------------------------
要不然
你只能在邏輯上做判斷、先查詢數據是否有當前的符號、如果有
就另填。沒有的話,就插入
------解決方案--------------------------------------------------------
------解決方案--------------------------------------------------------
要是這個欄位不是外鍵的話,可以設成主鍵,否則,可以由資料庫的標識欄位做主鍵,給這一列
加上唯一約束
------解決方案--------------------------------------------------------
主鍵或者unique
約束(這個oracle
有,不知sqlserver
有沒有)。
這個好像不行吧。
------解決方案--------------------------------------------------------
設主鍵。用sequence
自增。設置主鍵
然後也可以寫觸發器做判斷修改

4. sql資料庫怎麼加密

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

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

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

5. SQL資料庫被加密了怎麼辦

用」合力天下資料庫加密軟體「加密的sqL資料庫在本機是可以正常運行的,遠程非法下載或傳到網上是打不開的,如果需要帶出公司,可以找公司管理員解密後帶出

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

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

7. 請問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')))

8. 如何在SQL Server資料庫中加密數據

熱心網友
在SQl2005下自帶的函數hashbytes()
,此函數是微軟在SQL
SERVER
2005中提供的,可以用來計算一個字元串的
MD5

SHA1
值,使用方法如下:
--獲取123456的MD5加密串
select
hashbytes('MD5',
'123456')
;
--獲取123456的SHA1加密串
select
hashbytes('SHA1',
'123456')
;有了這個函數可以在sqlserver中為字元串進行加密,但是hashbytes()
函數的返回結果是
varbinary類型,(以
0x
開頭
16
進制形式的二進制數據)通常情況下,我們需要的都是字元串型的數據,很多人首先想到的可能就是用
CAST

Convert
函數將varbinary
轉換為
varchar,但這樣轉換後的結果會是亂碼,正確轉換
varbinary
可變長度二進制型數據到
16
進制字元串應該使用系統內置函數
sys.fn_varbintohexstr()(只在sqlserver2005下有),如下所示:select
sys.fn_varbintohexstr(hashbytes('MD5',
'123456'))
然後就可以截取需要的部分select
lower(right(sys.fn_varbintohexstr(hashbytes('MD5','123456')),32))為md5加密串。

9. 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,看下錶,用戶和伺服器之間的連接將不會被加密。
加密也不能完全自由。當連接確定後源碼天空
,要繼續其他的構造,並且用戶和伺服器必須運行代碼來解釋加密和解釋的包裹。這里將需要一些開銷並且當在編解碼的時候會使進程慢下來。

10. sqlserver 中怎麼樣給現有的資料庫加密。就是不想把自己資料庫的存儲過程等信息給其他人看到。

你把你的資料庫修改登錄時只能用用戶名和密碼登錄,不允許windows登錄,然後為他創建一個用戶,這個用戶賦予的許可權你自己選,你想讓他看什麼就給他許可權。不想就別給他賦許可權即可。