我有其中的userPassword領域有varbinary數據類型的表,所以我很困惑,在其形式應該我將數據保存到userPassword的字段,因爲當我保存VARCHAR數據它給了我錯誤。什麼數據可以存儲在SQL Server中的varbinary數據類型?
14
A
回答
19
一個varbinary
列可以存儲任何東西。要存儲一個字符串的話,你必須將它轉換爲varbinary
:
declare @t table (id int identity, pwd varbinary(50))
insert into @t (pwd) values (cast('secret' as varbinary(50)))
但對於密碼,varbinary
列通常存儲某種類型的哈希值。例如,SHA1哈希使用HashBytes
function:
insert into @t (pwd) values (HashBytes('sha1', 'secret'));
存儲單向哈希,而不是真正的密碼更安全。您可以檢查密碼是否匹配:
select * from @t where pwd = HashBytes('sha1', 'secret')
但是,您無法通過查看錶來檢索密碼。所以只有最終用戶知道他的密碼,甚至連DBA都不能檢索它。
1
您將需要顯式轉換VARCHAR。
SELECT CAST(N'Test' as VARBINARY)
SQL Server錯誤消息說。
允許從數據類型varchar到varbinary的隱式轉換不是 。
1
SQL Server需要從varchar to varbinary明確的轉換,按照大桌子上CAST和MSDN
轉換表將具有varbinary列,以散列值存儲爲每sys.sql_logins
相關問題
- 1. VarBinary與圖像SQL Server數據類型存儲二進制數據?
- 2. 什麼類型的數據可以類類型存儲?
- 3. 將Unicode數據存儲在SQL Server 2008中XML數據類型
- 4. 我可以使用varbinary類型將圖像存儲在SQL Server數據庫中嗎?
- 5. 什麼是在SQL Server中存儲博文的最佳數據類型?
- 6. 使用SQL Server 2008日期數據類型以存儲年份
- 7. 用於在SQL Server數據庫中存儲音頻文件的數據類型?
- 8. 什麼數據庫可以存儲樹?
- 9. 數據類型來存儲整數和SQL Server的浮點值
- 10. 數據類型使用存儲在SQL
- 11. 數據類型`Location`存儲什麼樣的數據?
- 12. 數據類型存儲的條形碼在SQL Server 2005
- 13. 存儲時間 - SQL Server中的數據類型?
- 14. 什麼類型的OData Edm.GeographyPoint在SQL Server數據庫中引用
- 15. 在什麼類型的我可以在客戶機上存儲json數據?
- 16. 將RichTextBox數據存儲在SQL Server中?
- 17. 使用什麼數據類型以便圖像可以上傳到SQL Server?
- 18. 在SQL Server中以XML格式存儲數據的最佳方法是什麼?
- 19. 我應該使用什麼SQL Server數據類型來存儲字節[]
- 20. 我可以在Redis中存儲這種類型的數據嗎?
- 21. 什麼是在MySQL中存儲布爾值的數據類型?
- 22. 在RDBM中存儲多媒體的數據類型是什麼?
- 23. Sql Server 2005數據類型
- 24. SQL Server日數據類型?
- 25. SQL Server 2008數據類型
- 26. SQL Server XML數據類型
- 27. 查找具有VARBINARY列類型的SQL Server數據庫中的表/ s的T-SQL語法是什麼?
- 28. 什麼可能是一個合適的數據類型在sql server 2005中存儲電話號碼?
- 29. 在SQL Server中合併數據類型
- 30. 什麼是存儲在SQL Server數據庫
我可以存儲原始文件像音頻文件? – JerryGoyal 2015-08-13 06:12:26
@JerryGoyal是的。另一個通常做的事情是將更大的文件存儲在磁盤上,然後將文件路徑存儲在數據庫中 – iliketocode 2017-03-24 14:39:54