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


ALTER LOGIN (Transact-SQL)

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

соглашения о синтаксисе Transact-SQL

Заметка

идентификатор Microsoft Entra ID ранее был известен как Azure Active Directory (Azure AD).

Выбор продукта

В следующей строке выберите интересующее вас имя продукта и отображается только информация о продукте.

* SQL Server *  

базы данных SQL

управляемого экземпляра SQL

Azure Synapse
аналитики

Платформа аналитики
системы (PDW)

 

SQL Server

Синтаксис для SQL Server

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ , ... ]
    | <cryptographic_credential_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

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name

Аргументы

login_name

Указывает имя измененного имени входа SQL Server. Имена входа домена должны быть заключены в квадратные скобки в формате [<domain>\<user>].

ENABLE | ОТКЛЮЧИТЬ

Включает или отключает это имя входа. Отключение имени входа не влияет на поведение имен входа, которые уже подключены. (Используйте инструкцию KILL для завершения существующего подключения.) Отключенные имена входа сохраняют свои разрешения и по-прежнему могут быть олицетворены.

PASSWORD = 'пароль'

Применяется только к именам входа SQL Server. Указывает пароль для измененного имени входа. Пароли чувствительны к регистру.

PASSWORD = hashed_password

Применяется только к ключевому слову HASHED. Указывает хэшированное значение пароля для создаваемого имени входа.

Важный

Когда имя входа (или пользователь автономной базы данных) подключается и проходит проверку подлинности, подключение кэширует сведения об удостоверении входа. Для входа проверки подлинности Windows это включает сведения о членстве в группах Windows. Удостоверение входа остается прошедшим проверку подлинности до тех пор, пока подключение сохраняется. Чтобы принудительно изменить удостоверение, например сброс пароля или изменение членства в группе Windows, имя входа должно выйти из центра проверки подлинности (Windows или SQL Server) и снова войти. Член предопределенных ролей сервера sysadmin или любого имени входа с разрешением ALTER ANY CONNECTION может использовать команду KILL для завершения подключения и принудительного входа для повторного подключения. СРЕДА SQL Server Management Studio может повторно использовать сведения о подключении при открытии нескольких подключений к окнам обозревателя объектов и редактора запросов. Закройте все подключения для принудительного повторного подключения.

ХЭШИРОВАННЫЕ

Применяется только к именам входа SQL Server. Указывает, что пароль, введенный после хэшированного аргумента PASSWORD. Если этот параметр не выбран, пароль хэшируется перед сохранением в базе данных. Этот параметр следует использовать только для синхронизации входа между двумя серверами. Не используйте параметр HASHED для регулярного изменения паролей.

OLD_PASSWORD = 'old_password'

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

MUST_CHANGE

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

DEFAULT_DATABASE = базы данных

Указывает базу данных по умолчанию, назначаемую имени входа.

DEFAULT_LANGUAGE = языка

Указывает язык по умолчанию, назначенный имени входа. Язык по умолчанию для всех имен входа базы данных SQL — английский и не может быть изменен. Язык по умолчанию для входа sa в SQL Server на Linux — английский, но его можно изменить.

NAME = login_name

Новое имя имени имени входа, которое переименовано. Если это имя входа Windows, идентификатор безопасности субъекта 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. Учетные данные уже должны существовать на сервере. Дополнительные сведения см. в учетных данных. Учетные данные нельзя сопоставить с именем входа sa.

НЕТ УЧЕТНЫХ ДАННЫХ

Удаляет любое существующее сопоставление имени входа с учетными данными сервера. Дополнительные сведения см. в учетных данных.

ОТПИРАТЬ

Применяется только к именам входа SQL Server. Указывает, что необходимо разблокировать имя входа, заблокированное.

ДОБАВЛЕНИЕ УЧЕТНЫХ ДАННЫХ

Добавляет учетные данные поставщика расширенного управления ключами (EKM) в имя входа. Дополнительные сведения см. в разделе Расширяемое управление ключами (EKM).

УДАЛЕНИЕ УЧЕТНЫХ ДАННЫХ

Удаляет учетные данные поставщика расширенного управления ключами (EKM) из имени входа. Дополнительные сведения см. в разделе [Расширяемое управление ключами (EKM)] (.). /.. /relational-database/security/encryption/extensible-key-management-ekm.md).

