다음을 통해 공유


CREATE LOGIN(Transact-SQL)

새 SQL Server 로그인을 만듭니다. 

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

CREATE LOGIN loginName { WITH <option_list1> | FROM <sources> }

<option_list1> ::= 
    PASSWORD = { 'password' | hashed_password HASHED } [ MUST_CHANGE ]
    [ , <option_list2> [ ,... ] ]

<option_list2> ::=  
    SID = sid
    | DEFAULT_DATABASE = database    
    | DEFAULT_LANGUAGE = language
    | CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}
    | CREDENTIAL = credential_name 

<sources> ::=
    WINDOWS [ WITH <windows_options>[ ,... ] ]
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

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

인수

  • loginName
    만들 로그인 이름을 지정합니다. 로그인에는 SQL Server 인증 로그인, Windows 로그인, 인증서 매핑 로그인 및 비대칭 키 매핑 로그인의 네 가지 유형이 있습니다. Windows 도메인 계정에서 매핑된 로그인을 만들 경우 [<domainName>\<loginName>] 형식에 Windows 2000 이전 버전의 사용자 로그온 이름을 사용해야 합니다. loginName@DomainName 형식에 UPN을 사용할 수 없습니다. 예를 들어 이 항목 뒤에 있는 예제 4를 참조하십시오. SQL Server 인증 로그인은 sysname 형식이고 식별자에 대한 규칙을 준수해야 하며 '\'를 포함할 수 없습니다. Windows 로그인은 '\'를 포함할 수 있습니다.

  • PASSWORD ='password'
    SQL Server 로그인에만 적용됩니다. 만들 로그인의 암호를 지정합니다. 강력한 암호를 사용해야 합니다. 자세한 내용은 강력한 암호를 참조하십시오.

  • PASSWORD **=**hashed_password
    HASHED 키워드에만 적용됩니다. 만들 로그인에 대한 암호의 해시된 값을 지정합니다.

  • HASHED
    SQL Server 로그인에만 적용됩니다. PASSWORD 인수 다음에 입력한 암호가 이미 해시되었음을 지정합니다. 이 옵션을 선택하지 않으면 암호로 입력한 문자열이 데이터베이스에 저장되기 전에 해시됩니다. 이 옵션은 두 서버 간에 데이터베이스를 마이그레이션하는 데에만 사용해야 합니다. HASHED 옵션을 사용하여 새 로그인을 만들면 안 됩니다.

  • MUST_CHANGE
    SQL Server 로그인에만 적용됩니다. 이 옵션을 선택한 경우 새 로그인을 처음 사용할 때 SQL Server 에서는 새 암호를 묻는 메시지를 표시합니다.

  • CREDENTIAL **=**credential_name
    새 SQL Server 로그인에 매핑할 자격 증명의 이름입니다. 자격 증명이 서버에 이미 있어야 합니다. 현재 이 옵션은 자격 증명을 로그인에 연결하는 역할만 합니다. 자격 증명을 sa 로그인에 매핑할 수 없습니다.

  • SID = sid
    SQL Server 로그인에만 적용됩니다. 새 SQL Server 로그인의 GUID를 지정합니다. 이 옵션을 선택하지 않으면 SQL Server에서 자동으로 GUID를 할당합니다.

  • DEFAULT_DATABASE **=**database
    로그인에 할당할 기본 데이터베이스를 지정합니다. 이 옵션을 선택하지 않으면 기본 데이터베이스가 master로 설정됩니다.

  • DEFAULT_LANGUAGE **=**language
    로그인에 할당할 기본 언어를 지정합니다. 이 옵션을 선택하지 않으면 기본 언어가 서버의 현재 기본 언어로 설정됩니다. 나중에 서버의 기본 언어가 변경되더라도 로그인의 기본 언어는 그대로 유지됩니다.

  • CHECK_EXPIRATION = { ON | OFF }
    SQL Server 로그인에만 적용됩니다. 이 로그인에 암호 만료 정책을 적용할지 여부를 지정합니다. 기본값은 OFF입니다.

  • CHECK_POLICY = { ON | OFF }
    SQL Server 로그인에만 적용됩니다. SQL Server가 실행 중인 컴퓨터의 Windows 암호 정책을 이 로그인에 적용하도록 지정합니다. 기본값은 ON입니다.

  • WINDOWS
    로그인이 Windows 로그인에 매핑되도록 지정합니다.

  • CERTIFICATE certname
    이 로그인과 연결될 인증서의 이름을 지정합니다. 이 인증서는 master 데이터베이스에 이미 있어야 합니다.

  • ASYMMETRIC KEY asym_key_name
    이 로그인과 연결될 비대칭 키의 이름을 지정합니다. 이 키는 master 데이터베이스에 이미 있어야 합니다.

