ALTER LOGIN (Transact-SQL)ALTER LOGIN (Transact-SQL)

Изменяет свойства учетной записи входа SQL ServerSQL Server.Changes the properties of a SQL ServerSQL Server login account.

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

Выберите продукт!Click a product!

В следующей строке щелкните имя продукта, который вас интересует.In the following row, click whichever product name you are interested in. На этой веб-странице отобразится другой контент, относящийся к выбранному продукту.The click displays different content here on this webpage, appropriate for whichever product you click.

* SQL Server *  * SQL Server *   Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
Хранилище данных
SQL
SQL Data
Warehouse
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

SQL ServerSQL Server

СинтаксисSyntax

-- 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

АргументыArguments

login_name — указывает имя входа SQL ServerSQL Server, которое необходимо изменить.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE — включает или отключает это имя входа.ENABLE | DISABLE Enables or disables this login. Отключение входа не влияет на поведение имен входа, которые уже подключены.Disabling a login does not affect the behavior of logins that are already connected. (Чтобы завершить существующие подключения, используйте инструкцию KILL.) Отключенные имена входа сохраняют свои разрешения и все еще могут быть олицетворены.(Use the KILL statement to terminate an existing connections.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password '  — применятся только к именам входа SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Указывает пароль для имени входа, которое необходимо изменить.Specifies the password for the login that is being changed. В паролях учитывается регистр символов.Passwords are case-sensitive.

PASSWORD = hashed_password — применяется только к ключевому слову HASHED.PASSWORD =hashed_password Applies to the HASHED keyword only. Указывает хэшированное значение пароля для создаваемого имени входа.Specifies the hashed value of the password for the login that is being created.

Важно!

Если имя входа (или пользователь автономной базы данных) используется для подключения и выполняется проверка подлинности, данные идентификаторов имени входа при подключении помещаются в кэш.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. Для имени входа, использующегося при проверке подлинности Windows, сюда относятся данные о членстве в группах Windows.For a Windows Authentication login, this includes information about membership in Windows groups. Идентификатор имени входа остается зарегистрированным на протяжении периода, в который поддерживается соединение.The identity of the login remains authenticated as long as the connection is maintained. Для принудительного изменения идентификатора, например сброса пароля или изменения членства в группе Windows, имя входа необходимо использовать для выхода из центра проверки подлинности (Windows или SQL ServerSQL Server), а затем повторно выполнить вход.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. Член предопределенной роли сервера sysadmin или любого имени входа с разрешением ALTER ANY CONNECTION может использовать команду KILL и принудительно разорвать подключение для выполнения повторного подключения с использованием имени входа.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio может повторно использовать сведения о соединении при открытии нескольких соединений в окнах обозревателя объектов и редактора запросов.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Закройте все соединения для принудительного повторного подключения.Close all connections to force reconnection.

HASHED — применяется только к именам входа SQL ServerSQL Server.HASHED Applies to SQL ServerSQL Server logins only. Указывает, что пароль, введенный после аргумента PASSWORD, уже хэширован.Specifies that the password entered after the PASSWORD argument is already hashed. Если этот параметр не выбран, то пароль хэшируется перед сохранением в базе данных.If this option is not selected, the password is hashed before being stored in the database. Этот параметр следует использовать только для синхронизации имен входа между двумя серверами.This option should only be used for login synchronization between two servers. Не используйте параметр HASHED для плановой смены паролей.Do not use the HASHED option to routinely change passwords.

OLD_PASSWORD =' oldpassword '  — применяется только к именам входа SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Текущий пароль имени входа, которому будет присвоен новый пароль.The current password of the login to which a new password will be assigned. В паролях учитывается регистр символов.Passwords are case-sensitive.

MUST_CHANGE — применяется только к именам входа SQL ServerSQL Server.MUST_CHANGE Applies only to SQL ServerSQL Server logins. Если данный параметр включен, SQL ServerSQL Server потребует ввести новый пароль при первом использовании измененного имени входа.If this option is included, SQL ServerSQL Server will prompt for an updated password the first time the altered login is used.

DEFAULT_DATABASE = database — указывает базу данных по умолчанию, связываемую с именем входа.DEFAULT_DATABASE =database Specifies a default database to be assigned to the login.

DEFAULT_LANGUAGE = language — указывает язык по умолчанию, назначаемый имени входа.DEFAULT_LANGUAGE =language Specifies a default language to be assigned to the login. Языком по умолчанию для всех имен входа базы данных SQL является английский, и его нельзя изменить.The default language for all SQL Database logins is English and cannot be changed. Языком по умолчанию для имени входа sa в SQL ServerSQL Server в Linux является английский, но его можно изменить.The default language of the sa login on SQL ServerSQL Server on Linux, is English but it can be changed.

NAME = login_name — указывает новое имя для имени входа, которое необходимо переименовать.NAME = login_name The new name of the login that is being renamed. Если оно является именем входа Windows, то идентификатор безопасности участника Windows, соответствующий новому имени, должен совпадать с идентификатором безопасности, относящимся к имени входа SQL ServerSQL Server.If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Новое имя входа SQL ServerSQL Server не может содержать обратную косую черту (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

CHECK_EXPIRATION = { ON | OFF } — применяется только к именам входа SQL ServerSQL Server.CHECK_EXPIRATION = { ON | OFF } Applies only to SQL ServerSQL Server logins. Указывает, должна ли политика истечения срока действия паролей принудительно применяться к этому имени входа.Specifies whether password expiration policy should be enforced on this login. Значение по умолчанию — OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } — применяется только к именам входа SQL ServerSQL Server.CHECK_POLICY = { ON | OFF } Applies only to SQL ServerSQL Server logins. Указывает, что политики паролей Windows компьютера, на котором работает SQL ServerSQL Server , должны принудительно применяться к этому имени входа.Specifies that the Windows password policies of the computer on which SQL ServerSQL Server is running should be enforced on this login. Значение по умолчанию — ON.The default value is ON.

CREDENTIAL = credential_name — имя учетных данных для сопоставления с именем входа SQL ServerSQL Server.CREDENTIAL = credential_name The name of a credential to be mapped to a SQL ServerSQL Server login. Учетные данные уже должны существовать на сервере.The credential must already exist in the server. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine).For more information, see Credentials. Учетные данные не могут быть сопоставлены с именем входа sa.A credential cannot be mapped to the sa login.

