Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Применимо к:SQL Server в Linux
На основе лучших практик безопасности вашей организации вам может потребоваться регулярно менять пароль для учетной записи Windows Active Directory, предоставленной как network.privilegedadaccount в mssql.conf, или любой другой учетной записи, которая владеет именами принципалов службы (SPN) для службы SQL Server. Поддерживаемый способ изменения пароля к учетной записи описан в этой статье. Изменение пароля вступает в силу без необходимости перезапускать службу SQL Server на Linux.
Средство adutil используется для обновления keytab. Команда adutil должна выполняться с компьютера, присоединенного к домену. Дополнительные сведения о adutil и о том, как скачать средство, см. в разделе "Введение в adutil - служебная программа Active Directory".
Важно обновить новый пароль в keytab со следующим номером kvno, прежде чем обновлять его в Active Directory. Использование следующего номера kvno позволяет избежать перезапуска службы SQL Server после изменения пароля. Если сначала обновить пароль в Active Directory, а затем изменить ключ, необходимо перезапустить службу SQL Server, чтобы убедиться, что проверка подлинности Active Directory работает правильно.
Сценарий ротации keytab
Рассмотрим пример. Проверка подлинности Active Directory уже включена для SQL Server на Linux. В файле mssql.conf вы устанавливаете network.privilegedadaccount на sqluser. Учетная запись sqluser@CONTOSO.COM уже создана в Active Directory, а ключтаб также создан в расположении по умолчанию /var/opt/mssql/secrets/mssql.keytab. Теперь необходимо изменить пароль для sqluser@CONTOSO.COM. Ниже приведены шаги, которые необходимо выполнить.
Установите adutil на компьютер, присоединенный к домену.
Получите или продлите билет предоставления билета (TGT) Kerberos с помощью команды
kinit. Для выполнения командыkinitиспользуйте привилегированную учетную запись. Учетная запись должна иметь права для подключения к домену, а также должна иметь возможность создавать учетные записи и SPN в домене. В этом случае мы используем учетную записьprivilegeduser@CONTOSO.COM, которая имеет разрешения на создание учетных записей и SPN в нашем доменеCONTOSO.COM.kinit privilegeduser@CONTOSO.COMПосле запуска
kinitдля получения или продления TGT запросите текущее число kvnonetwork.privilegedadaccount. В этом случае он выглядит так:sqluser@CONTOSO.COM.kvno sqluser@CONTOSO.COM
Вы можете обновить keytab с помощью mssql-conf или обновить keytab вручную с помощью adutil.
Повернуть keytab с помощью mssql-conf
Вы можете установить adutil и интегрировать его с mssql-conf, что означает, что вы можете повернуть keytab с помощью mssql-conf.
Войдите как root-пользователь и переключитесь на пользователя
mssql.su mssqlПолучите или продлите билет предоставления билета (TGT) Kerberos с помощью команды
kinit. Для выполнения командыkinitиспользуйте привилегированную учетную запись. Учетная запись должна иметь права для подключения к домену, а также должна иметь возможность создавать учетные записи и SPN в домене. В этом случае мы используем учетную записьprivilegeduser@CONTOSO.COM, которая имеет разрешения на создание учетных записей и SPN в нашем доменеCONTOSO.COM.kinit privilegeduser@CONTOSO.COMВыполните команду mssql-conf, указав ключ SQL Server и
network.privilegedadaccountсведения. В этом примереprivilegedadaccount— этоsqluser../mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno'При появлении запроса на ввод пароля введите новый пароль, который вы планируете использовать. Параметр
--use-next-kvnoвыделяет текущий квно + 1.Необязательно: Вы также можете использовать
--kvnoопцию с командойmssql-conf setup-ad-keytabдля указания конкретного kvno. Сначала необходимо убедиться, что вы получите текущий квно для пользователя, а затем обновите новый квно соответственно, который будет текущим квно + 1.Вы можете перечислить ключи keytab с помощью команды:
klist -kte /var/opt/mssql/secrets/mssql.keytabВы заметите, что ключевой табель (keytab) обновляется следующей версией квно как для записей пользователя, так и для записей SPN (служебного имени).
Теперь вы можете изменить пароль для
sqluserпользователя. Рассмотрим пример.Внимание
Если вам будет предложено перезапустить SQL Server на этом шаге, его можно игнорировать. Не забудьте также изменить пароль в Active Directory.
bash-4.4$ kinit privilegedaccount@CONTOSO.COM Password for privilegedaccount@CONTOSO.COM: bash-4.4$ ./mssql-conf setup-ad-keytab /var/opt/mssql/secrets/mssql.keytab sqluser --use-next-kvno sqluser@contoso.com's password: Confirm sqluser@contoso.com's password: SQL Server needs to be restarted in order to adopt the new AD configuration. To restart, run `systemctl restart mssql-server.service`. bash-4.4$ klist -kte /var/opt/mssql/secrets/mssql.keytab Keytab name: FILE:/var/opt/mssql/secrets/mssql.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------ 4 12/30/2021 14:02:08 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 4 12/30/2021 14:02:08 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 sqluser@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1.contoso.com@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1:1433@CONTOSO.COM (aes256-cts-hmac-sha1-96) 5 12/30/2021 20:06:34 MSSQLSvc/sql1@CONTOSO.COM (aes256-cts-hmac-sha1-96)
Вручную поверните keytab с помощью adutil
Если вы хотите вручную обновить keytab с помощью adutil, выполните следующие действия.
Обновление keytab с помощью adutil добавляет запись в текущий keytab. Например, если номер kvno, полученный после выполнения предыдущей команды, — 2, при обновлении keytab используйте номер kvno3. Ниже приведены команды adutil , которые необходимо выполнить.
- Измените номер порта (), имя узла (
-p-H), путь к keytab (-k) и номер квно, чтобы соответствовать вашей среде.
adutil keytab createauto -k /var/opt/mssql/secrets/mssql.keytab -p 1433 -H mssql.contoso.com --password '<newpassword>' -s MSSQLSvc --kvno 3
adutil keytab create -k /var/opt/mssql/secrets/mssql.keytab -p sqluser --password '<newpassword>' --kvno 3
| Параметр | Description |
|---|---|
-k |
Путь к текущему файлу кейтаба, который используется в данный момент SQL Server и задается при помощи параметра network.kerberoskeytabfile в файле mssql.conf. |
-H |
Полное доменное имя узла SQL Server. |
-p |
Порт, который настроен для прослушивания службой SQL Server, указан в первой команде. Во второй команде -p представляет network.privilegedadaccount, для которого вы собираетесь обновить пароль. |
kvno |
Значение должно быть текущим kvno + 1. Текущее значение kvno можно получить, выполнив действия из шага 3. |
После выполнения приведенных выше команд необходимо указать тип шифрования для записей keytab. Убедитесь, что выбрали подходящий тип для своей среды.
Проверьте записи keytab
После обновления файла keytab в нем должны отобразиться записи для kvno 3 (новый) и kvno 2 (старый) для той же учетной записи sqluser@CONTOSO.COM и SPN-ов. Чтобы проверить записи в keytab, выполните следующую klist команду:
klist -kte /var/opt/mssql/secrets/mssql.keytab
Изменение пароля учетной записи в Active Directory
Последним шагом является обновление пароля учетной записи network.privilegedadaccount или учетной записи, которая обладает служебными именами SQL Server в Windows Active Directory. В предыдущем сценарии необходимо обновить пароль sqluser@CONTOSO.COM в Active Directory. Измените пароль на <newpassword> указанный на шаге 3 в предыдущем разделе. Проверка подлинности Active Directory должна продолжать работать и без необходимости перезапускать службу SQL Server.
Связанный контент
- Руководство. Настройка проверки подлинности Active Directory в SQL Server на Linux с помощью adutil
- Руководство по настройке проверки подлинности Active Directory с помощью контейнеров SQL Server на Linux
- Общие сведения о проверке подлинности Active Directory для SQL Server на Linux и контейнеров
- Устранение неполадок проверки подлинности Active Directory для SQL Server на Linux и в контейнерах