Замечания

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

При изменении CHECK_POLICY на ON происходит следующее поведение:

  • Журнал паролей инициализирован со значением текущего хэша паролей.

При изменении CHECK_POLICY на OFF происходит следующее поведение:

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

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

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

Нельзя использовать ALTER LOGIN с аргументом DISABLE, чтобы запретить доступ к группе Windows. Например, ALTER LOGIN [<domain>\<group>] DISABLE возвращает следующее сообщение об ошибке:

"Msg 15151, Level 16, State 1, Line 1
Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission.

Это по дизайну.

В базе данных SQL данные для входа, необходимые для проверки подлинности подключений и правил брандмауэра на уровне сервера, временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться, что база данных имеет последнюю версию таблицы входа, выполните DBCC FLUSHAUTHCACHE.

Разрешения

Требуется разрешение ALTER ANY LOGIN.

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

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

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

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

Примеры

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

В следующем примере включена Mary5входа.

ALTER LOGIN Mary5 ENABLE;

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

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

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

C. Изменение пароля имени входа при входе в систему в качестве имени входа

Если вы пытаетесь изменить пароль имени входа, с которым вы вошли в систему, и у вас нет разрешения ALTER ANY LOGIN, необходимо указать параметр OLD_PASSWORD.

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

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

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

ALTER LOGIN Mary5 WITH NAME = John2;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

F. Сопоставление имени входа с учетными данными управления расширяемыми ключами

В следующем примере Mary5 входа сопоставляется с учетными данными EKM EKMProvider1.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Разблокировка имени входа

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

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

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

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;
ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Изменение пароля имени входа с помощью HASHED

В следующем примере пароль для входа TestUser изменяется на уже хэшированное значение.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

* База данных SQL *

управляемого экземпляра SQL

Azure Synapse
аналитики

Платформа аналитики
системы (PDW)

 

База данных SQL

Синтаксис базы данных SQL Azure

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

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
    ]
    | NAME = login_name

Аргументы

login_name

Указывает имя измененного имени входа SQL Server. Имена входа домена должны быть заключены в квадратные скобки в формате [domain\user].

ENABLE | ОТКЛЮЧИТЬ

Включает или отключает это имя входа. Отключение имени входа не влияет на поведение имен входа, которые уже подключены. (Используйте инструкцию KILL для завершения существующего подключения.) Отключенные имена входа сохраняют свои разрешения и по-прежнему могут быть олицетворены.

PASSWORD = 'пароль'

Применяется только к именам входа SQL Server. Указывает пароль для измененного имени входа. Пароли чувствительны к регистру.

Непрерывно активные подключения к базе данных SQL требуют повторной проверки подлинности (выполняемых ядром СУБД) по крайней мере каждые 10 часов. Ядро СУБД пытается повторно выполнить проверку подлинности с помощью первоначально отправленного пароля, и входные данные пользователя не требуются. По соображениям производительности при сбросе пароля в базе данных SQL подключение не выполняется повторно, даже если подключение сбрасывается из-за пула подключений. Это отличается от поведения локального SQL Server. Если пароль изменился с момента первоначального разрешения подключения, подключение должно быть завершено и новое подключение, сделанное с помощью нового пароля. Пользователь с разрешением KILL DATABASE CONNECTION может явно завершить подключение к базе данных SQL с помощью команды KILL. Дополнительные сведения см. в разделе KILL.

Важный

Когда имя входа (или пользователь автономной базы данных) подключается и проходит проверку подлинности, подключение кэширует сведения об удостоверении входа. Для входа проверки подлинности Windows это включает сведения о членстве в группах Windows. Удостоверение входа остается прошедшим проверку подлинности до тех пор, пока подключение сохраняется. Чтобы принудительно изменить удостоверение, например сброс пароля или изменение членства в группе Windows, имя входа должно выйти из центра проверки подлинности (Windows или SQL Server) и снова войти. Участник предопределенной роли сервера sysadmin или любого входа с разрешением ALTER ANY CONNECTION ALTER ANY CONNECTION может использовать команду KILL, чтобы завершить подключение и принудительно выполнить повторное подключение. СРЕДА SQL Server Management Studio может повторно использовать сведения о подключении при открытии нескольких подключений к окнам обозревателя объектов и редактора запросов. Закройте все подключения для принудительного повторного подключения.

