Sql server SQL Server容器Linux-用户登录失败';sa';

Sql server SQL Server容器Linux-用户登录失败';sa';,sql-server,linux,docker,kubernetes,containers,Sql Server,Linux,Docker,Kubernetes,Containers,我在这里尝试按照教程进行操作: 按照本教程的指导,我创建了一个kubernetes集群,并在LinuxSQLServer容器中部署了一个集群 我在上面的链接中创建了这个秘密,并可以使用**kubectl get secret**来解密和验证内容,如链接中所述: 我使用持久卷和持久卷声明,并部署sqldeployment.yaml,如上面的链接所示 我使用kubectl attach-I-t连接到容器,我可以看到日志流 当我尝试登录时,它会显示 **SQL Management Studio:*

我在这里尝试按照教程进行操作:

按照本教程的指导,我创建了一个kubernetes集群,并在LinuxSQLServer容器中部署了一个集群

我在上面的链接中创建了这个秘密,并可以使用**kubectl get secret**来解密和验证内容,如链接中所述:

我使用持久卷和持久卷声明,并部署sqldeployment.yaml,如上面的链接所示

我使用kubectl attach-I-t连接到容器,我可以看到日志流

当我尝试登录时,它会显示

**SQL Management Studio:** 
Login failed for user 'sa'. (Microsoft SQL Server, Error: 18456)

**kubectl attach output stream**
Error: 18456, Severity: 14, State: 8.
Login failed for user 'sa'. Reason: Password did not match that for the login provided.
我尝试过各种密码,包括上面microsoft教程链接上的密码

问题: -如何使用正确的密码设置linux容器,以便按照上面的Microsoft教程中的说明登录到SQL Server?
-任何关于我可能做错了什么的提示?

您的密码必须符合密码策略。我是从微软官方网站上复制的

密码复杂性策略旨在通过增加可能的密码数量来阻止暴力攻击。强制实施密码复杂性策略时,新密码必须符合以下准则:

密码不包含用户的帐户名

密码长度至少为八个字符

密码包含以下四个类别中的三个类别的字符:

拉丁大写字母(A到Z)

拉丁小写字母(a到z)

以10位为基数(0到9)


非字母数字字符,例如:感叹号(!)、美元符号($)、数字符号(#)或百分比(%)。

答案是我使用Kubernetes持久卷存储数据库文件。我可能在主数据库中初始化了一次,从而存储了错误的密码,主数据库的数据存储在持久卷中

在多次更改存储在Kubernetes secret中的密码并重新部署sql server服务时,我感到困惑,因为密码没有被重置,我仍然无法登录。一旦我删除了持久卷和持久卷声明,我就能够重置密码并正确地重新初始化它,因为主数据库已经被有效地重新安装

似乎在启动时初始化密码后,它就会存储在持久卷上的主数据库中。因此,更改Kubernetes密码(wbich存储密码值以便一次性初始化)无效

上面的场景很容易理解,但可能非常混乱


解决方案是删除永久卷(pv)和永久卷声明(pvc),这有效地删除了数据文件,包括在服务器上配置密码的主数据库的数据文件。

Stack Overflow是一个解决编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许是或者会是一个更好的提问地点。这是关于azure kubernetes(AKS)的,它目前是一个热门话题。对于DevOps和开发人员来说。该策略无疑是初始化sql server容器的一个难题,并且可能是导致我的安装程序将我锁定在外的一个因素。然而,关于这个问题的完整答案在我下面的帖子中。谢谢