Поделиться через


Политика паролей

Область применения:SQL Server

SQL Server может использовать механизмы политики паролей Windows. Политика паролей применяется к имени входа, которое использует проверку подлинности SQL Server, и к пользователю автономной базы данных с паролем.

SQL Server может применять те же политики сложности и срока действия, которые используются в Windows, к паролям, используемым внутри SQL Server. Эти возможности построены на API-интерфейсе NetValidatePasswordPolicy .

Примечание.

База данных SQL Azure обеспечивает сложность пароля. Разделы о истечении срока действия пароля и политике не применяются к базе данных SQL Azure. Сведения о политике паролей для Управляемый экземпляр SQL Azure см. в Управляемый экземпляр SQL часто задаваемых вопросов.

Сложность пароля

Политика сложности паролей позволяет отражать атаки, использующие простой перебор, путем увеличения числа возможных паролей. Если применяется политика сложности паролей, новые пароли должны удовлетворять следующим требованиям.

  • Пароль не содержит имя учетной записи пользователя.

  • Длина пароля составляет не менее восьми символов.

  • Пароль содержит символы, соответствующие трем из следующих четырех категорий:

    • Латинские прописные буквы (A через Z)
    • Латинские строчные буквы (от a до z)
    • Базовые 10 цифр (0 через 9)
    • Неэлементные символы, такие как восклицательный знак (), знак доллара (!), знак номера ($#) или процент (%).

Пароли могут иметь длину до 128 символов. Рекомендуется использовать максимально длинные и сложные пароли.

Срок действия пароля

Политика истечения срока действия паролей используется для управления продолжительностью действия пароля. Когда SQL Server применяет политику истечения срока действия паролей, пользователи получают уведомления о необходимости изменения старых паролей, а учетные записи с истекшим сроком действия пароля отключаются.

Применение политики

Применение политики паролей можно настроить отдельно для каждого имени входа SQL Server. Используйте ALTER LOGIN для настройки параметров политики паролей для входа SQL Server. Для настройки принудительного применения политики паролей действуют следующие правила.

  • Когда CHECK_POLICY изменяется на ON, наблюдаются следующие изменения:

    • CHECK_EXPIRATION также устанавливается в ON, если только его явно не установить как OFF.
    • Журнал паролей инициализируется значением хэша текущего пароля.
    • Включены также параметрыпродолжительность существования блокировки учетной записи, пороговое значение блокировки учетной записии сброс счетчика блокировки учетной записи после .
  • Когда CHECK_POLICY заменяется на OFF, наблюдаются следующие изменения:

    • CHECK_EXPIRATION также задано значение OFF.
    • Журнал паролей очищается.
    • Значение параметра lockout_time сбрасывается.

Некоторые сочетания параметров политики не поддерживаются.

  • Если задано MUST_CHANGE, CHECK_EXPIRATION и CHECK_POLICY должны быть установлены на ON. В противном случае выполнение инструкции приведет к ошибке.

  • Если CHECK_POLICY задано значение OFF, CHECK_EXPIRATION не удается задать значение ON. Инструкция ALTER LOGIN, имеющая такое сочетание параметров, завершается сбоем.

  • Параметр CHECK_POLICY = ON предотвращает создание паролей, которые:

    • пустых или неопределенных;
    • совпадающих с именем компьютера или именем входа;
    • Любой из следующих элементов: password, admin, administratorsasysadmin

Политика безопасности может быть настроена в Windows или получена из домена. Для просмотра политики паролей на компьютере используется оснастка консоли управления "Локальная политика безопасности" (secpol.msc).

Примечание.

Для учетных записей входа SQL Server, у которых включена функция CHECK_POLICY, если вы выполняете команду ALTER LOGIN и не включаете в команду OLD_PASSWORD, чтобы изменить пароль, то политика истории паролей игнорируется. Это поведение путем разработки, позволяющее сбрасывать пароли, несмотря на любые ранее используемые пароли. Другие проверки, связанные с CHECK_POLICY, включая длину и сложность, проверяются независимо от того, используется ли OLD_PASSWORD.

Проверка сведений о политике паролей пользователя SQL

Вы можете просмотреть политики паролей пользователей SQL и даты окончания срока действия в SQL Server с помощью следующего запроса. Хотя следующий запрос также работает в База данных SQL Azure, в База данных SQL Azure применяется только сложность пароля.

SELECT name,
       is_policy_checked,
       is_expiration_checked,
       LOGINPROPERTY(name, 'IsMustChange') AS IsMustChange,
       LOGINPROPERTY(name, 'IsLocked') AS IsLocked,
       LOGINPROPERTY(name, 'LockoutTime') AS LockoutTime,
       LOGINPROPERTY(name, 'PasswordLastSetTime') AS PasswordLastSetTime,
       LOGINPROPERTY(name, 'IsExpired') AS IsExpired,
       LOGINPROPERTY(name, 'BadPasswordCount') AS BadPasswordCount,
       LOGINPROPERTY(name, 'BadPasswordTime') AS BadPasswordTime,
       LOGINPROPERTY(name, 'HistoryLength') AS HistoryLength,
       modify_date
FROM sys.sql_logins;