如何在Docker中配置MS SQL Server密码策略以仅允许小写字母?
解决Docker中MS SQL Server简化密码要求的问题
要在开发环境中让MS SQL Server接受纯小写字母的密码,核心是禁用它默认的密码复杂度策略和密码策略限制,具体通过设置两个环境变量实现:
1. 使用docker run命令直接启动
执行以下命令,替换yourlowercasepassword为你想用的纯小写密码:
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=yourlowercasepassword" -e "MSSQL_PASSWORD_POLICY=OFF" -e "MSSQL_PASSWORD_COMPLEXITY=OFF" -p 1433:1433 --name sqlserver-dev -d mcr.microsoft.com/mssql/server:latest
参数说明:
ACCEPT_EULA=Y:必须同意微软许可协议才能启动容器MSSQL_SA_PASSWORD:设置SA用户的登录密码,这里直接填纯小写字符串MSSQL_PASSWORD_POLICY=OFF:禁用Windows密码策略(如密码过期、账户锁定规则)MSSQL_PASSWORD_COMPLEXITY=OFF:关闭密码复杂度要求,不再强制需要大写字母、数字、特殊符号
2. 使用docker-compose配置
如果用docker-compose管理容器,创建docker-compose.yml文件:
version: '3.8' services: sqlserver: image: mcr.microsoft.com/mssql/server:latest environment: ACCEPT_EULA: "Y" MSSQL_SA_PASSWORD: "yourlowercasepassword" MSSQL_PASSWORD_POLICY: "OFF" MSSQL_PASSWORD_COMPLEXITY: "OFF" ports: - "1433:1433" container_name: sqlserver-dev
执行docker-compose up -d即可启动容器。
注意事项
- 该配置仅限开发环境使用,生产环境禁用密码策略会带来严重安全风险,绝对不能照搬
- 部分旧版本MS SQL Server镜像可能使用
SA_PASSWORD而非MSSQL_SA_PASSWORD,如果上述配置不生效,可替换环境变量名尝试 - 验证配置是否生效:执行以下命令连接数据库,成功进入命令行则说明密码设置有效
docker exec -it sqlserver-dev /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P yourlowercasepassword
内容的提问来源于stack exchange,提问作者Ali EXE
相关产品推荐
相关产品推荐