NO CREDENTIAL — удаляет все существующие сопоставления имени входа с учетными данными сервера.NO CREDENTIAL Removes any existing mapping of the login to a server credential. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine).For more information, see Credentials.

UNLOCK — применяется только к именам входа SQL ServerSQL Server.UNLOCK Applies only to SQL ServerSQL Server logins. Указывает, что заблокированное имя входа должно быть разблокировано.Specifies that a login that is locked out should be unlocked.

ADD CREDENTIAL — добавляет к имени входа учетные данные поставщика расширенного управления ключами.ADD CREDENTIAL Adds an Extensible Key Management (EKM) provider credential to the login. Дополнительные сведения см. в статье Расширенное управление ключами (Extensible Key Management).For more information, see Extensible Key Management (EKM).

DROP CREDENTIAL — удаляет из имени входа учетные данные поставщика расширенного управления ключами.DROP CREDENTIAL Removes an Extensible Key Management (EKM) provider credential from the login. Дополнительные сведения см. в статье [Расширенное управление ключами (Extensible Key Management)] (../..For more information, see [Extensible Key Management (EKM)] (../.. /relational-databases/security/encryption/extensible-key-management-ekm.md)./relational-databases/security/encryption/extensible-key-management-ekm.md).

RemarksRemarks

Если параметр CHECK_POLICY имеет значение ON, аргумент HASHED использовать нельзя.When CHECK_POLICY is set to ON, the HASHED argument cannot be used.

При изменении значения CHECK_POLICY на ON происходит следующее.When CHECK_POLICY is changed to ON, the following behavior occurs:

  • Журнал паролей инициализируется значением хэша текущего пароля.The password history is initialized with the value of the current password hash.

    При изменении CHECK_POLICY на OFF происходит следующее.When CHECK_POLICY is changed to OFF, the following behavior occurs:

  • Параметр CHECK_EXPIRATION также получает значение OFF.CHECK_EXPIRATION is also set to OFF.

  • Журнал паролей очищается.The password history is cleared.

  • Значение lockout_time сбрасывается.The value of lockout_time is reset.

Если задан параметр MUST_CHANGE, то параметры CHECK_EXPIRATION и CHECK_POLICY должны иметь значение ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. В противном случае выполнение инструкции приведет к ошибке.Otherwise, the statement will fail.

Если значение параметра CHECK_POLICY установлено равным OFF, то параметр CHECK_EXPIRATION не может иметь значения ON.If CHECK_POLICY is set to OFF, CHECK_EXPIRATION cannot be set to ON. Выполнение инструкции ALTER LOGIN с таким сочетанием параметров завершится ошибкой.An ALTER LOGIN statement that has this combination of options will fail.

Нельзя использовать параметр ALTER_LOGIN с аргументом DISABLE для запрещения доступа группе Windows.You cannot use ALTER_LOGIN with the DISABLE argument to deny access to a Windows group. Например, инструкция ALTER_LOGIN [domain\group] DISABLE вернет следующее сообщение об ошибке:For example, ALTER_LOGIN [domain\group] DISABLE will return the following error message:

`"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."`

This is by design.

В База данных SQLSQL Database данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In База данных SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

РазрешенияPermissions

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

Если используется параметр CREDENTIAL, то также требуется разрешение ALTER ANY CREDENTIAL.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission.

Если изменяемое имя входа является членом предопределенной роли сервера sysadmin или имеет разрешение CONTROL SERVER, ему также требуется разрешение CONTROL SERVER для внесения следующих изменений.If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Сброс пароля без указания старого.Resetting the password without supplying the old password.
  • Включение параметров MUST_CHANGE, CHECK_POLICY или CHECK_EXPIRATION.Enabling MUST_CHANGE, CHECK_POLICY, or CHECK_EXPIRATION.
  • Изменение имени входа.Changing the login name.
  • Включение или отключение имени входа.Enabling or disabling the login.
  • Сопоставление имени входа с другими учетными данными.Mapping the login to a different credential.

Участник может изменить пароль, язык по умолчанию и базу данных по умолчанию для своего имени входа.A principal can change the password, default language, and default database for its own login.

ПримерыExamples

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

Следующий пример включает имя входа Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

Б.B. Изменение пароля для имени входаChanging the password of a login

В следующем примере пароль для имени входа Mary5 изменяется на надежный пароль.The following example changes the password of login Mary5 to a strong password.

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

В.C. Изменение пароля для того имени, с которым выполнен вход в системуChanging the password of a login when logged in as the login

Если вам нужно изменить пароль для того имени входа, с которым вы вошли в систему, но у вас нет разрешения ALTER ANY LOGIN, необходимо указать параметр OLD_PASSWORD.If you are attempting to change the password of the login that you're currently logged in with and you do not have the ALTER ANY LOGIN permission you must specify the OLD_PASSWORD option.

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

Г.D. Изменение имени входаChanging the name of a login

Следующий пример изменяет имя входа Mary5 на John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

Д.E. Сопоставление имени входа с учетными даннымиMapping a login to a credential

Следующий пример сопоставляет имя входа John2 с учетными данными Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

Е.F. Сопоставление имени входа с учетными данными расширенного управления ключамиMapping a login to an Extensible Key Management credential

В следующем примере имя входа Mary5 сопоставляется с учетными данными EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

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

Чтобы разблокировать имя входа SQL ServerSQL Server, выполните следующую инструкцию, заменив **** нужным паролем учетной записи.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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

GO

Чтобы разблокировать учетную запись без изменения пароля, отключите и снова включите политику проверки.To unlock a login without changing the password, turn the check policy off and then on again.

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

Ж.G. Изменение пароля для имени входа с помощью параметра HASHEDChanging the password of a login using HASHED

В следующем примере пароль имени входа TestUser изменяется на заранее хэшированное значение.The following example changes the password of the TestUser login to an already hashed value.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

См. также:See Also

SQL ServerSQL Server * Отдельная база данных/эластичный пул Базы данных SQL
*
* SQL Database
single database/elastic pool *
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
Хранилище данных
SQL
SQL Data
Warehouse
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Отдельная база данных или эластичный пул Базы данных SQL AzureAzure SQL Database single database/elastic pool

