# #sql-server #docker #gitlab #gitlab-ci
Вопрос:
У меня есть SQL-сервер, который запускается внутри контейнера docker из gitlab. Следующий файл yaml делает это :
services:
- name: mcr.microsoft.com/mssql/server:2019-latest
alias: mssql
variables:
MSSQL_HOST: microsoft-mssql-server-linux
ACCEPT_EULA: Y
MSSQL_COLLATION: Latin1_General_CS_AS
SA_PASSWORD: yourStrong(!)Password
Теперь, когда я запускаю этот конвейер, он выдает ошибку при запуске сценария sql, в котором говорится, что не удалось войти в систему для пользователя SA . Ошибка заключается в следующем :
$ /opt/mssql-tools/bin/sqlcmd-S локальный хост-U SA-P «Ваш строгий(!)пароль» -i Скрипты/DBScript.sql Sqlcmd: Ошибка: Драйвер Microsoft ODBC 17 для SQL Server : Не удалось войти в систему для пользователя » SA » .. Ошибка очистки переменных на основе файлов: Сбой задания: команда завершена кодом выхода 1
Эта ошибка устраняется, как только я удаляю параметры сортировки «MSSQL_COLLATION:Latin1_General_CS_AS» из файла yaml. Это объясняет, что я не могу изменить параметры сортировки MSSQL.
Примечание: Контейнер, созданный Gitlab, является контейнером Linux, который также устанавливает образ docker «mcr.microsoft.com/mssql/server:2019-latest».
Любая идея, как изменить уровень сортировки на уровне MS SQL server.
Комментарии:
1. Довольно причина в том , что вы используете
SA
, но решили использовать параметры сортировки с учетом регистра . Таким образом, вашиLOGIN
буквы s также будут чувствительны к регистру, и, следовательноLOGIN
, с именем не найденоSA
ни одного ; потомуSA
что иsa
не одно и то же. Если вы собираетесь использовать параметры сортировки с учетом регистра для экземпляра, вам нужно быть осторожным с корпусом.2. Что должно быть обходным решением здесь, тогда нужны только эти параметры сортировки MSSQL_COLLATION:Latin1_General_CS_AS
3. «Обходного пути» нет, решение заключается
LOGIN
в правильном написании имени…sa
<> <>SA
в сопоставлении с учетом регистра. Исправьте свой скрипт, чтобы использовать правильное имя для входа.4. Сценарий выполняется в виде : «/opt/mssql-tools/bin/sqlcmd -S localhost -U SA» . Это имя пользователя, указанное SA, переходит в sa ??
5. Но
LOGIN
этоsa
неSA
так …