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 设置自动增量?
Microsoft SQL Server 2014 Express 服务无法启动
sql server 2005 express 中的用户和登录名