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

이 항목은 다음에 적용됩니다. 예SQL Server(2008부터)예Azure SQL Database예Azure SQL Data Warehouse 예병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (starting with 2008)yesAzure SQL DatabaseyesAzure SQL Data Warehouse yesParallel Data Warehouse

SQL ServerSQL Server 로그인 계정의 속성을 변경합니다.Changes the properties of a SQL ServerSQL Server login account.

항목 링크 아이콘 Transact-SQL 구문 규칙Topic link icon Transact-SQL Syntax Conventions

구문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  
-- 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  
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  

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_namelogin_name
변경할 SQL ServerSQL Server 로그인의 이름을 지정합니다.Specifies the name of the SQL ServerSQL Server login that is being changed. 도메인 이름은 [domain\user] 형식과 같이 대괄호로 묶어야 합니다.Domain logins must be enclosed in brackets in the format [domain\user].

ENABLE | DISABLEENABLE | 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 로그인에만 적용됩니다.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 권한이 있는 사용자 KILL 명령을 사용 하 여 SQL 데이터베이스에 대 한 연결을 명시적으로 종료 수 있습니다.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 (Transact-SQL).

암호 = hashed_passwordPASSWORD =hashed_password
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

HASHED 키워드에만 적용됩니다.Applies to the HASHED keyword only. 만들 로그인에 대한 암호의 해시된 값을 지정합니다.Specifies the hashed value of the password for the login that is being created.

중요

로그인 계정(또는 포함된 데이터베이스 사용자)이 연결되고 인증되면 해당 연결에 해당 로그인에 대한 ID 정보가 캐시됩니다.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. 연결이 유지되는 한 로그인의 ID가 인증된 상태로 유지됩니다.The identity of the login remains authenticated as long as the connection is maintained. 암호 재설정이나 Windows 그룹 멤버 자격 변경 등의 ID 변경 사항을 적용하려면 인증 기관(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.

HASHEDHASHED

적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

SQL ServerSQL Server 로그인에만 적용됩니다.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'OLD_PASSWORD ='oldpassword'
SQL ServerSQL Server 로그인에만 적용됩니다.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 Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

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.

DEFAULT_DATABASE = 데이터베이스DEFAULT_DATABASE =database
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

로그인에 할당할 기본 데이터베이스를 지정합니다.Specifies a default database to be assigned to the login.

DEFAULT_LANGUAGE = 언어DEFAULT_LANGUAGE =language

적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

로그인에 할당할 기본 언어를 지정합니다.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.

이름 = login_nameNAME = login_name
이름을 바꿀 로그인의 새 이름입니다.The new name of the login that is being renamed. Windows 로그인인 경우 새 이름에 해당하는 Windows 보안 주체의 SID가 SQL ServerSQL Server의 로그인에 연결된 SID와 일치해야 합니다.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 }CHECK_EXPIRATION = { ON | OFF }
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

SQL ServerSQL Server 로그인에만 적용됩니다.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}CHECK_POLICY = { ON | OFF }
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

SQL ServerSQL Server 로그인에만 적용됩니다.Applies only to SQL ServerSQL Server logins. SQL ServerSQL Server가 실행 중인 컴퓨터의 Windows 암호 정책을 이 로그인에 적용하도록 지정합니다.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_nameCREDENTIAL = credential_name
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

SQL ServerSQL Server 로그인에 매핑될 자격 증명의 이름입니다.The name of a credential to be mapped to a SQL ServerSQL Server login. 자격 증명이 서버에 이미 있어야 합니다.The credential must already exist in the server. 자세한 내용은 참조 자격 증명 ( 데이터베이스 엔진 )합니다.For more information see Credentials (Database Engine). Sa 로그인에 자격 증명을 매핑할 수 없습니다.A credential cannot be mapped to the sa login.

NO CREDENTIALNO CREDENTIAL
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

서버 자격 증명에 대한 로그인의 기존 매핑을 모두 제거합니다.Removes any existing mapping of the login to a server credential. 자세한 내용은 참조 자격 증명 ( 데이터베이스 엔진 )합니다.For more information see Credentials (Database Engine).

UNLOCKUNLOCK
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

SQL ServerSQL Server 로그인에만 적용됩니다.Applies only to SQL ServerSQL Server logins. 잠긴 로그인을 잠금 해제하도록 지정합니다.Specifies that a login that is locked out should be unlocked.

ADD CREDENTIALADD CREDENTIAL
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

EKM(확장 가능 키 관리) 공급자 자격 증명을 로그인에 추가합니다.Adds an Extensible Key Management (EKM) provider credential to the login. 자세한 내용은 참조 확장 가능 키 관리 ( Ekm) .For more information, see Extensible Key Management (EKM).

DROP CREDENTIALDROP CREDENTIAL
적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

로그인에서는 확장 가능 키 관리 (EKM) 공급자 자격 증명을 제거합니다.Removes an Extensible Key Management (EKM) provider credential from the login. 자세한 내용은 참조 하십시오. 확장 가능 키 관리 ( Ekm) .For more information see Extensible Key Management (EKM).

주의Remarks

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:

"메시지 15151, 수준 16, 상태 1, 줄 1"Msg 15151, Level 16, State 1, Line 1

"로그인을 변경할 수 없습니다 'Domain\Group' 때문에 존재 하지 않는 또는 권한이 없습니다.""Cannot alter the login 'Domain\Group', because it does not exist or you do not have permission."

이것은 의도적인 것입니다.This is by design.

SQL 데이터베이스SQL Database, 한 연결을 인증 하는 데 필요한 로그인 데이터 및 서버 수준 방화벽 규칙은 각 데이터베이스에 일시적으로 캐시 됩니다.In SQL 데이터베이스SQL 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 ( Transact SQL ) .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 (Transact-SQL).

PermissionsPermissions

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

1.A. 비활성화 된 로그인 활성화Enabling a disabled login

다음 예에서는 Mary5 로그인을 활성화합니다.The following example enables the login Mary5.

ALTER LOGIN Mary5 ENABLE;  

2.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>';  

3.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;  

4.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;  

5.E. 로그인을 확장 가능 키 관리 자격 증명에 매핑Mapping a login to an Extensible Key Management credential

다음 예에서는 Mary5 로그인을 EKMProvider1 EKM 자격 증명에 매핑합니다.The following example maps the login Mary5 to the EKM credential EKMProvider1.

적용 대상: SQL Server 2008SQL Server 2008 부터 SQL Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN Mary5  
ADD CREDENTIAL EKMProvider1;  
GO  

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

7.G. HASHED를 사용하여 로그인 암호 변경Changing 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 Server 2017SQL Server 2017까지Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

ALTER LOGIN TestUser WITH   
PASSWORD = 0x01000CF35567C60BFB41EBDE4CF700A985A13D773D6B45B90900 HASHED ;  
GO  

관련 항목:See Also

자격 증명 ( 데이터베이스 엔진 ) Credentials (Database Engine)
CREATE LOGIN (Transact-SQL) CREATE LOGIN (Transact-SQL)
DROP login( Transact SQL ) DROP LOGIN (Transact-SQL)
CREATE CREDENTIAL (Transact-SQL) CREATE CREDENTIAL (Transact-SQL)
EVENTDATA(Transact-SQL) EVENTDATA (Transact-SQL)
확장 가능 키 관리 (EKM)Extensible Key Management (EKM)