SQL Server Express 无法设置登录密码

Posted

技术标签:

【中文标题】SQL Server Express 无法设置登录密码【英文标题】:SQL Server Express unable to set login password 【发布时间】:2021-10-13 17:48:55 【问题描述】:

我已在 Windows 机器上安装了 SQL Server Express 2019 以进行 Sitecore 开发。我的硬盘崩溃了,需要重建;在崩溃之前一切正常。

混合身份验证已启用,SA 帐户也是如此。

Sitecore 安装程序可以连接到我的本地实例,并设置数据库结构,包括一组数据库登录。 SSMS 中的一切看起来都不错,并且最初可以正常工作 - 我看到了欢迎使用 Sitecore 页面。

但是,连接到 SSMS 然后尝试使用 Sitecore 生成的密码登录失败。当我尝试在 SQL Server 中设置它们时,它们不接受(我总是收到错误的密码错误)。

我尝试使用我的 Windows 帐户(安装了 SQL Server)和我在安装时配置的 sa 帐户。还尝试以管理员身份运行。

图形用户界面和脚本似乎工作正常,但密码似乎从未设置过。在崩溃之前,我可以使用生成的登录名连接到 SSMS,并验证连接性。

除了对机器进行映像和重新安装 Windows 的新副本之外,我不知道该去哪里。

【问题讨论】:

SQL Server 有password complexity requirements。您是否有可能使用“太简单”的密码并且之前禁用了CHECK_POLICY 以便使用它们? 我也试过了——不走运。我终于能够通过删除 Sitecore 安装程序创建的用户(数据库用户)并将它们创建为具有登录名的用户来使其正常工作。我的数据库是 SQL Express,所以我不知道这是安装程序和 SQL Express 的怪癖还是某种错误。 我想可能是这样 - 我安装 SQL Server 后没有删除强密码要求,Sitecore 的默认密码不符合我组织的规则。 【参考方案1】:

我假设您必须重新安装 SQL Server,然后从备份中执行数据库恢复。

如果是这种情况,则数据库中的用户在还原后会“孤立”,因为他们在 master 数据库中没有相应的登录名。即使 Sitecore 确实创建了登录名,它们对于 Sitecore 数据库中的用户也会有不同的 SID。与这些用户合作的唯一方法是恢复主数据库的备份,在这种情况下,服务器登录和数据库用户将具有相同的 SID。

如果做不到这一点,您唯一的选择是删除用户并正确地重新创建登录名和用户。

有关未来参考,请查看 Microsoft 在 SQL Server 中 troubleshooting orphaned users 上的文档。

所以,不,这不是“安装程序和 SQL Express 的怪癖或某种错误”。 ;-)

HTH 肖恩

【讨论】:

我认为你部分正确;他们绝对不是孤儿。我怀疑这与 Sitecore 安装程序创建用户时密码复杂性有关。我希望他们能在安装时提供自动生成强密码的选项。

以上是关于SQL Server Express 无法设置登录密码的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 SQL Server Express Management Studio 设置自动增量?

SQL Server数据库安装过程中遇到的问题

Microsoft SQL Server 2014 Express 服务无法启动

sql server 2005 express 中的用户和登录名

无法从 Web 服务器连接到 SQL Server Express

无法安装 SQL Server 2008 R2 Express