SQL Server将密码值设置为0x00,是否出于安全考虑?

时间:2018-10-09 01:34:46

标签: sql sql-server

UDPATE:看到一些响应后,我意识到我自己有一个重大错误。这与SQL数据库用户无关,这是Web应用程序的用户。它实际上是一个供用户使用的表,该表是存储密码哈希的位置。问题的重点是关于使用0x00作为密码散列的安全性,密码散列由PWDCOMPARE用来阻止Web登录。

用户表,带有密码VARBINARY(128)NOT NULL字段,用于存储PWDENCRYPT的结果。

我需要在数据库中创建一些系统/机器人用户。意思是,没有人能够像那些用户那样登录,他们只会被用来执行自动操作和登录。永远没有理由使用该用户名登录。

通常,我只想拿出一些随机的复杂密码来插入此类用户。但是今天我在想...为什么我不能只使用0x00作为密码哈希?

使用此密码作为密码是否存在安全问题?我已经使用PWDCOMPARE和NULL,0,''进行了测试,并且所有结果都返回false。所以我相信我还可以吗?

我考虑此问题的唯一原因是我认为这将是识别所有无法登录的用户的简便方法,我可以只搜索密码为0x00的所有用户。

请注意,该字段是否可为空。使用NULL密码哈希怎么办?关于安全性的相同问题。

1 个答案:

答案 0 :(得分:0)

使用语法

CREATE USER <username> WITHOUT LOGIN

这将在数据库中创建一个用户,您可以根据需要模拟该用户,或者仅作为日志记录的参考,但是比摆弄密码哈希安全得多,因为它被明确定义为永远无法登录。