当我使用SQL Server Management Studio连接到我的本地SQL Server Express实例时,我会根据此图像自动填写一个密码的屏幕:
我不记得密码是什么。从这个屏幕看,它似乎有15个字符。
我还有一个使用ADO.Net连接到此数据库的Web应用程序。连接字符串存储在配置文件中。我在这里:
<connectionStrings>
<add name="DefaultConnection" xdt:Transform="Insert"
providerName="System.Data.SqlClient"
connectionString="Data Source=MY-PC\SQLEXPRESS;Integrated Security=SSPI;Database=Scoreboard;User ID=sa;Password=abc1234" />
</connectionStrings>
此处的密码长度为7个字符(为了显示此处,我已将其切换为abc1234)
我有一个类似的情况,我在我的网站的托管服务器上有一个数据库。即我的网络应用程序显示7个字符的密码,但我的SSMS登录在启动时保存了15个字符的密码。当我尝试使用7位数密码登录该帐户时,它不起作用。
这里发生了什么?我假设一个登录名只能有一个有效密码,如果是这样,为什么配置文件和SSMS登录屏幕之间的字符数不匹配?
对于记录,我可以从Web应用程序和SSMS连接到数据库。
答案 0 :(得分:3)
这是一些程序使用的安全技巧。你不能依赖星星的数量。它只是意味着有一个被记住的密码。
答案 1 :(得分:1)
您的连接字符串包含以下部分:
Integrated Security=SSPI;
表示使用Windows身份验证进行连接并且忽略用户名/密码。要在SQL Server Management Studio中执行相同操作,请将下拉列表从SQL Server Authentiation
更改为Windows Authentication
。这样,您就可以使用Windows帐户详细信息而不是SQL Server密码进行连接。
答案 2 :(得分:0)
SSMS掩码保存密码。无论实际密码的长度是多少,它总是显示15颗星。
出于安全原因,不应在连接字符串中使用SA凭据。而是针对每个应用程序进行专用登录。