다음을 통해 공유


CREATE LOGIN(Transact-SQL)

SQL Server, Windows Azure SQL 데이터베이스 및 SQL Server PDW에 대한 데이터베이스 엔진 로그인을 만듭니다.

[!참고]

SQL Server, SQL 데이터베이스 및 SQL Server PDW에 대한 CREATE LOGIN 옵션은 서로 다릅니다.

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

구문

-- Syntax for SQL Server
CREATE LOGIN login_name { 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

구문

-- Syntax for SQL Database
CREATE LOGIN login_name { WITH <option_list3> }

<option_list3> ::= 
    PASSWORD = { 'password' }

구문

-- Syntax for SQL Server PDW
CREATE LOGIN login_name { WITH <option_list4> }

< option_list4> ::= 
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list5> [ ,... ] ]

<option_list5> ::=  
      CHECK_EXPIRATION = { ON | OFF}
    | CHECK_POLICY = { ON | OFF}

인수

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

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

    암호는 대소문자를 구분합니다. 암호의 길이는 항상 8자 이상이어야 하며 128자를 초과할 수 없습니다. 암호에는 a-z, A-Z, 0-9 및 영숫자가 아닌 대부분의 문자를 포함할 수 있습니다. 작은따옴표나 login_name은 암호에 포함할 수 없습니다.

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

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

  • 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 정책에 따라 강력한 암호가 필요한 경우에는 암호에 다음 네 가지 문자 중 세 가지 이상을 포함해야 합니다.

    • 대문자(A-Z)

    • 소문자(a-z)

    • 숫자(0-9)

    • 영숫자가 아닌 문자 중 하나(예: 공백, _, @, *, ^, %, !, $, # 또는 &)

  • 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 인스턴스 간에 로그인 및 암호를 전송하는 방법을 참조하십시오.

로그인을 만들면 새 로그인이 자동으로 사용하도록 설정되고 해당 로그인에 서버 수준 CONNECT SQL 권한이 부여됩니다.

SQL 데이터베이스 로그인

SQL 데이터베이스에서 CREATE LOGIN 문은 일괄 처리의 유일한 문이어야 합니다.

sqlcmd와 같이 SQL 데이터베이스에 연결하는 몇 가지 방법에서 <login>@<server> 표기법을 사용하여 연결 문자열의 로그인 이름에 SQL 데이터베이스 서버 이름을 추가해야 합니다. 예를 들어 로그인이 login1이고 SQL 데이터베이스 서버의 정규화된 이름이 servername.database.windows.net인 경우 연결 문자열의 username 매개 변수는 login1@servername이어야 합니다. username 매개 변수의 총 길이는 128자이므로 login_name은 127자에서 서버 이름의 길이만큼 뺀 길이로 제한됩니다. 이 예에서는 servername이 10자이므로 login_name에는 117자까지만 사용할 수 있습니다.

SQL 데이터베이스에서는 master 데이터베이스에 연결하여 로그인을 만들어야 합니다.

SQL 데이터베이스 로그인에 대한 자세한 내용은 Windows Azure SQL에서 데이터베이스 및 로그인 관리를 참조하십시오.

사용 권한

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

SQL 데이터베이스에서는 프로비전 프로세스를 통해 만들어진 서버 수준의 보안 주체 로그인이나 master 데이터베이스에서 loginmanager 데이터베이스 역할이 할당된 멤버만 새 로그인을 만들 수 있습니다.

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

다음 단계

로그인을 만든 후 해당 로그인으로 데이터베이스 엔진, SQL 데이터베이스 또는 SQL Server PDW 어플라이언스에 연결할 수 있지만 이 로그인은 public 역할에 부여된 사용 권한만 갖습니다. 다음 작업 중 일부를 수행하는 것이 좋습니다.

1. 암호로 로그인 만들기

모든 로그인에 적용됩니다.

다음 예에서는 특정 사용자에 대한 로그인을 만들고 암호를 할당합니다.

CREATE LOGIN <login_name> WITH PASSWORD = '<enterStrongPasswordHere>';
GO

B. 암호로 로그인 만들기

SQL Server 및 SQL Server PDW에 적용됩니다.

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

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

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

SQL Server에 적용됩니다.

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

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

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

SQL Server에 적용됩니다.

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

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

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

SQL Server에 적용됩니다.

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

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

참고 항목

참조

ALTER LOGIN(Transact-SQL)

DROP LOGIN(Transact-SQL)

EVENTDATA(Transact-SQL)

개념

보안 주체(데이터베이스 엔진)

암호 정책

로그인 만들기