OLD_PASSWORD = 'old_password'

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

NAME = login_name

Новое имя имени имени входа, которое переименовано. Если это имя входа Windows, идентификатор безопасности субъекта Windows, соответствующий новому имени, должен соответствовать идентификатору безопасности, связанному с именем входа в SQL Server. Новое имя имени входа SQL Server не может содержать символ обратной косой черты (\).

Замечания

В базе данных SQL данные для входа, необходимые для проверки подлинности подключений и правил брандмауэра на уровне сервера, временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться, что база данных имеет последнюю версию таблицы входа, выполните DBCC FLUSHAUTHCACHE.

Разрешения

Требуется разрешение ALTER ANY LOGIN.

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

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

Субъект может изменить пароль для собственного имени входа.

Примеры

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

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

В следующем примере включена Mary5входа.

ALTER LOGIN Mary5 ENABLE;

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

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

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

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

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

ALTER LOGIN Mary5 WITH NAME = John2;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Сопоставление имени входа с учетными данными управления расширяемыми ключами

В следующем примере Mary5 входа сопоставляется с учетными данными EKM EKMProvider1.

применимо к: SQL Server 2008 (10.0.x) и более поздних версий.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Изменение пароля имени входа с помощью HASHED

В следующем примере пароль для входа TestUser изменяется на уже хэшированное значение.

применимо к: SQL Server 2008 (10.0.x) и более поздних версий.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

базы данных SQL

* Управляемый экземпляр SQL *

Azure Synapse
аналитики

Платформа аналитики
системы (PDW)

 

Управляемый экземпляр SQL Azure

Синтаксис для управляемого экземпляра SQL Server и Azure SQL

