ALTER LOGIN (Transact-SQL)

Изменения: 12 декабря 2006 г.

Изменяет свойства учетной записи SQL Server.

Значок ссылки на разделСинтаксические обозначения в Transact-SQL

Синтаксис

ALTER LOGIN login_name 
    { 
    <status_option> 
    | WITH <set_option> [ ,... ] 
    } 

<status_option> ::=
        ENABLE | DISABLE

<set_option> ::=            
    PASSWORD = 'password' | hashed_password HASHED
    [ 
      OLD_PASSWORD = 'oldpassword' 
      | <password_option> [ <password_option> ] 
    ]
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }
    | CREDENTIAL = credential_name
    | NO CREDENTIAL
  
<password_option> ::= 
    MUST_CHANGE | UNLOCK

Аргументы

  • login_name
    Указывает имя входа SQL Server, которое необходимо изменить.
  • ENABLE | DISABLE
    Включает или отключает данное имя входа.
  • PASSWORD **=**password'
    Применяется только к именам входа SQL Server. Указывает пароль для имени входа, которое необходимо изменить. При вводе пароля учитывается регистр символов.
  • PASSWORD **=**hashed_password
    Применимо только к ключевому слову HASHED. Указывает хэшированное значение пароля для создаваемого имени входа.
  • HASHED
    Применяется только к именам входа SQL Server. Указывает, что пароль, введенный после аргумента PASSWORD, уже хэширован. Если этот параметр не выбран, то пароль хэшируется перед сохранением в базе данных.

    ms189828.note(ru-ru,SQL.90).gifПримечание.
    Этот аргумент работает только с хэшами, созданными в SQL Server 2000 или более поздних версиях.
  • OLD_PASSWORD ='oldpassword'
    Применяется только к именам входа SQL Server. Текущий пароль имени входа, которому будет присвоен новый пароль. При вводе пароля учитывается регистр символов.
  • MUST_CHANGE
    Применяется только к именам входа SQL Server. Если данный параметр включен, SQL Server потребует ввести новый пароль при первом использовании измененного имени входа.
  • DEFAULT_DATABASE **=**database
    Указывает базу данных по умолчанию, присвоенную имени входа.
  • DEFAULT_LANGUAGE **=**language
    Указывает язык по умолчанию, присвоенный имени входа.
  • NAME = login_name
    Указывает новое имя для имени входа, которое необходимо переименовать. Если оно является именем входа Windows, то идентификатор защиты (SID) участника Windows, соответствующий новому имени, должен совпадать с идентификатором защиты, относящимся к имени входа SQL Server. Новое имя входа SQL Server не может содержать обратную косую черту (\).
  • CHECK_EXPIRATION = { ON | OFF }
    Применяется только к именам входа SQL Server. Указывает, надо ли принудительно применять к данному имени входа политику истечения срока действия паролей. Значение по умолчанию — OFF.
  • CHECK_POLICY = { ON | OFF }
    Применяется только к именам входа SQL Server. Указывает, что политика паролей Windows на компьютере, где выполняется SQL Server, должна быть принудительно применена к данному имени входа. Значение по умолчанию — ON.
  • CREDENTIAL = credential_name
    Имя учетных данных для сопоставления с именем входа SQL Server. Учетные данные уже должны существовать на сервере. Дополнительные сведения см. в разделе Учетные данные.
  • NO CREDENTIAL
    Удаляет любые существующие сопоставления имени входа с учетными данными сервера. Дополнительные сведения см. в разделе Учетные данные.
  • UNLOCK
    Применяется только к именам входа SQL Server. Указывает, что заблокированное имя входа должно быть разблокировано.

Замечания

Если параметр CHECK_POLICY имеет значение ON, аргумент HASHED использовать нельзя.

При изменении значения 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 с таким сочетанием параметров завершится ошибкой.

ms189828.note(ru-ru,SQL.90).gifВажно!
Параметры CHECK_EXPIRATION и CHECK_POLICY будут принудительно применяться только в или более поздних версиях. Дополнительные сведения см. в разделе Политика паролей.
ms189828.note(ru-ru,SQL.90).gifВажно!
Известная проблема в может помешать сбросу счетчика попыток неверного ввода пароля после достижения порогового значения Account Lockout. Это может вызвать немедленную блокировку при последующих неудачных попытках входа в систему. Сброс счетчика плохих паролей можно произвести вручную, ненадолго установив значение CHECK_POLICY = OFF, после чего установить CHECK_POLICY = ON. Дополнительные сведения о пороговом значении Account Lockout см. статью 818078 в базе знаний Майкрософт: Учетная запись пользователя может быть преждевременно заблокирована.

Нельзя использовать параметр ALTER_LOGIN с аргументом DISABLE для запрещения доступа группе Windows. Например, инструкция ALTER_LOGIN [домен\группа] DISABLE вернет следующее сообщение об ошибке:

«Сообщение 15151, уровень 16, состояние 1, строка 1.

Не удалось изменить имя входа "Домен\Группа", так как оно не существует или отсутствуют разрешения».

Это сделано намеренно.

Разрешения

Необходимо разрешение ALTER ANY LOGIN.

Если используется параметр CREDENTIAL, то также требуется разрешение ALTER ANY CREDENTIAL.

Если измененное имя входа является получателем разрешения CONTROL SERVER, то также требуется разрешение CONTROL SERVER для внесения следующих изменений:

  • Сброс пароля без указания старого.
  • Включение параметров MUST_CHANGE, CHECK_POLICY или CHECK_EXPIRATION.
  • Изменение имени входа.
  • Включение или отключение имени входа.
  • Сопоставление имени входа с другими учетными данными.

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

Примеры

А. Включение отключенного имени входа

Следующий пример включает имя входа Mary5.

ALTER LOGIN Mary5 ENABLE;

Б. Изменение пароля для имени входа

В следующем примере изменяется пароль Mary5.

ALTER LOGIN Mary5 WITH PASSWORD = '<enterStrongPasswordHere>';

В. Изменение имени входа

Следующий пример изменяет имя входа Mary5 на Joe2.

ALTER LOGIN Mary5 WITH NAME = Joe2;

Г. Сопоставление имени входа с учетными данными

Следующий пример сопоставляет имя входа Joe2 с учетными данными Custodian04.

ALTER LOGIN Joe2 WITH CREDENTIAL = Custodian04;

См. также

Справочник

CREATE LOGIN (Transact-SQL)
DROP LOGIN (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL)
EVENTDATA (Transact-SQL)

Другие ресурсы

Учетные данные

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

12 декабря 2006 г.

Добавления
  • Добавлены сведения об аргументе HASHED.
  • Добавлены сведения об использовании аргумента DISABLE для запрещения доступа группе Windows.