ALTER LOGIN (Transact-SQL)

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

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

Примечание.

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

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

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

* SQL Server *  

 

SQL Server

Синтаксис

-- Syntax for 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. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].

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

PASSWORD ='password' применяется только к именам входа SQL Server. Указывает пароль для имени входа, которое необходимо изменить. В паролях учитывается регистр символов.

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

Внимание

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

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

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

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

DEFAULT_DATABASE =database — указывает базу данных по умолчанию, связываемую с именем входа.

DEFAULT_LANGUAGE =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. Учетные данные уже должны существовать на сервере. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine). Учетные данные не могут быть сопоставлены с именем входа sa.

NO CREDENTIAL — удаляет все существующие сопоставления имени входа с учетными данными сервера. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine).

РАЗБЛОКИРОВКА применяется только к именам входа SQL Server. Указывает, что заблокированное имя входа должно быть разблокировано.

ADD CREDENTIAL — добавляет к имени входа учетные данные поставщика расширенного управления ключами. Дополнительные сведения см. в статье Расширенное управление ключами (Extensible Key Management).

DROP CREDENTIAL — удаляет из имени входа учетные данные поставщика расширенного управления ключами. Подробнее см. статью [Расширенное управление ключами (EKM)] (../.. /relational-databases/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 does not exist or you do not have permission."

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

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

Разрешения

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

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

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

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

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

Примеры

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

Следующий пример включает имя входа 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;

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

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

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

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

В следующем примере имя входа Mary5 сопоставляется с учетными данными 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

SQL Server

Синтаксис

-- Syntax for Azure SQL Database

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. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].

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

PASSWORD ='password' применяется только к именам входа SQL Server. Указывает пароль для имени входа, которое необходимо изменить. В паролях учитывается регистр символов.

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

Внимание

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

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

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

Замечания

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

Разрешения

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

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

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

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

Примеры

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

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

Следующий пример включает имя входа 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;

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

В следующем примере имя входа Mary5 сопоставляется с учетными данными 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

Синтаксис

-- Syntax for SQL Server and Azure SQL Managed Instance

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 | DISABLE — включает или отключает это имя входа. Отключение входа не влияет на поведение имен входа, которые уже подключены. (Используйте инструкцию KILL для завершения существующего подключения.) Отключенные имена входа сохраняют свои разрешения и по-прежнему могут быть олицетворены.

DEFAULT_DATABASE =database — указывает базу данных по умолчанию, связываемую с именем входа.

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

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

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

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

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

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

OLD_PASSWORD ='oldpassword' применяется только к именам входа 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. Учетные данные уже должны существовать на сервере. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine). Учетные данные не могут быть сопоставлены с именем входа sa.

NO CREDENTIAL — удаляет все существующие сопоставления имени входа с учетными данными сервера. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine).

РАЗБЛОКИРОВКА применяется только к именам входа SQL Server. Указывает, что заблокированное имя входа должно быть разблокировано.

ADD CREDENTIAL — добавляет к имени входа учетные данные поставщика расширенного управления ключами. Дополнительные сведения см. в статье Расширенное управление ключами (Extensible Key Management).

DROP CREDENTIAL — удаляет из имени входа учетные данные поставщика расширенного управления ключами. Дополнительные сведения см. в статье Расширенное управление ключами (Extensible Key Management).

Замечания

Если параметр 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 does not exist or you do not 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. См. выше информацию о том, какие аргументы поддерживаются.

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

Следующий пример включает имя входа 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;

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

В следующем примере имя входа Mary5 сопоставляется с учетными данными 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

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

ALTER LOGIN [joe@contoso.com] DISABLE

См. также

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

Синтаксис

-- Syntax for 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. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].

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

PASSWORD ='password' применяется только к именам входа SQL Server. Указывает пароль для имени входа, которое необходимо изменить. В паролях учитывается регистр символов.

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

Внимание

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

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

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

Замечания

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

Разрешения

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

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

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

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

Примеры

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

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

Следующий пример включает имя входа 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;

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

В следующем примере имя входа Mary5 сопоставляется с учетными данными 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

См. также

* Analytics
Platform System (PDW) *

 

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

Синтаксис

-- Syntax for Analytics Platform System

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. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].

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

PASSWORD ='password' применяется только к именам входа SQL Server. Указывает пароль для имени входа, которое необходимо изменить. В паролях учитывается регистр символов.

Внимание

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

OLD_PASSWORD ='oldpassword' применяется только к именам входа 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 does not exist or you do not have permission."

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

Разрешения

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

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

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

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

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

Примеры

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

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

Следующий пример включает имя входа 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;

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

В следующем примере имя входа Mary5 сопоставляется с учетными данными 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

См. также