SQL ServerSQL Server

СинтаксисSyntax

-- Syntax for Azure SQL Database and Azure SQL Data Warehouse

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

<status_option> ::=
    ENABLE | DISABLE

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

АргументыArguments

login_name — указывает имя входа SQL ServerSQL Server, которое необходимо изменить.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE — включает или отключает это имя входа.ENABLE | DISABLE Enables or disables this login. Отключение входа не влияет на поведение имен входа, которые уже подключены.Disabling a login does not affect the behavior of logins that are already connected. (Чтобы завершить существующие подключения, используйте инструкцию KILL.) Отключенные имена входа сохраняют свои разрешения и все еще могут быть олицетворены.(Use the KILL statement to terminate an existing connections.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password '  — применятся только к именам входа SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Указывает пароль для имени входа, которое необходимо изменить.Specifies the password for the login that is being changed. В паролях учитывается регистр символов.Passwords are case-sensitive.

Для поддержания подключений к базе данных SQL в активном состоянии требуется повторная авторизация (выполняемая ядром СУБД) по крайней мере каждые 10 часов.Continuously active connections to SQL Database require reauthorization (performed by the Database Engine) at least every 10 hours. Ядро СУБД пытается выполнить повторную авторизацию с использованием первоначального пароля. Пользователю не нужно вводить никаких данных.The Database Engine attempts reauthorization using the originally submitted password and no user input is required. В целях повышения производительности при сбросе пароля в базе данных SQL повторная проверка подлинности подключения не проводится, даже если подключение сбрасывается из-за создания пула подключений.For performance reasons, when a password is reset in SQL Database, the connection will not be re-authenticated, even if the connection is reset due to connection pooling. В локальном развертывании SQL Server поведение иное.This is different from the behavior of on-premises SQL Server. Если пароль изменился с момента первоначальной авторизации подключения, подключение должно быть завершено и должно быть установлено новое подключение с использованием нового пароля.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Пользователь с разрешением KILL DATABASE CONNECTION может явным образом завершить подключение к базе данных SQL с помощью команды KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command. Дополнительные сведения см. в статье KILL (Transact-SQL).For more information, see KILL.

Важно!

Если имя входа (или пользователь автономной базы данных) используется для подключения и выполняется проверка подлинности, данные идентификаторов имени входа при подключении помещаются в кэш.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. Для имени входа, использующегося при проверке подлинности Windows, сюда относятся данные о членстве в группах Windows.For a Windows Authentication login, this includes information about membership in Windows groups. Идентификатор имени входа остается зарегистрированным на протяжении периода, в который поддерживается соединение.The identity of the login remains authenticated as long as the connection is maintained. Для принудительного изменения идентификатора, например сброса пароля или изменения членства в группе Windows, имя входа необходимо использовать для выхода из центра проверки подлинности (Windows или SQL ServerSQL Server), а затем повторно выполнить вход.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. Член предопределенной роли сервера sysadmin или любого имени входа с разрешением ALTER ANY CONNECTION может использовать команду KILL и принудительно разорвать подключение для выполнения повторного подключения с использованием имени входа.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio может повторно использовать сведения о соединении при открытии нескольких соединений в окнах обозревателя объектов и редактора запросов.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Закройте все соединения для принудительного повторного подключения.Close all connections to force reconnection.

OLD_PASSWORD =' oldpassword '  — применяется только к именам входа SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Текущий пароль имени входа, которому будет присвоен новый пароль.The current password of the login to which a new password will be assigned. В паролях учитывается регистр символов.Passwords are case-sensitive.

NAME = login_name — указывает новое имя для имени входа, которое необходимо переименовать.NAME = login_name The new name of the login that is being renamed. Если оно является именем входа Windows, то идентификатор безопасности участника Windows, соответствующий новому имени, должен совпадать с идентификатором безопасности, относящимся к имени входа SQL ServerSQL Server.If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Новое имя входа SQL ServerSQL Server не может содержать обратную косую черту (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

RemarksRemarks

В База данных SQLSQL Database данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In База данных SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

РазрешенияPermissions

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

Если изменяемое имя входа является членом предопределенной роли сервера sysadmin или имеет разрешение CONTROL SERVER, ему также требуется разрешение CONTROL SERVER для внесения следующих изменений.If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Сброс пароля без указания старого.Resetting the password without supplying the old password.
  • Изменение имени входа.Changing the login name.
  • Включение или отключение имени входа.Enabling or disabling the login.
  • Сопоставление имени входа с другими учетными данными.Mapping the login to a different credential.

Субъект может изменить пароль для своего имени входа.A principal can change the password for its own login.

ПримерыExamples

Эти примеры также включают примеры использования других продуктов SQL.These examples also include examples for using other SQL products. См. выше информацию о том, какие аргументы поддерживаются.Please see which arguments are supported above.

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

Следующий пример включает имя входа Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

Б.B. Изменение пароля для имени входаChanging the password of a login

В следующем примере пароль для имени входа Mary5 изменяется на надежный пароль.The following example changes the password of login Mary5 to a strong password.

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

В.C. Изменение имени входаChanging the name of a login

Следующий пример изменяет имя входа Mary5 на John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

Г.D. Сопоставление имени входа с учетными даннымиMapping a login to a credential

Следующий пример сопоставляет имя входа John2 с учетными данными Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

Д.E. Сопоставление имени входа с учетными данными расширенного управления ключамиMapping a login to an Extensible Key Management credential

В следующем примере имя входа Mary5 сопоставляется с учетными данными EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

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

Чтобы разблокировать имя входа SQL ServerSQL Server, выполните следующую инструкцию, заменив **** нужным паролем учетной записи.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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

GO

Чтобы разблокировать учетную запись без изменения пароля, отключите и снова включите политику проверки.To unlock a login without changing the password, turn the check policy off and then on again.

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

Ж.G. Изменение пароля для имени входа с помощью параметра HASHEDChanging the password of a login using HASHED

В следующем примере пароль имени входа TestUser изменяется на заранее хэшированное значение.The following example changes the password of the TestUser login to an already hashed value.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

См. также:See Also

SQL ServerSQL Server Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
* Управляемый экземпляр Базы данных SQL
*
* SQL Database
managed instance *
Хранилище данных
SQL
SQL Data
Warehouse
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Управляемый экземпляр Базы данных SQL AzureAzure SQL Database managed instance

СинтаксисSyntax

-- Syntax for SQL Server and Azure SQL Database 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

Примечание

Функция администратора Azure AD для управляемого экземпляра после создания изменилась.The Azure AD admin for managed instance functionality after creation has changed. Дополнительные сведения см. в статье Новые возможности администратора Azure AD для управляемого экземпляра.For more information, see New Azure AD admin functionality for MI.

-- Syntax for Azure SQL Database managed instance using Azure AD logins

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

<status_option> ::=
    ENABLE | DISABLE

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

АргументыArguments

Аргументы, применимые к именам входа SQL и Azure ADArguments applicable to SQL and Azure AD logins

login_name — указывает имя входа SQL ServerSQL Server, которое необходимо изменить.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Имена для входа Azure AD должны быть указаны как user@domain.Azure AD logins must be specified as user@domain. Например, john.smith@contoso.com, либо же как группа или приложение Azure AD.For example, john.smith@contoso.com, or as the Azure AD group or application name. Для имен входа Azure AD login_name должно соответствовать существующему имени входа Azure AD, созданному в базе данных master.For Azure AD logins, the login_name must correspond to an existing Azure AD login created in the master database.

ENABLE | DISABLE — включает или отключает это имя входа.ENABLE | DISABLE Enables or disables this login. Отключение входа не влияет на поведение имен входа, которые уже подключены.Disabling a login does not affect the behavior of logins that are already connected. (Чтобы завершить существующие подключения, используйте инструкцию KILL.) Отключенные имена входа сохраняют свои разрешения и все еще могут быть олицетворены.(Use the KILL statement to terminate an existing connection.) Disabled logins retain their permissions and can still be impersonated.

DEFAULT_DATABASE = database — указывает базу данных по умолчанию, связываемую с именем входа.DEFAULT_DATABASE =database Specifies a default database to be assigned to the login.

DEFAULT_LANGUAGE = language — указывает язык по умолчанию, назначаемый имени входа.DEFAULT_LANGUAGE =language Specifies a default language to be assigned to the login. Языком по умолчанию для всех имен входа базы данных SQL является английский, и его нельзя изменить.The default language for all SQL Database logins is English and cannot be changed. Языком по умолчанию для имени входа sa в SQL ServerSQL Server в Linux является английский, но его можно изменить.The default language of the sa login on SQL ServerSQL Server on Linux, is English but it can be changed.

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

PASSWORD =' password '  — применятся только к именам входа SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Указывает пароль для имени входа, которое необходимо изменить.Specifies the password for the login that is being changed. В паролях учитывается регистр символов.Passwords are case-sensitive. Пароли также не применяются при использовании с внешними именами входа, такими как имена входа Azure AD.Passwords also do not apply when used with external logins, like Azure AD logins.

Для поддержания подключений к базе данных SQL в активном состоянии требуется повторная авторизация (выполняемая ядром СУБД) по крайней мере каждые 10 часов.Continuously active connections to SQL Database require reauthorization (performed by the Database Engine) at least every 10 hours. Ядро СУБД пытается выполнить повторную авторизацию с использованием первоначального пароля. Пользователю не нужно вводить никаких данных.The Database Engine attempts reauthorization using the originally submitted password and no user input is required. В целях повышения производительности при сбросе пароля в базе данных SQL повторная проверка подлинности подключения не проводится, даже если подключение сбрасывается из-за создания пула подключений.For performance reasons, when a password is reset in SQL Database, the connection will not be re-authenticated, even if the connection is reset due to connection pooling. В локальном развертывании SQL Server поведение иное.This is different from the behavior of on-premises SQL Server. Если пароль изменился с момента первоначальной авторизации подключения, подключение должно быть завершено и должно быть установлено новое подключение с использованием нового пароля.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Пользователь с разрешением KILL DATABASE CONNECTION может явным образом завершить подключение к базе данных SQL с помощью команды KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command. Дополнительные сведения см. в статье KILL (Transact-SQL).For more information, see KILL.

PASSWORD = hashed_password — применяется только к ключевому слову HASHED.PASSWORD =hashed_password Applies to the HASHED keyword only. Указывает хэшированное значение пароля для создаваемого имени входа.Specifies the hashed value of the password for the login that is being created.

HASHED — применяется только к именам входа SQL ServerSQL Server.HASHED Applies to SQL ServerSQL Server logins only. Указывает, что пароль, введенный после аргумента PASSWORD, уже хэширован.Specifies that the password entered after the PASSWORD argument is already hashed. Если этот параметр не выбран, то пароль хэшируется перед сохранением в базе данных.If this option is not selected, the password is hashed before being stored in the database. Этот параметр следует использовать только для синхронизации имен входа между двумя серверами.This option should only be used for login synchronization between two servers. Не используйте параметр HASHED для плановой смены паролей.Do not use the HASHED option to routinely change passwords.

OLD_PASSWORD =' oldpassword '  — применяется только к именам входа SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Текущий пароль имени входа, которому будет присвоен новый пароль.The current password of the login to which a new password will be assigned. В паролях учитывается регистр символов.Passwords are case-sensitive.

MUST_CHANGEMUST_CHANGE
Применяется только к именам входа SQL ServerSQL Server.Applies only to SQL ServerSQL Server logins. Если данный параметр включен, SQL ServerSQL Server потребует ввести новый пароль при первом использовании измененного имени входа.If this option is included, SQL ServerSQL Server will prompt for an updated password the first time the altered login is used.

NAME = login_name — указывает новое имя для имени входа, которое необходимо переименовать.NAME = login_name The new name of the login that is being renamed. Если оно является именем входа Windows, то идентификатор безопасности участника Windows, соответствующий новому имени, должен совпадать с идентификатором безопасности, относящимся к имени входа SQL ServerSQL Server.If the login is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Новое имя входа SQL ServerSQL Server не может содержать обратную косую черту (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

CHECK_EXPIRATION = { ON | OFF } — применяется только к именам входа SQL ServerSQL Server.CHECK_EXPIRATION = { ON | OFF } Applies only to SQL ServerSQL Server logins. Указывает, должна ли политика истечения срока действия паролей принудительно применяться к этому имени входа.Specifies whether password expiration policy should be enforced on this login. Значение по умолчанию — OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } — применяется только к именам входа SQL ServerSQL Server.CHECK_POLICY = { ON | OFF } Applies only to SQL ServerSQL Server logins. Указывает, что политики паролей Windows компьютера, на котором работает SQL ServerSQL Server , должны принудительно применяться к этому имени входа.Specifies that the Windows password policies of the computer on which SQL ServerSQL Server is running should be enforced on this login. Значение по умолчанию — ON.The default value is ON.

CREDENTIAL = credential_name — имя учетных данных для сопоставления с именем входа SQL ServerSQL Server.CREDENTIAL = credential_name The name of a credential to be mapped to a SQL ServerSQL Server login. Учетные данные уже должны существовать на сервере.The credential must already exist in the server. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine).For more information, see Credentials. Учетные данные не могут быть сопоставлены с именем входа sa.A credential cannot be mapped to the sa login.

NO CREDENTIAL — удаляет все существующие сопоставления имени входа с учетными данными сервера.NO CREDENTIAL Removes any existing mapping of the login to a server credential. Дополнительные сведения см. в статье Учетные данные (компонент Database Engine).For more information, see Credentials.

UNLOCK — применяется только к именам входа SQL ServerSQL Server.UNLOCK Applies only to SQL ServerSQL Server logins. Указывает, что заблокированное имя входа должно быть разблокировано.Specifies that a login that is locked out should be unlocked.

ADD CREDENTIAL — добавляет к имени входа учетные данные поставщика расширенного управления ключами.ADD CREDENTIAL Adds an Extensible Key Management (EKM) provider credential to the login. Дополнительные сведения см. в статье Расширенное управление ключами (Extensible Key Management).For more information, see Extensible Key Management (EKM).

DROP CREDENTIAL — удаляет из имени входа учетные данные поставщика расширенного управления ключами.DROP CREDENTIAL Removes an Extensible Key Management (EKM) provider credential from the login. Дополнительные сведения см. в статье Расширенное управление ключами (Extensible Key Management).For more information, see Extensible Key Management (EKM).

RemarksRemarks

Если параметр CHECK_POLICY имеет значение ON, аргумент HASHED использовать нельзя.When CHECK_POLICY is set to ON, the HASHED argument cannot be used.

При изменении значения CHECK_POLICY на ON происходит следующее.When CHECK_POLICY is changed to ON, the following behavior occurs:

  • Журнал паролей инициализируется значением хэша текущего пароля.The password history is initialized with the value of the current password hash.

    При изменении CHECK_POLICY на OFF происходит следующее.When CHECK_POLICY is changed to OFF, the following behavior occurs:

  • Параметр CHECK_EXPIRATION также получает значение OFF.CHECK_EXPIRATION is also set to OFF.

  • Журнал паролей очищается.The password history is cleared.

  • Значение lockout_time сбрасывается.The value of lockout_time is reset.

Если задан параметр MUST_CHANGE, то параметры CHECK_EXPIRATION и CHECK_POLICY должны иметь значение ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. В противном случае выполнение инструкции приведет к ошибке.Otherwise, the statement will fail.

Если значение параметра CHECK_POLICY установлено равным OFF, то параметр CHECK_EXPIRATION не может иметь значения ON.If CHECK_POLICY is set to OFF, CHECK_EXPIRATION cannot be set to ON. Выполнение инструкции ALTER LOGIN с таким сочетанием параметров завершится ошибкой.An ALTER LOGIN statement that has this combination of options will fail.

Нельзя использовать параметр ALTER_LOGIN с аргументом DISABLE для запрещения доступа группе Windows.You cannot use ALTER_LOGIN with the DISABLE argument to deny access to a Windows group. Это сделано намеренно.This is by design. Например, инструкция ALTER_LOGIN [domain\group] DISABLE вернет следующее сообщение об ошибке:For example, ALTER_LOGIN [domain\group] DISABLE will return the following error message:

`"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."`

В База данных SQLSQL Database данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In База данных SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

РазрешенияPermissions

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

Если используется параметр CREDENTIAL, то также требуется разрешение ALTER ANY CREDENTIAL.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission.

Если изменяемое имя входа является членом предопределенной роли сервера sysadmin или имеет разрешение CONTROL SERVER, ему также требуется разрешение CONTROL SERVER для внесения следующих изменений.If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Сброс пароля без указания старого.Resetting the password without supplying the old password.
  • Включение параметров MUST_CHANGE, CHECK_POLICY или CHECK_EXPIRATION.Enabling MUST_CHANGE, CHECK_POLICY, or CHECK_EXPIRATION.
  • Изменение имени входа.Changing the login name.
  • Включение или отключение имени входа.Enabling or disabling the login.
  • Сопоставление имени входа с другими учетными данными.Mapping the login to a different credential.

Участник может изменить пароль, язык по умолчанию и базу данных по умолчанию для своего имени входа.A principal can change the password, default language, and default database for its own login.

Только субъект SQL с привилегиями sysadmin может выполнить команду ALTER LOGIN для имени входа Azure AD.Only a SQL principal with sysadmin privileges can execute an ALTER LOGIN command against an Azure AD login.

ПримерыExamples

Эти примеры также включают примеры использования других продуктов SQL.These examples also include examples for using other SQL products. См. выше информацию о том, какие аргументы поддерживаются.Please see which arguments are supported above.

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

Следующий пример включает имя входа Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

Б.B. Изменение пароля для имени входаChanging the password of a login

В следующем примере пароль для имени входа Mary5 изменяется на надежный пароль.The following example changes the password of login Mary5 to a strong password.

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

В.C. Изменение имени входаChanging the name of a login

Следующий пример изменяет имя входа Mary5 на John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

Г.D. Сопоставление имени входа с учетными даннымиMapping a login to a credential

Следующий пример сопоставляет имя входа John2 с учетными данными Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

Д.E. Сопоставление имени входа с учетными данными расширенного управления ключамиMapping a login to an Extensible Key Management credential

В следующем примере имя входа Mary5 сопоставляется с учетными данными EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Применимо к: SQL Server 2008SQL Server 2008 и выше, управляемый экземпляр Базы данных SQL Azure.Applies to: SQL Server 2008SQL Server 2008 and later, and Azure SQL Database managed instance.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

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

Чтобы разблокировать имя входа SQL ServerSQL Server, выполните следующую инструкцию, заменив **** нужным паролем учетной записи.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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

GO

Чтобы разблокировать учетную запись без изменения пароля, отключите и снова включите политику проверки.To unlock a login without changing the password, turn the check policy off and then on again.

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

Ж.G. Изменение пароля для имени входа с помощью параметра HASHEDChanging the password of a login using HASHED

В следующем примере пароль имени входа TestUser изменяется на заранее хэшированное значение.The following example changes the password of the TestUser login to an already hashed value.

Применимо к: SQL Server 2008SQL Server 2008 и выше, управляемый экземпляр Базы данных SQL Azure.Applies to: SQL Server 2008SQL Server 2008 and later, and Azure SQL Database managed instance.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

З.H. Отключение входа пользователя Azure ADDisabling the login of an Azure AD user

Следующий пример отключает имя входа пользователя Azure AD, joe@contoso.com.The following example disables the login of an Azure AD user, joe@contoso.com.

ALTER LOGIN [joe@contoso.com] DISABLE

См. также:See Also

SQL ServerSQL Server Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
* Хранилище данных
SQL *
* SQL Data
Warehouse *
Analytics Platform
System (PDW)
Analytics Platform
System (PDW)

 

Хранилище данных SQL AzureAzure SQL Data Warehouse

СинтаксисSyntax

-- Syntax for Azure SQL Database and Azure SQL Data Warehouse

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

<status_option> ::=
    ENABLE | DISABLE

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

АргументыArguments

login_name — указывает имя входа SQL ServerSQL Server, которое необходимо изменить.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE — включает или отключает это имя входа.ENABLE | DISABLE Enables or disables this login. Отключение входа не влияет на поведение имен входа, которые уже подключены.Disabling a login does not affect the behavior of logins that are already connected. (Чтобы завершить существующие подключения, используйте инструкцию KILL.) Отключенные имена входа сохраняют свои разрешения и все еще могут быть олицетворены.(Use the KILL statement to terminate an existing connections.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password '  — применятся только к именам входа SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Указывает пароль для имени входа, которое необходимо изменить.Specifies the password for the login that is being changed. В паролях учитывается регистр символов.Passwords are case-sensitive.

Для поддержания подключений к базе данных SQL в активном состоянии требуется повторная авторизация (выполняемая ядром СУБД) по крайней мере каждые 10 часов.Continuously active connections to SQL Database require reauthorization (performed by the Database Engine) at least every 10 hours. Ядро СУБД пытается выполнить повторную авторизацию с использованием первоначального пароля. Пользователю не нужно вводить никаких данных.The Database Engine attempts reauthorization using the originally submitted password and no user input is required. В целях повышения производительности при сбросе пароля в базе данных SQL повторная проверка подлинности подключения не проводится, даже если подключение сбрасывается из-за создания пула подключений.For performance reasons, when a password is reset in SQL Database, the connection will not be re-authenticated, even if the connection is reset due to connection pooling. В локальном развертывании SQL Server поведение иное.This is different from the behavior of on-premises SQL Server. Если пароль изменился с момента первоначальной авторизации подключения, подключение должно быть завершено и должно быть установлено новое подключение с использованием нового пароля.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Пользователь с разрешением KILL DATABASE CONNECTION может явным образом завершить подключение к базе данных SQL с помощью команды KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command. Дополнительные сведения см. в статье KILL (Transact-SQL).For more information, see KILL.

Важно!

Если имя входа (или пользователь автономной базы данных) используется для подключения и выполняется проверка подлинности, данные идентификаторов имени входа при подключении помещаются в кэш.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. Для имени входа, использующегося при проверке подлинности Windows, сюда относятся данные о членстве в группах Windows.For a Windows Authentication login, this includes information about membership in Windows groups. Идентификатор имени входа остается зарегистрированным на протяжении периода, в который поддерживается соединение.The identity of the login remains authenticated as long as the connection is maintained. Для принудительного изменения идентификатора, например сброса пароля или изменения членства в группе Windows, имя входа необходимо использовать для выхода из центра проверки подлинности (Windows или SQL ServerSQL Server), а затем повторно выполнить вход.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. Член предопределенной роли сервера sysadmin или любого имени входа с разрешением ALTER ANY CONNECTION может использовать команду KILL и принудительно разорвать подключение для выполнения повторного подключения с использованием имени входа.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio может повторно использовать сведения о соединении при открытии нескольких соединений в окнах обозревателя объектов и редактора запросов.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Закройте все соединения для принудительного повторного подключения.Close all connections to force reconnection.

OLD_PASSWORD =' oldpassword '  — применяется только к именам входа SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Текущий пароль имени входа, которому будет присвоен новый пароль.The current password of the login to which a new password will be assigned. В паролях учитывается регистр символов.Passwords are case-sensitive.

NAME = login_name — указывает новое имя для имени входа, которое необходимо переименовать.NAME = login_name The new name of the login that is being renamed. Если оно является именем входа Windows, то идентификатор безопасности участника Windows, соответствующий новому имени, должен совпадать с идентификатором безопасности, относящимся к имени входа SQL ServerSQL Server.If this is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Новое имя входа SQL ServerSQL Server не может содержать обратную косую черту (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

RemarksRemarks

В База данных SQLSQL Database данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In База данных SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных содержит последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

РазрешенияPermissions

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

Если изменяемое имя входа является членом предопределенной роли сервера sysadmin или имеет разрешение CONTROL SERVER, ему также требуется разрешение CONTROL SERVER для внесения следующих изменений.If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Сброс пароля без указания старого.Resetting the password without supplying the old password.
  • Изменение имени входа.Changing the login name.
  • Включение или отключение имени входа.Enabling or disabling the login.
  • Сопоставление имени входа с другими учетными данными.Mapping the login to a different credential.

Субъект может изменить пароль для своего имени входа.A principal can change the password for its own login.

ПримерыExamples

Эти примеры также включают примеры использования других продуктов SQL.These examples also include examples for using other SQL products. См. выше информацию о том, какие аргументы поддерживаются.Please see which arguments are supported above.

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

Следующий пример включает имя входа Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

Б.B. Изменение пароля для имени входаChanging the password of a login

В следующем примере пароль для имени входа Mary5 изменяется на надежный пароль.The following example changes the password of login Mary5 to a strong password.

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

В.C. Изменение имени входаChanging the name of a login

Следующий пример изменяет имя входа Mary5 на John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

Г.D. Сопоставление имени входа с учетными даннымиMapping a login to a credential

Следующий пример сопоставляет имя входа John2 с учетными данными Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

Д.E. Сопоставление имени входа с учетными данными расширенного управления ключамиMapping a login to an Extensible Key Management credential

В следующем примере имя входа Mary5 сопоставляется с учетными данными EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

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

Чтобы разблокировать имя входа SQL ServerSQL Server, выполните следующую инструкцию, заменив **** нужным паролем учетной записи.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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

GO

Чтобы разблокировать учетную запись без изменения пароля, отключите и снова включите политику проверки.To unlock a login without changing the password, turn the check policy off and then on again.

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

Ж.G. Изменение пароля для имени входа с помощью параметра HASHEDChanging the password of a login using HASHED

В следующем примере пароль имени входа TestUser изменяется на заранее хэшированное значение.The following example changes the password of the TestUser login to an already hashed value.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

См. также:See Also

SQL ServerSQL Server Отдельная база данных/эластичный пул Базы данных SQL
SQL Database
single database/elastic pool
Управляемый экземпляр Базы данных SQL
SQL Database
managed instance
Хранилище данных
SQL
SQL Data
Warehouse
* Analytics
Platform System (PDW) *
* Analytics
Platform System (PDW) *

 

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

СинтаксисSyntax

-- 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

АргументыArguments

login_name — указывает имя входа SQL ServerSQL Server, которое необходимо изменить.login_name Specifies the name of the SQL ServerSQL Server login that is being changed. Имена входа домена необходимо заключать в квадратные скобки в формате [домен\пользователь].Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLE — включает или отключает это имя входа.ENABLE | DISABLE Enables or disables this login. Отключение входа не влияет на поведение имен входа, которые уже подключены.Disabling a login does not affect the behavior of logins that are already connected. (Чтобы завершить существующие подключения, используйте инструкцию KILL.) Отключенные имена входа сохраняют свои разрешения и все еще могут быть олицетворены.(Use the KILL statement to terminate an existing connection.) Disabled logins retain their permissions and can still be impersonated.

PASSWORD =' password '  — применятся только к именам входа SQL ServerSQL Server.PASSWORD ='password' Applies only to SQL ServerSQL Server logins. Указывает пароль для имени входа, которое необходимо изменить.Specifies the password for the login that is being changed. В паролях учитывается регистр символов.Passwords are case-sensitive.

Важно!

Если имя входа (или пользователь автономной базы данных) используется для подключения и выполняется проверка подлинности, данные идентификаторов имени входа при подключении помещаются в кэш.When a login (or a contained database user) connects and is authenticated, the connection caches identity information about the login. Для имени входа, использующегося при проверке подлинности Windows, сюда относятся данные о членстве в группах Windows.For a Windows Authentication login, this includes information about membership in Windows groups. Идентификатор имени входа остается зарегистрированным на протяжении периода, в который поддерживается соединение.The identity of the login remains authenticated as long as the connection is maintained. Для принудительного изменения идентификатора, например сброса пароля или изменения членства в группе Windows, имя входа необходимо использовать для выхода из центра проверки подлинности (Windows или SQL ServerSQL Server), а затем повторно выполнить вход.To force changes in the identity, such as a password reset or change in Windows group membership, the login must logoff from the authentication authority (Windows or SQL ServerSQL Server), and log in again. Член предопределенной роли сервера sysadmin или любого имени входа с разрешением ALTER ANY CONNECTION может использовать команду KILL и принудительно разорвать подключение для выполнения повторного подключения с использованием имени входа.A member of the sysadmin fixed server role or any login with the ALTER ANY CONNECTION permission can use the KILL command to end a connection and force a login to reconnect. SQL Server Management StudioSQL Server Management Studio может повторно использовать сведения о соединении при открытии нескольких соединений в окнах обозревателя объектов и редактора запросов.can reuse connection information when opening multiple connections to Object Explorer and Query Editor windows. Закройте все соединения для принудительного повторного подключения.Close all connections to force reconnection.

OLD_PASSWORD =' oldpassword '  — применяется только к именам входа SQL ServerSQL Server.OLD_PASSWORD ='oldpassword' Applies only to SQL ServerSQL Server logins. Текущий пароль имени входа, которому будет присвоен новый пароль.The current password of the login to which a new password will be assigned. В паролях учитывается регистр символов.Passwords are case-sensitive.

MUST_CHANGE — применяется только к именам входа SQL ServerSQL Server.MUST_CHANGE Applies only to SQL ServerSQL Server logins. Если данный параметр включен, SQL ServerSQL Server потребует ввести новый пароль при первом использовании измененного имени входа.If this option is included, SQL ServerSQL Server will prompt for an updated password the first time the altered login is used.

NAME = login_name — указывает новое имя для имени входа, которое необходимо переименовать.NAME = login_name The new name of the login that is being renamed. Если оно является именем входа Windows, то идентификатор безопасности участника Windows, соответствующий новому имени, должен совпадать с идентификатором безопасности, относящимся к имени входа SQL ServerSQL Server.If the login is a Windows login, the SID of the Windows principal corresponding to the new name must match the SID associated with the login in SQL ServerSQL Server. Новое имя входа SQL ServerSQL Server не может содержать обратную косую черту (\).The new name of a SQL ServerSQL Server login cannot contain a backslash character (\).

CHECK_EXPIRATION = { ON | OFF } — применяется только к именам входа SQL ServerSQL Server.CHECK_EXPIRATION = { ON | OFF } Applies only to SQL ServerSQL Server logins. Указывает, должна ли политика истечения срока действия паролей принудительно применяться к этому имени входа.Specifies whether password expiration policy should be enforced on this login. Значение по умолчанию — OFF.The default value is OFF.

CHECK_POLICY = { ON | OFF } — применяется только к именам входа SQL ServerSQL Server.CHECK_POLICY = { ON | OFF } Applies only to SQL ServerSQL Server logins. Указывает, что политики паролей Windows компьютера, на котором работает SQL ServerSQL Server , должны принудительно применяться к этому имени входа.Specifies that the Windows password policies of the computer on which SQL ServerSQL Server is running should be enforced on this login. Значение по умолчанию — ON.The default value is ON.

UNLOCK — применяется только к именам входа SQL ServerSQL Server.UNLOCK Applies only to SQL ServerSQL Server logins. Указывает, что заблокированное имя входа должно быть разблокировано.Specifies that a login that is locked out should be unlocked.

RemarksRemarks

Если параметр CHECK_POLICY имеет значение ON, аргумент HASHED использовать нельзя.When CHECK_POLICY is set to ON, the HASHED argument cannot be used.

При изменении значения CHECK_POLICY на ON происходит следующее.When CHECK_POLICY is changed to ON, the following behavior occurs:

  • Журнал паролей инициализируется значением хэша текущего пароля.The password history is initialized with the value of the current password hash.

    При изменении CHECK_POLICY на OFF происходит следующее.When CHECK_POLICY is changed to OFF, the following behavior occurs:

  • Параметр CHECK_EXPIRATION также получает значение OFF.CHECK_EXPIRATION is also set to OFF.

  • Журнал паролей очищается.The password history is cleared.

  • Значение lockout_time сбрасывается.The value of lockout_time is reset.

Если задан параметр MUST_CHANGE, то параметры CHECK_EXPIRATION и CHECK_POLICY должны иметь значение ON.If MUST_CHANGE is specified, CHECK_EXPIRATION and CHECK_POLICY must be set to ON. В противном случае выполнение инструкции приведет к ошибке.Otherwise, the statement will fail.

Если значение параметра CHECK_POLICY установлено равным OFF, то параметр CHECK_EXPIRATION не может иметь значения ON.If CHECK_POLICY is set to OFF, CHECK_EXPIRATION cannot be set to ON. Выполнение инструкции ALTER LOGIN с таким сочетанием параметров завершится ошибкой.An ALTER LOGIN statement that has this combination of options will fail.

Нельзя использовать параметр ALTER_LOGIN с аргументом DISABLE для запрещения доступа группе Windows.You cannot use ALTER_LOGIN with the DISABLE argument to deny access to a Windows group. Это сделано намеренно.This is by design. Например, инструкция ALTER_LOGIN [domain\group] DISABLE вернет следующее сообщение об ошибке:For example, ALTER_LOGIN [domain\group] DISABLE will return the following error message:

`"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."`

В База данных SQLSQL Database данные имени входа необходимы для проверки подлинности подключения, и правила брандмауэра на уровне сервера временно кэшируются в каждой базе данных.In База данных SQLSQL Database, login data required to authenticate a connection and server-level firewall rules are temporarily cached in each database. Этот кэш периодически обновляется.This cache is periodically refreshed. Чтобы принудительно обновить кэш проверки подлинности и убедиться в том, что база данных имеет последнюю версию таблицы имен входа, выполните инструкцию DBCC FLUSHAUTHCACHE.To force a refresh of the authentication cache and make sure that a database has the latest version of the logins table, execute DBCC FLUSHAUTHCACHE.

РазрешенияPermissions

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

Если используется параметр CREDENTIAL, то также требуется разрешение ALTER ANY CREDENTIAL.If the CREDENTIAL option is used, also requires ALTER ANY CREDENTIAL permission.

Если изменяемое имя входа является членом предопределенной роли сервера sysadmin или имеет разрешение CONTROL SERVER, ему также требуется разрешение CONTROL SERVER для внесения следующих изменений.If the login that is being changed is a member of the sysadmin fixed server role or a grantee of CONTROL SERVER permission, also requires CONTROL SERVER permission when making the following changes:

  • Сброс пароля без указания старого.Resetting the password without supplying the old password.
  • Включение параметров MUST_CHANGE, CHECK_POLICY или CHECK_EXPIRATION.Enabling MUST_CHANGE, CHECK_POLICY, or CHECK_EXPIRATION.
  • Изменение имени входа.Changing the login name.
  • Включение или отключение имени входа.Enabling or disabling the login.
  • Сопоставление имени входа с другими учетными данными.Mapping the login to a different credential.

Участник может изменить пароль, язык по умолчанию и базу данных по умолчанию для своего имени входа.A principal can change the password, default language, and default database for its own login.

ПримерыExamples

Эти примеры также включают примеры использования других продуктов SQL.These examples also include examples for using other SQL products. См. выше информацию о том, какие аргументы поддерживаются.Please see which arguments are supported above.

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

Следующий пример включает имя входа Mary5.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;

Б.B. Изменение пароля для имени входаChanging the password of a login

В следующем примере пароль для имени входа Mary5 изменяется на надежный пароль.The following example changes the password of login Mary5 to a strong password.

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

В.C. Изменение имени входаChanging the name of a login

Следующий пример изменяет имя входа Mary5 на John2.The following example changes the name of login Mary5 to John2.

ALTER LOGIN Mary5 WITH NAME = John2;

Г.D. Сопоставление имени входа с учетными даннымиMapping a login to a credential

Следующий пример сопоставляет имя входа John2 с учетными данными Custodian04.The following example maps the login John2 to the credential Custodian04.

ALTER LOGIN John2 WITH CREDENTIAL = Custodian04;

Д.E. Сопоставление имени входа с учетными данными расширенного управления ключамиMapping a login to an Extensible Key Management credential

В следующем примере имя входа Mary5 сопоставляется с учетными данными EKMProvider1.The following example maps the login Mary5 to the EKM credential EKMProvider1.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER LOGIN Mary5
ADD CREDENTIAL EKMProvider1;
GO

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

Чтобы разблокировать имя входа SQL ServerSQL Server, выполните следующую инструкцию, заменив **** нужным паролем учетной записи.To unlock a SQL ServerSQL Server login, execute the following statement, replacing **** with the desired account password.

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

GO

Чтобы разблокировать учетную запись без изменения пароля, отключите и снова включите политику проверки.To unlock a login without changing the password, turn the check policy off and then on again.

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

Ж.G. Изменение пароля для имени входа с помощью параметра HASHEDChanging the password of a login using HASHED

В следующем примере пароль имени входа TestUser изменяется на заранее хэшированное значение.The following example changes the password of the TestUser login to an already hashed value.

Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

ALTER LOGIN TestUser WITH
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;
GO

См. также:See Also