我正在尝试按照此处的教程进行操作:
按照本教程的指示,我创建了一个kubernetes集群并部署了一个linux sql服务器容器。
我按照上面的链接创建了密码,并且可以使用** kubectl get secret **来解密和验证内容,如此处的链接所示:https://kubernetes.io/docs/concepts/configuration/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? -关于我可能做错了什么的指示?
答案 0 :(得分:1)
您的密码必须符合密码政策。我从Microsoft的官方网站复制了此内容。
密码复杂度策略旨在通过增加可能的密码数量来阻止暴力攻击。实施密码复杂度策略后,新密码必须符合以下准则:
密码不包含用户的帐户名。
密码至少八个字符。
密码包含以下四个类别中的三个类别的字符:
拉丁大写字母(A到Z)
拉丁小写字母(a到z)
以10位数字为基础(0到9)
非字母数字字符,例如:感叹号(!),美元符号($),数字符号(#)或百分比(%)。
答案 1 :(得分:0)
答案是我正在使用Kubernetes持久卷来存储数据库文件。我可能是通过一次将错误的密码初始化到master数据库中而存储了错误的密码,该数据库的数据存储在永久卷中。
在多次更改Kubernetes机密中存储的密码并重新部署sql服务器服务后,我感到困惑的是密码未重置,并且仍然无法登录。删除永久卷和永久卷声明后,由于有效地重新安装了主数据库,因此我能够重置密码并正确地对其进行初始化。
似乎在启动时初始化了密码后,该密码将存储在永久卷上的master数据库中。因此,更改Kubernetes机密-wbich存储密码的值以进行一次ONCE-OFF初始化-无效。
以上情况很容易理解,但可能会造成混乱。
解决方案是删除永久卷(pv)和永久卷声明(pvc),这有效地删除了数据文件,包括在服务器上配置了密码的master数据库的数据文件。