ALTER LOGIN login_name
    {
    <status_option>
    | WITH <set_option> [ , ... ]
    | <cryptographic_credential_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

<cryptographic_credentials_option> ::=
    ADD CREDENTIAL credential_name
  | DROP CREDENTIAL credential_name
-- Syntax for Azure SQL Managed Instance using Microsoft Entra logins

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

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
     DEFAULT_DATABASE = database
   | DEFAULT_LANGUAGE = language

Аргументы

Аргументы, применимые к именам входа SQL и Microsoft Entra

login_name

Указывает имя измененного имени входа SQL Server. Имена входа Microsoft Entra должны быть указаны как user@domain. Например, john.smith@contoso.comили как имя группы Microsoft Entra или приложения. Для имен входа Microsoft Entra login_name должен соответствовать существующему имени входа Microsoft Entra, созданному в базе данных master.

ENABLE | ОТКЛЮЧИТЬ

Включает или отключает это имя входа. Отключение имени входа не влияет на поведение имен входа, которые уже подключены. (Используйте инструкцию KILL для завершения существующего подключения.) Отключенные имена входа сохраняют свои разрешения и по-прежнему могут быть олицетворены.

DEFAULT_DATABASE = базы данных

Указывает базу данных по умолчанию, назначаемую имени входа.

DEFAULT_LANGUAGE = языка

Указывает язык по умолчанию, назначенный имени входа. Язык по умолчанию для всех имен входа базы данных SQL — английский и не может быть изменен. Язык по умолчанию для входа sa в SQL Server на Linux — английский, но его можно изменить.

Аргументы, применимые только к именам входа SQL

PASSWORD = 'пароль'

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

Непрерывно активные подключения к базе данных SQL требуют повторной проверки подлинности (выполняемых ядром СУБД) по крайней мере каждые 10 часов. Ядро СУБД пытается повторно выполнить проверку подлинности с помощью первоначально отправленного пароля, и входные данные пользователя не требуются. По соображениям производительности при сбросе пароля в базе данных SQL подключение не выполняется повторно, даже если подключение сбрасывается из-за пула подключений. Это отличается от поведения локального SQL Server. Если пароль изменился с момента первоначального разрешения подключения, подключение должно быть завершено и новое подключение, сделанное с помощью нового пароля. Пользователь с разрешением KILL DATABASE CONNECTION может явно завершить подключение к базе данных SQL с помощью команды KILL. Дополнительные сведения см. в разделе KILL.

PASSWORD = hashed_password

Применяется только к ключевому слову HASHED. Указывает хэшированное значение пароля для создаваемого имени входа.

ХЭШИРОВАННЫЕ

Применяется только к именам входа SQL Server. Указывает, что пароль, введенный после хэшированного аргумента PASSWORD. Если этот параметр не выбран, пароль хэшируется перед сохранением в базе данных. Этот параметр следует использовать только для синхронизации входа между двумя серверами. Не используйте параметр HASHED для регулярного изменения паролей.

OLD_PASSWORD = 'old_password'

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

MUST_CHANGE

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

NAME = login_name

Новое имя имени имени входа, которое переименовано. Если имя для входа является именем Windows, идентификатор безопасности субъекта 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. Учетные данные уже должны существовать на сервере. Дополнительные сведения см. в учетных данных. Учетные данные нельзя сопоставить с именем входа sa.

НЕТ УЧЕТНЫХ ДАННЫХ

Удаляет любое существующее сопоставление имени входа с учетными данными сервера. Дополнительные сведения см. в учетных данных.

ОТПИРАТЬ

Применяется только к именам входа SQL Server. Указывает, что необходимо разблокировать имя входа, заблокированное.

ДОБАВЛЕНИЕ УЧЕТНЫХ ДАННЫХ

Добавляет учетные данные поставщика расширенного управления ключами (EKM) в имя входа. Дополнительные сведения см. в разделе Расширяемое управление ключами (EKM).

УДАЛЕНИЕ УЧЕТНЫХ ДАННЫХ

Удаляет учетные данные поставщика расширенного управления ключами (EKM) из имени входа. Дополнительные сведения см. в разделе Расширяемое управление ключами (EKM).

Замечания

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

При изменении CHECK_POLICY на ON происходит следующее поведение:

  • Журнал паролей инициализирован со значением текущего хэша паролей.

При изменении CHECK_POLICY на OFF происходит следующее поведение:

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

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

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

Вы не можете использовать ALTER_LOGIN с аргументом DISABLE, чтобы запретить доступ к группе Windows. Это по дизайну. Например, ALTER_LOGIN [domain\group] DISABLE возвращает следующее сообщение об ошибке:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."

В базе данных SQL данные для входа, необходимые для проверки подлинности подключений и правил брандмауэра на уровне сервера, временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться, что база данных имеет последнюю версию таблицы входа, выполните DBCC FLUSHAUTHCACHE.

Разрешения

Требуется разрешение ALTER ANY LOGIN.

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

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

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

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

Только субъект SQL с правами sysadmin может выполнить команду ALTER LOGIN для имени входа Microsoft Entra.

Примеры

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

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

В следующем примере включена Mary5входа.

ALTER LOGIN Mary5 ENABLE;

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

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

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

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

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

ALTER LOGIN Mary5 WITH NAME = John2;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Сопоставление имени входа с учетными данными управления расширяемыми ключами

В следующем примере Mary5 входа сопоставляется с учетными данными EKM EKMProvider1.

применяется к: SQL Server 2008 (10.0.x) и более поздним версиям, а также к управляемому экземпляру SQL Azure.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Разблокировка имени входа

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

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

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

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Изменение пароля имени входа с помощью HASHED

В следующем примере пароль для входа TestUser изменяется на уже хэшированное значение.

применяется к: SQL Server 2008 (10.0.x) и более поздним версиям, а также к управляемому экземпляру SQL Azure.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

H. Отключение входа пользователя Microsoft Entra

В следующем примере отключается вход пользователя Microsoft Entra joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE;

базы данных SQL

управляемого экземпляра SQL

* Azure Synapse
Аналитика *

Платформа аналитики
системы (PDW)

 

Azure Synapse Analytics

Синтаксис Для Azure Synapse

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

<status_option> ::=
    ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
    ]
    | NAME = login_name

Аргументы

login_name

Указывает имя измененного имени входа SQL Server. Имена входа домена должны быть заключены в квадратные скобки в формате [domain\user].

ENABLE | ОТКЛЮЧИТЬ

Включает или отключает это имя входа. Отключение имени входа не влияет на поведение имен входа, которые уже подключены. (Используйте инструкцию KILL для завершения существующего подключения.) Отключенные имена входа сохраняют свои разрешения и по-прежнему могут быть олицетворены.

PASSWORD = 'пароль'

Применяется только к именам входа SQL Server. Указывает пароль для измененного имени входа. Пароли чувствительны к регистру.

