1. 請問在SQL資料庫中用什麼方法對表中某個欄位進行加密,即當輸入表數據執行後,該欄位是以密文顯示而不是明文
可以用SQL SERVER中的pwdencrypt函數來實現單向加密
2. sql資料庫怎麼加密
SQL Server中的加密簡介
在SQL Server2000和以前的版本,是不支持加密的。所有的加密操作都需要在程序中完成。這導致一個問題,資料庫中加密的數據僅僅是對某一特定程序有意義,而另外的程序如果沒有對應的解密演算法,則數據變得毫無意義。
到了SQL Server2005,引入了列級加密。使得加密可以對特定列執行,這個過程涉及4對加密和解密的內置函數
SQL Server 2008時代,則引入的了透明數據加密(TDE),所謂的透明數據加密,就是加密在資料庫中進行,但從程序的角度來看就好像沒有加密一樣,和列級加密不同的是,TDE加密的級別是整個資料庫。使用TDE加密的資料庫文件或備份在另一個沒有證書的實例上是不能附加或恢復的。
3. sql資料庫中欄位如何加密
你將你的數據先加密好了。再存儲到資料庫。讀取的時候,解密了再顯示就可以了
4. 如何在SQL Server資料庫中加密數據
如何在SQL Server資料庫中加密數據
在Sql Server 中經常要對存在表中數據加密,比如密碼欄位,我們可以利用Sql 中自帶的加密函數pwdencrypt()來進行加密,加密之後無法解密碼,需要使用pwdcompare('原文','密碼')對比,如果返回結果為1,表示密碼相符,如果為0,表示不符
5. sql2008 資料庫 建表 表中的某一個欄位要加密處理
/*
1.利用對稱密鑰
搭配EncryptByKey進行數據jiami
使用DecryptByKey函數進行jiemi
這種方式比較適合大數據量
*/
CREATE SYMMETRIC KEY ZXC WITH ALGORITHM = AES_256 ENCRYPTION BY PASSWORD = 'ZXC123456'
OPEN SYMMETRIC KEY ZXC DECRYPTION BY PASSWORD = 'ZXC123456'
--jiami
SELECT Encryptbykey(Key_guid('ZXC'), 'YHDH_C')
--jiemi
SELECT CONVERT(VARCHAR(10), Decryptbykey())
CLOSE SYMMETRIC KEY ZXC;
DROP SYMMETRIC KEY ZXC;
/*
2.利用非對稱密鑰
搭配EncryptByAsymKey進行數據jiami
使用DecryptByAsymKey函數進行jiemi
用於更高安全級別的加jiemi數據
*/
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'XIAOMA'
CREATE ASYMMETRIC KEY ABC WITH ALGORITHM=RSA_2048 ENCRYPTION BY PASSWORD = 'ZXC123456'
ALTER ASYMMETRIC KEY ABC WITH PRIVATE KEY (DECRYPTION BY PASSWORD = 'ZXC123456')
--jiami
Select Encryptbyasymkey(Asymkey_id ('ABC'), 'ZXC123456')
SELECT CONVERT(VARCHAR(100), Decryptbyasymkey (Asymkey_id('ABC'),96B1F7E7B7AC3E945E106D82 ))
DROP ASYMMETRIC KEY ABC;
DROP MASTER KEY
/*
3.利用憑證的方式
搭配EncryptByCert進行jiami
DecryptByCert函數進行jiemi
比較類似非對稱密鑰
*/
CREATE CERTIFICATE ZXC
ENCRYPTION BY PASSWORD = 'xiaoxiao'
WITH SUBJECT = 'DB_Encrypt_Demo Database Encryption Certificate',
START_DATE = '2015-10-1'
--jiami
Select Encryptbycert(Cert_id('ZXC'), '123456')
--jiemi
SELECT convert(Varchar(10), Decryptbycert(Cert_id('ZXC'), ,N'xiaoxiao'))
DROP CERTIFICATE ZXC;
/*
4.利用mima短語方式
搭配EncryptBypassPhrase進行jiami
使用DecryptByPassPhrase函數來jiemi
比較適合一般的數據加jiemi
*/
--jiami
Select Encryptbypassphrase('xiaoma', '123456')
--jiemi
SELECT CONVERT(VARCHAR(100), Decryptbypassphrase('xiaoma', ))
6. 如何對SQL中的表或資料庫加密
有專用資料庫軟硬體可以在DBMS和應用之間做橋梁,可以進行加密等一系列操作,不過一般是商用的,比較昂貴,比如Oracle就有database security這樣的軟體,加密後,維護人員沒有密碼也不知道數據內容
7. 怎麼實現對SQL Server資料庫的欄位進行加密和解密
將那個欄位設為主鍵
------解決方案--------------------------------------------------------
要不然
你只能在邏輯上做判斷、先查詢數據是否有當前的符號、如果有
就另填。沒有的話,就插入
------解決方案--------------------------------------------------------
------解決方案--------------------------------------------------------
要是這個欄位不是外鍵的話,可以設成主鍵,否則,可以由資料庫的標識欄位做主鍵,給這一列
加上唯一約束
------解決方案--------------------------------------------------------
主鍵或者unique
約束(這個oracle
有,不知sqlserver
有沒有)。
這個好像不行吧。
------解決方案--------------------------------------------------------
設主鍵。用sequence
自增。設置主鍵
然後也可以寫觸發器做判斷修改
8. 如何對sqlserver2005資料庫中表欄位進行加密,解密
那你可以通過編程
在保存的時候,先把欄位內容進得加密,然後再保存到資料庫中。
讀取的時候,讀出數據後,再進行解密操作。
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. SQL數據文件怎麼加密
首先要說明不能限制 「誰」,只能限制部分人
其次是加密數據肯定要降低效率
一般情況你數據表中數據不用全部加密,某些關鍵欄位加密就行了
但是你這個只能用可逆轉加密,而且加密後 查詢檢索會麻煩些
不能直接復制,使用 Blob 欄位就類型就行了
要加密簡單點用 Base64編碼好了,也不能直接復制,肉眼看不出來,拿走也不能直接用
其它的加密方式 效果好些,但效率就低了。