Tôi có một bảng trong đó lĩnh vực userpassword có datatype varbinary, Vì vậy, tôi nhầm lẫn rằng trong đó hình thức tôi nên lưu dữ liệu vào trường userpassword bởi vì khi tôi lưu dữ liệu varchar nó đã cho tôi lỗi.Dữ liệu nào có thể được lưu trữ trong kiểu dữ liệu varbinary của SQL Server?
Trả lời
Cột varbinary
có thể lưu trữ bất kỳ thứ gì. Để lưu trữ một chuỗi trong nó, bạn sẽ phải bỏ nó vào varbinary
:
declare @t table (id int identity, pwd varbinary(50))
insert into @t (pwd) values (cast('secret' as varbinary(50)))
Nhưng đối với một mật khẩu, một cột varbinary
thường lưu trữ một hash của một số loại. Ví dụ, một băm SHA1 sử dụng HashBytes
function:
insert into @t (pwd) values (HashBytes('sha1', 'secret'));
Lưu trữ một hash một chiều thay vì mật khẩu thực sự là an toàn hơn. Bạn có thể kiểm tra xem mật khẩu có khớp không:
select * from @t where pwd = HashBytes('sha1', 'secret')
Nhưng không có cách nào bạn có thể truy xuất mật khẩu bằng cách xem bảng. Vì vậy, chỉ người dùng cuối mới biết mật khẩu của mình và thậm chí cả DBA cũng không thể truy xuất được mật khẩu đó.
Bạn sẽ cần truyền rõ ràng VARCHAR.
SELECT CAST(N'Test' as VARBINARY)
Thông báo lỗi SQL Server cho biết.
Chuyển đổi ngầm từ kiểu dữ liệu varchar thành varbinary không phải là cho phép.
SQL Server yêu cầu một chuyển đổi rõ ràng từ varchar to varbinary, theo bảng lớn trên CAST và CONVERT trong MSDN
Bảng sẽ có một cột varbinary để lưu trữ các giá trị băm theo sys.sql_logins
- 1. VarBinary vs Image SQL Server Kiểu dữ liệu để lưu trữ dữ liệu nhị phân?
- 2. SQL Server varbinary (max) đến kiểu dữ liệu hình ảnh
- 3. Lưu trữ dữ liệu UTF-16/Unicode trong SQL Server
- 4. Ad-hoc retreival dữ liệu từ SQL Server varbinary cột
- 5. Giải pháp lưu trữ dữ liệu SQL Server
- 6. SQL Server varbinary (max) và varchar (max) dữ liệu trong một bảng riêng biệt
- 7. cơ sở dữ liệu SQL 5MB có thể lưu trữ bao nhiêu dữ liệu?
- 8. SQL Server 2005: Xác định kiểu dữ liệu của biến
- 9. Kiểu dữ liệu SQL Server để chỉ lưu trữ trường thời gian như 09:10 vv
- 10. Kiểu dữ liệu XML Trong truy vấn SQL Server 2008
- 11. Nơi tìm kích thước của kiểu dữ liệu SQL Server
- 12. Làm việc với kiểu dữ liệu XML của SQL Server
- 13. Lưu trữ email Outlook trong cơ sở dữ liệu Microsoft SQL Server
- 14. Nhận kiểu dữ liệu của cột SQL Server bằng C#
- 15. Dữ liệu lưu trữ blob tham chiếu trong SQL azure
- 16. Giá trị rỗng trong một kiểu dữ liệu varbinary parameter
- 17. Kiểu dữ liệu nào là tốt nhất để lưu trữ các bài viết trong cơ sở dữ liệu SQL?
- 18. Độ dài của dòng dữ liệu varbinary (max) trên SQL Server 2008
- 19. làm cách nào tôi có thể sử dụng kiểu dữ liệu GUID trong SQL Server 2008?
- 20. SQL Server 2005 có tương đương với kiểu dữ liệu ENUM của MySql không?
- 21. Loại dữ liệu thập lục phân của SQL Server
- 22. Làm cách nào để lưu trữ tệp nhị phân trong cơ sở dữ liệu sql?
- 23. Làm cách nào để lưu trữ băm trong cơ sở dữ liệu SQL Server bằng C#?
- 24. Lưu trữ giá trị C# DateTimeOffset trong cơ sở dữ liệu SQL Server 2005
- 25. Tôi tìm siêu dữ liệu Sql Server cho các kiểu dữ liệu cột ở đâu?
- 26. SQL Server 2005: Chỉ mục lớn hơn dữ liệu được lưu trữ
- 27. Ưu điểm của dữ liệu schemaless lưu trữ trên lưu trữ dữ liệu với lược đồ
- 28. Thiết kế bảng để lưu trữ dữ liệu XML trong SQL Server 2008 R2
- 29. Chuyển dữ liệu có thể được lưu trữ thành thủ tục được lưu trữ
- 30. Lưu trữ dữ liệu trong ViewState
Tôi có thể lưu trữ các tệp thô như một tệp âm thanh? – JerryGoyal
@JerryGoyal yes. Một điều khác thường được thực hiện, là lưu trữ các tệp lớn hơn trên đĩa và chỉ lưu trữ đường dẫn tệp trong DB mặc dù – iliketocode