Непрерывно активные подключения к базе данных SQL требуют повторной проверки подлинности (выполняемых ядром СУБД) по крайней мере каждые 10 часов. Ядро СУБД пытается повторно выполнить проверку подлинности с помощью первоначально отправленного пароля, и входные данные пользователя не требуются. По соображениям производительности при сбросе пароля в базе данных SQL подключение не выполняется повторно, даже если подключение сбрасывается из-за пула подключений. Это отличается от поведения локального SQL Server. Если пароль изменился с момента первоначального разрешения подключения, подключение должно быть завершено и новое подключение, сделанное с помощью нового пароля. Пользователь с разрешением KILL DATABASE CONNECTION может явно завершить подключение к базе данных SQL с помощью команды KILL. Дополнительные сведения см. в разделе KILL.

Важный

Когда имя входа (или пользователь автономной базы данных) подключается и проходит проверку подлинности, подключение кэширует сведения об удостоверении входа. Для входа проверки подлинности Windows это включает сведения о членстве в группах Windows. Удостоверение входа остается прошедшим проверку подлинности до тех пор, пока подключение сохраняется. Чтобы принудительно изменить удостоверение, например сброс пароля или изменение членства в группе Windows, имя входа должно выйти из центра проверки подлинности (Windows или SQL Server) и снова войти. Участник предопределенной роли сервера sysadmin или любого входа с разрешением ALTER ANY CONNECTION ALTER ANY CONNECTION может использовать команду KILL, чтобы завершить подключение и принудительно выполнить повторное подключение. СРЕДА SQL Server Management Studio может повторно использовать сведения о подключении при открытии нескольких подключений к окнам обозревателя объектов и редактора запросов. Закройте все подключения для принудительного повторного подключения.

OLD_PASSWORD = 'old_password'

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

NAME = login_name

Новое имя имени имени входа, которое переименовано. Если это имя входа Windows, идентификатор безопасности субъекта Windows, соответствующий новому имени, должен соответствовать идентификатору безопасности, связанному с именем входа в SQL Server. Новое имя имени входа SQL Server не может содержать символ обратной косой черты (\).

Замечания

В базе данных SQL данные для входа, необходимые для проверки подлинности подключений и правил брандмауэра на уровне сервера, временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться, что база данных имеет последнюю версию таблицы входа, выполните DBCC FLUSHAUTHCACHE.

Разрешения

Требуется разрешение ALTER ANY LOGIN.

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

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

Субъект может изменить пароль для собственного имени входа.

Примеры

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

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

В следующем примере включена Mary5входа.

ALTER LOGIN Mary5 ENABLE;

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

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

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

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

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

ALTER LOGIN Mary5 WITH NAME = John2;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Сопоставление имени входа с учетными данными управления расширяемыми ключами

В следующем примере Mary5 входа сопоставляется с учетными данными EKM EKMProvider1.

применимо к: SQL Server 2008 (10.0.x) и более поздних версий.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Разблокировка имени входа

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

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

G. Изменение пароля имени входа с помощью HASHED

В следующем примере пароль для входа TestUser изменяется на уже хэшированное значение.

применимо к: SQL Server 2008 (10.0.x) и более поздних версий.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO

базы данных SQL

управляемого экземпляра SQL

Azure Synapse
аналитики

* Аналитика
Платформа (PDW) *

 

Система платформы аналитики

Синтаксис системы платформы аналитики

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

<status_option> ::= ENABLE | DISABLE

<set_option> ::=
    PASSWORD = 'password'
    [
      OLD_PASSWORD = 'oldpassword'
      | <password_option> [ <password_option> ]
    ]
    | NAME = login_name
    | CHECK_POLICY = { ON | OFF }
    | CHECK_EXPIRATION = { ON | OFF }

<password_option> ::=
    MUST_CHANGE | UNLOCK

Аргументы

login_name

Указывает имя измененного имени входа SQL Server. Имена входа домена должны быть заключены в квадратные скобки в формате [domain\user].

ENABLE | ОТКЛЮЧИТЬ

Включает или отключает это имя входа. Отключение имени входа не влияет на поведение имен входа, которые уже подключены. (Используйте инструкцию KILL для завершения существующего подключения.) Отключенные имена входа сохраняют свои разрешения и по-прежнему могут быть олицетворены.