주의

암호는 대소문자를 구분합니다.

SQL Server 로그인을 만들 때만 암호를 미리 해시할 수 있습니다.

MUST_CHANGE를 지정한 경우에는 CHECK_EXPIRATION 및 CHECK_POLICY를 ON으로 설정해야 합니다. 그렇지 않으면 문이 실패합니다.

CHECK_POLICY = OFF와 CHECK_EXPIRATION = ON의 조합은 지원되지 않습니다.

CHECK_POLICY를 OFF로 설정하면 lockout_time이 다시 설정되고 CHECK_EXPIRATION이 OFF로 설정됩니다.

중요 정보중요

CHECK_EXPIRATION 및 CHECK_POLICY는 Windows Server 2003 이상 버전에서만 적용됩니다. 자세한 내용은 암호 정책을 참조하십시오.

인증서나 비대칭 키에서 만든 로그인은 코드 서명 용도로만 사용되며 SQL Server에 연결할 때는 사용할 수 없습니다. 인증서나 비대칭 키가 master 데이터베이스에 이미 있는 경우에만 인증서나 비대칭 키에서 로그인을 만들 수 있습니다.

로그인을 전송하는 스크립트는 SQL Server 2005와 SQL Server 2008 인스턴스 간에 로그인 및 암호를 전송하는 방법을 참조하십시오.

사용 권한

서버에 대한 ALTER ANY LOGIN 권한 또는 securityadmin 고정 서버 역할의 멤버 자격이 필요합니다.

CREDENTIAL 옵션을 사용하는 경우에는 서버에 대한 ALTER ANY CREDENTIAL 권한도 필요합니다.

1. 암호로 로그인 만들기

다음 예에서는 특정 사용자 ID에 대한 로그인을 만들고 암호를 할당합니다. MUST_CHANGE 옵션을 사용하는 경우 사용자는 서버에 처음 연결할 때 이 암호를 변경해야 합니다.

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>' MUST_CHANGE;
GO

2. 자격 증명에 매핑된 로그인 만들기

다음 예에서는 특정 사용자의 ID를 사용하여 사용자 로그인을 만듭니다. 이 로그인은 자격 증명에 매핑됩니다.

CREATE LOGIN <loginName> WITH PASSWORD = '<enterStrongPasswordHere>', 
    CREDENTIAL = <credentialName>;
GO

3. 인증서에서 로그인 만들기

다음 예에서는 master의 인증서를 사용하여 특정 사용자 ID에 대한 로그인을 만듭니다.

USE MASTER;
CREATE CERTIFICATE <certificateName>
    WITH SUBJECT = '<loginName> certificate in master database',
    EXPIRY_DATE = '12/05/2025';
GO
CREATE LOGIN <loginName> FROM CERTIFICATE <certificateName>;
GO

4. Windows 도메인 계정에서 로그인 만들기

다음 예에서는 Windows 도메인 계정을 사용하여 로그인을 만듭니다.

CREATE LOGIN [<domainName>\<loginName>] FROM WINDOWS;
GO