PASSWORD = 'пароль'

Применяется только к именам входа SQL Server. Указывает пароль для измененного имени входа. Пароли чувствительны к регистру.

Важный

Когда имя входа (или пользователь автономной базы данных) подключается и проходит проверку подлинности, подключение кэширует сведения об удостоверении входа. Для входа проверки подлинности Windows это включает сведения о членстве в группах Windows. Удостоверение входа остается прошедшим проверку подлинности до тех пор, пока подключение сохраняется. Чтобы принудительно изменить удостоверение, например сброс пароля или изменение членства в группе Windows, имя входа должно выйти из центра проверки подлинности (Windows или SQL Server) и снова войти. Участник предопределенной роли сервера sysadmin или любого входа с разрешением ALTER ANY CONNECTION ALTER ANY CONNECTION может использовать команду KILL, чтобы завершить подключение и принудительно выполнить повторное подключение. СРЕДА SQL Server Management Studio может повторно использовать сведения о подключении при открытии нескольких подключений к окнам обозревателя объектов и редактора запросов. Закройте все подключения для принудительного повторного подключения.

OLD_PASSWORD = 'old_password'

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

MUST_CHANGE

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

NAME = login_name

Новое имя имени имени входа, которое переименовано. Если имя для входа является именем Windows, идентификатор безопасности субъекта Windows, соответствующий новому имени, должен соответствовать идентификатору безопасности, связанному с именем входа в SQL Server. Новое имя имени входа SQL Server не может содержать символ обратной косой черты (\).

CHECK_EXPIRATION = { ON | OFF }

Применяется только к именам входа SQL Server. Указывает, должна ли политика истечения срока действия пароля применяться для этого имени входа. Значение по умолчанию — OFF.

CHECK_POLICY = { ON | OFF }

Применяется только к именам входа SQL Server. Указывает, что политики паролей Windows компьютера, на котором запущен SQL Server, должны применяться для этого имени входа. Значение по умолчанию — ON.

ОТПИРАТЬ

Применяется только к именам входа SQL Server. Указывает, что необходимо разблокировать имя входа, заблокированное.

Замечания

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

При изменении CHECK_POLICY на ON происходит следующее поведение:

  • Журнал паролей инициализирован со значением текущего хэша паролей.

При изменении CHECK_POLICY на OFF происходит следующее поведение:

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

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

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

Вы не можете использовать ALTER_LOGIN с аргументом DISABLE, чтобы запретить доступ к группе Windows. Это по дизайну. Например, ALTER_LOGIN [domain\group] DISABLE возвращает следующее сообщение об ошибке:

"Msg 15151, Level 16, State 1, Line 1 "Cannot alter the login '*Domain\Group*', because it doesn't exist or you don't have permission."

В базе данных SQL данные для входа, необходимые для проверки подлинности подключений и правил брандмауэра на уровне сервера, временно кэшируются в каждой базе данных. Этот кэш периодически обновляется. Чтобы принудительно обновить кэш проверки подлинности и убедиться, что база данных имеет последнюю версию таблицы входа, выполните DBCC FLUSHAUTHCACHE.

Разрешения

Требуется разрешение ALTER ANY LOGIN.

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

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

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

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

Примеры

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

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

В следующем примере включена Mary5входа.

ALTER LOGIN Mary5 ENABLE;

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

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

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

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

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

ALTER LOGIN Mary5 WITH NAME = John2;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

E. Сопоставление имени входа с учетными данными управления расширяемыми ключами

В следующем примере Mary5 входа сопоставляется с учетными данными EKM EKMProvider1.

применимо к: SQL Server 2008 (10.0.x) и более поздних версий.

ALTER LOGIN Mary5 ADD CREDENTIAL EKMProvider1;
GO

F. Разблокировка имени входа

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

ALTER LOGIN [Mary5] WITH PASSWORD = '****' UNLOCK;
GO

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

ALTER LOGIN [Mary5] WITH CHECK_POLICY = OFF;

ALTER LOGIN [Mary5] WITH CHECK_POLICY = ON;
GO

G. Изменение пароля имени входа с помощью HASHED

В следующем примере пароль для входа TestUser изменяется на уже хэшированное значение.

применимо к: SQL Server 2008 (10.0.x) и более поздних версий.

ALTER LOGIN TestUser WITH PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED;
GO