다음을 통해 공유


CREATE LOGIN(Transact-SQL)

SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure Synapse Analytics 또는 Analytics Platform System 데이터베이스에 대한 로그인을 만듭니다. 특정 버전에 대한 구문, 인수, 비고, 사용 권한 및 예제에 대해 다음 탭 중 하나를 선택합니다.

CREATE LOGIN은 트랜잭션에 참여합니다. CREATE LOGIN이 트랜잭션 내에서 실행되고 트랜잭션이 롤백된 다음, 로그인 생성이 롤백됩니다. 트랜잭션 내에서 실행하는 경우 트랜잭션이 커밋될 때까지 생성된 로그인을 사용할 수 없습니다.

참고 항목

Microsoft Entra ID는 이전에 Azure Active Directory(Azure AD)로 알려졌습니다.

구문 표기 규칙에 대한 자세한 내용은 Transact-SQL 구문 표기 규칙을 참조하세요.

제품 선택

다음 행에서 관심 있는 제품 이름을 선택하면 해당 제품의 정보만 표시됩니다.

* SQL Server *  

 

SQL Server

구문

-- 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>[ ,... ] ]
    | EXTERNAL PROVIDER
    | CERTIFICATE certname
    | ASYMMETRIC KEY asym_key_name

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

인수

login_name

만들 로그인 이름을 지정합니다. SQL Server 로그인, Windows 로그인, Microsoft Entra 로그인, 인증서 매핑된 로그인 및 비대칭 키 매핑 로그인의 다섯 가지 유형의 로그인이 있습니다.

Windows 도메인 계정에서 매핑된 로그인을 만들 때 [<domainName>\<login_name>] 형식의 로그온 이름을 사용해야 합니다. login_name@DomainName 형식에 UPN을 사용할 수 없습니다. 예제는 이 문서의 뒷부분에 있는 E 예제를 참조하세요. 인증 로그인은 sysname 형식이며 식별자에 대한 규칙을 준수해야 하며 백슬래시()를 포함할 수 없습니다. Windows 로그인은 ' \ '를 포함할 수 없습니다. Active Directory 사용자를 기반으로 하는 로그인은 21자 미만의 이름으로 제한됩니다.

FROM EXTERNAL PROVIDER 절을 사용하는 경우 로그인 이름은 SQL 인스턴스가 Arc를 사용할 수 있는 동일한 테넌트에 있는 기존 Microsoft Entra 보안 주체의 표시 이름과 일치해야 합니다. Microsoft Entra 사용자, 그룹 및 애플리케이션을 사용하여 로그인을 만들 수 있습니다.

PASSWORD ='password'

SQL Server 로그인에만 적용됩니다. 만들 로그인의 암호를 지정합니다. 강력한 암호를 사용하세요. 자세한 내용은 강력한 암호암호 정책을 참조하세요. SQL Server 2012(11.x)부터 저장된 암호 정보는 솔트 암호의 SHA-512를 사용하여 계산됩니다.

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

PASSWORD = hashed_password

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

HASHED

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

MUST_CHANGE

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

CREDENTIAL =credential_name

새 SQL Server 로그인에 매핑할 자격 증명의 이름입니다. 자격 증명이 서버에 이미 있어야 합니다. 현재 이 옵션은 자격 증명을 로그인에 연결하는 역할만 합니다. 자격 증명은 시스템 관리자(sa) 로그인에 매핑할 수 없습니다.

SID = sid

로그인을 다시 만드는데 사용됩니다. SQL Server 인증 로그인에만 적용되고 Windows 인증 로그인에는 적용되지 않습니다. 새 SQL Server 인증 로그인의 SID를 지정합니다. 이 옵션을 사용하지 않으면 SQL Server에서 자동으로 SID를 할당합니다. SID 구조는 SQL Server 버전에 따라 달라집니다. SQL Server 로그인 SID: GUID에 기반한 16바이트(binary(16) ) 리터럴 값입니다. 예들 들어 SID = 0x14585E90117152449347750164BA00A7입니다.

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 로그인에 매핑되도록 지정합니다.

외부 공급자에서 시작

로그인이 Microsoft Entra 보안 주체에 매핑되도록 지정합니다. 이 옵션은 Arc 지원 SQL Server 2022 이상 버전에서 사용할 수 있습니다. 자세한 내용은 SQL Server에 대한 Microsoft Entra 인증을 참조 하세요.

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_EXPIRATIONOFF설정됩니다.

Important

CHECK_EXPIRATION 및 CHECK_POLICY Windows Server 2003 이상 버전에서만 적용됩니다. 자세한 내용은 Password Policy을 참조하세요.

  • 인증서나 비대칭 키에서 만든 로그인은 코드 서명 용도로만 사용되며 SQL Server에 연결하는 데 사용할 수 없습니다. 인증서 또는 비대칭 키가 이미 있는 경우에만 인증서 또는 비대칭 키에서 로그인을 만들 수 있습니다 master.
  • 로그인을 전송하는 스크립트는 SQL Server 2005와 SQL Server 2008 인스턴스 간에 로그인 및 암호를 전송하는 방법을 참조하세요.
  • 로그인을 만들면 새 로그인이 자동으로 사용하도록 설정되고 해당 로그인에 서버 수준 CONNECT SQL 권한이 부여됩니다.
  • 액세스를 허용하려면 서버의 인증 모드가 로그인 형식과 일치해야 합니다.
  • 권한 시스템 디자인에 대한 정보는 Getting Started with Database Engine Permissions을(를) 참조하세요.

사용 권한

  • 서버의 ALTER ANY LOGIN 권한 또는 securityadmin 고정 서버 역할의 멤버 자격이 있는 사용자만 로그인을 만들 수 있습니다. 자세한 내용은 서버 수준 역할ALTER SERVER ROLE을 참조하세요.
  • CREDENTIAL 옵션을 사용하는 경우에는 서버에 대한 ALTER ANY CREDENTIAL 권한도 필요합니다.

SQL Server 2022 이상에 대한 사용 권한

서버에 대한 CREATE LOGIN 권한이 필요하거나 ##MS_LoginManager## 고정 서버 역할의 멤버 자격이 필요합니다.

로그인을 만든 후

로그인을 만든 후 해당 로그인으로 SQL Server에 연결할 수 있지만 이 로그인은 public 역할에 부여된 권한만 있습니다. 다음 작업 중 일부를 수행하는 것이 좋습니다.

  • 데이터베이스에 연결하려면 로그인에 대한 데이터베이스 사용자를 만듭니다. 자세한 내용은 사용자 만들기를 참조하세요.
  • CREATE SERVER ROLE을 사용하여 사용자 정의 서버 역할을 만듭니다. 사용자 정의 서버 역할에 새 로그인을 추가하는 데 사용합니다 ALTER SERVER ROLE ... ADD MEMBER . 자세한 내용은 CREATE SERVER ROLEALTER SERVER ROLE을 참조하세요.
  • 고정 서버 역할에 로그인을 추가하는 데 사용합니다 sp_addsrvrolemember . 자세한 내용은 서버 수준 역할sp_addsrvrolemember을 참조하세요.
  • GRANT 문을 사용하여 새 로그인 또는 해당 로그인을 포함한 역할에 서버 수준 권한을 부여합니다. 자세한 내용은 GRANT를 참조하십시오.

예제

A. 암호를 사용하여 로그인 만들기

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

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

B. 변경해야 하는 암호를 사용하여 로그인 만들기

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

적용 대상: SQL Server 2008(10.0.x) 이상 버전

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

참고 항목

CHECK_EXPIRATION이 해제되어 있을 때는 MUST_CHANGE 옵션을 사용할 수 없습니다.

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

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

적용 대상: SQL Server 2008(10.0.x) 이상 버전

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

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

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

적용 대상: SQL Server 2008(10.0.x) 이상 버전

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 도메인 계정에서 로그인 만들기

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

적용 대상: SQL Server 2008(10.0.x) 이상 버전

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

F. SID에서 로그인 만들기

다음 예제에서는 우선 SQL Server 인증 로그인을 만들고 로그인의 SID를 결정합니다.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';
SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

쿼리는 0x241C11948AEEB749B0D22646DB1A19F2를 SID로 반환합니다. 쿼리는 다른 값을 반환합니다. 다음 문은 로그인을 삭제한 후 로그인을 다시 만듭니다. 이전 쿼리의 SID를 사용합니다.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

G. 여러 인수를 사용하여 로그인 만들기

다음 예제에서는 각 인수 사이에 쉼표를 사용하여 여러 인수를 연결하는 방법을 보여 줍니다.

CREATE LOGIN [MyUser]
WITH PASSWORD = 'MyPassword',
DEFAULT_DATABASE = MyDatabase,
CHECK_POLICY = OFF,
CHECK_EXPIRATION = OFF ;

H. 해시된 암호를 사용하여 SQL 로그인 만들기

다음 예제는 마이그레이션 시나리오에서 수행된 것처럼 기존 로그인과 동일한 암호로 SQL 로그인을 만드는 방법을 보여 줍니다. 첫 번째 단계는 원본 데이터베이스 서버의 기존 로그인에서 암호 해시를 검색하는 것입니다. 그런 다음 동일한 해시가 새 데이터베이스 서버에서 로그인을 만드는 데 사용됩니다. 이렇게 하면 새 로그인이 이전 서버와 동일한 암호를 갖게 됩니다.

-- run this to retrieve the password hash for an individual Login:
SELECT LOGINPROPERTY('Andreas','PASSWORDHASH') AS password_hash;
-- as an alternative, the catalog view sys.sql_logins can be used to retrieve the password hashes for multiple accounts at once. (This could be used to create a dynamic sql statement from the result set
SELECT name, password_hash
FROM sys.sql_logins
  WHERE
    principal_id > 1    -- excluding sa
    AND
    name NOT LIKE '##MS_%##' -- excluding special MS system accounts
-- create the new SQL Login on the new database server using the hash of the source server
CREATE LOGIN Andreas
  WITH PASSWORD = 0x02000A1A89CD6C6E4C8B30A282354C8EA0860719D5D3AD05E0CAE1952A1C6107A4ED26BEBA2A13B12FAB5093B3CC2A1055910CC0F4B9686A358604E99BB9933C75B4EA48FDEA HASHED;

9\. Microsoft Entra 사용자에 대한 로그인 만들기

다음 예제에서는 contoso라는 Microsoft Entra 테넌트에 있는 Microsoft Entra 계정에 joe@contoso.onmicrosoft.com 대한 로그인을 만듭니다.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

J. 페더레이션된 Microsoft Entra 계정에 대한 로그인 만들기

다음 예제에서는 contoso라는 테넌트에 있는 페더레이션된 Microsoft Entra 계정에 bob@contoso.com 대한 로그인을 만듭니다. 사용자 bob은 게스트 사용자일 수도 있습니다.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

11. Microsoft Entra 그룹에 대한 로그인 만들기

다음 예제에서는 테넌트 contoso에 있는 Microsoft Entra 그룹 mygroup에 대한 로그인을 만듭니다.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

12. Microsoft Entra 애플리케이션에 대한 로그인 만들기

다음 예제에서는 테넌트 contoso에 있는 Microsoft Entra 애플리케이션 myapp에 대한 로그인을 만듭니다.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

* Azure SQL Database *  

 

SQL Database

Azure SQL Database에 대한 연결 및 권한 부여에 대한 자세한 내용은 다음을 참조하세요.

구문

-- Syntax for Azure SQL Database
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] 
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

인수

login_name

참고 항목

Microsoft Entra 서버 보안 주체(로그인) 는 현재 Azure SQL Database에 대한 공개 미리 보기로 제공됩니다.

FROM EXTERNAL PROVIDER 절과 함께 사용할 경우 로그인은 Microsoft Entra 사용자, 그룹 또는 애플리케이션인 Microsoft Entra 보안 주체를 지정합니다. 그렇지 않으면 로그인은 생성된 SQL 로그인의 이름을 나타냅니다.

2048개 이상의 Microsoft Entra 보안 그룹의 구성원인 Microsoft Entra 사용자 및 서비스 주체는 SQL Database, SQL Managed Instance 또는 Azure Synapse에서 데이터베이스에 로그인할 수 없습니다.

외부 공급자에서 시작

로그인이 Microsoft Entra 인증용임을 지정합니다.

WITH OBJECT_ID = 'objectid'

Microsoft Entra 개체 ID를 지정합니다. OBJECT_ID 지정된 경우 login_name Microsoft Entra 표시 이름과 일치시킬 필요가 없습니다. login_name 보기에서 sys.server_principals 고유한 이름이어야 하며 다른 sysname 모든 제한 사항을 준수해야 합니다. 이 옵션을 사용하는 WITH OBJECT_ID 방법에 대한 자세한 내용은 Microsoft Entra 로그인 및 특수하지 않은 표시 이름을 가진 사용자를 참조하세요.

참고 항목

서비스 주체 표시 이름이 중복되지 않은 경우 기본값 CREATE LOGIN 또는 CREATE USER 문을 사용해야 합니다. 확장은 WITH OBJECT_ID 특수하지 않은 서비스 주체와 함께 사용하기 위해 구현된 문제 해결 복구 항목입니다. 고유한 서비스 주체와 함께 사용하는 것은 권장되지 않습니다. 접미사를 추가하지 않고 서비스 주체에 WITH OBJECT_ID 익스텐션을 사용하면 성공적으로 실행은 되지만 로그인 또는 사용자가 만들어진 서비스 주체를 명확하게 나타내지는 못합니다. 서비스 주체를 고유하게 식별하는 접미사를 사용하여 별칭을 만들 것을 권장합니다. SQL Server에는 WITH OBJECT_ID 익스텐션이 지원되지 않습니다.

PASSWORD ='password'

만들 SQL 로그인의 암호를 지정합니다. 강력한 암호를 사용하세요. 자세한 내용은 강력한 암호암호 정책을 참조하세요. SQL Server 2012(11.x)부터 저장된 암호 정보는 솔트 암호의 SHA-512를 사용하여 계산됩니다.

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

SID = sid

로그인을 다시 만드는데 사용됩니다. SQL Server 인증 로그인에만 적용되고 Windows 인증 로그인에는 적용되지 않습니다. 새 SQL Server 인증 로그인의 SID를 지정합니다. 이 옵션을 사용하지 않으면 SQL Server에서 SID를 자동으로 할당합니다. SID 구조는 SQL Server 버전에 따라 달라집니다. SQL Database의 경우 0x01060000000000640000000000000000과 GUID를 나타내는 16바이트로 구성된 32바이트(binary(32) ) 리터럴입니다. 예들 들어 SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7입니다.

설명

  • 암호는 대소문자를 구분합니다.
  • 로그인을 만들면 새 로그인이 자동으로 사용하도록 설정되고 해당 로그인에 서버 수준 CONNECT SQL 권한이 부여됩니다.

중요

Azure SQL Database에서 로그인 및 사용자를 사용하는 방법에 대한 자세한 내용은 Azure SQL Database에서 로그인 관리를 참조하세요.

로그인

SQL Database 로그인

CREATE LOGIN 문은 일괄 처리의 유일한 명령문이어야 합니다.

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

SQL Database에서 로그인을 만들 수 있는 master 적절한 권한이 있는 데이터베이스에 연결해야 합니다. 자세한 내용은 관리자 권한이 있는 추가 로그인 및 사용자 만들기를 참조하세요.

SQL Server 규칙을 사용하면 loginname@<servername> 형식<으로 SQL Server 인증 로그인을 만들 수 있습니다>. SQL Database 서버가 myazureserver이고 로그인이 myemail@contoso.com인 경우 로그인을 myemail@contoso.com@myazureserver로 제공해야 합니다.

SQL Database에서 연결을 인증하는 데 필요한 로그인 데이터 및 서버 수준 방화벽 규칙은 각 데이터베이스에 일시적으로 캐시됩니다. 이 캐시는 주기적으로 새로 고쳐집니다. 인증 캐시 새로 고침을 강제 실행하고 데이터베이스에 최신 버전의 로그인 테이블이 있는지 확인하려면 DBCC FLUSHAUTHCACHE를 실행합니다.

사용 권한

서버 수준 보안 주체 로그인(프로비저닝 프로세스에서 생성됨) 또는 데이터베이스의 loginmanager 데이터베이스 역할 멤버만 새 로그인을 master 만들 수 있습니다. 자세한 내용은 관리자 권한이 있는 추가 로그인 및 사용자 만들기를 참조하세요.

예제

A. 암호를 사용하여 로그인 만들기

다음 예에서는 특정 사용자에 대한 로그인을 만들고 암호를 할당합니다. 데이터베이스에 master 연결한 다음, 다음 코드 샘플을 사용합니다.

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

B. SID에서 로그인 만들기

다음 예제에서는 우선 SQL Server 인증 로그인을 만들고 로그인의 SID를 결정합니다. 데이터베이스에 master 연결한 다음, 다음 코드 샘플을 사용합니다.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

쿼리는 0x241C11948AEEB749B0D22646DB1A19F2를 SID로 반환합니다. 쿼리는 다른 값을 반환합니다. 다음 문은 로그인을 삭제한 후 로그인을 다시 만듭니다. 이전 쿼리의 SID를 사용합니다.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

C. Microsoft Entra 계정을 사용하여 로그인 만들기

이 예제에서는 Microsoft contosoEntra 도메인에 있는 사용자의 bob@contoso.com 자격 증명을 사용하여 Azure SQL 논리 서버에 로그인을 만듭니다. 데이터베이스에 master 연결한 다음, 다음 코드 샘플을 사용합니다.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER;
GO

D. 개체 ID를 사용하여 별칭이 있는 로그인 만들기

Microsoft Entra 서비스 주체 또는 그룹의 개체 ID를 지정하여 login_name 대한 별칭을 만들 수 있습니다. 데이터베이스에 master 연결한 다음, 다음 코드 샘플을 사용합니다.

CREATE LOGIN [myapp4466e] FROM EXTERNAL PROVIDER 
  WITH OBJECT_ID='aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb';

서비스 주체의 개체 ID를 가져오는 방법에 대한 자세한 내용은 Microsoft Entra ID의 서비스 주체 개체를 참조하세요.

* Azure SQL
Managed Instance*

 

Azure SQL Managed Instance

구문

-- Syntax for Azure SQL Managed Instance
CREATE LOGIN login_name [FROM EXTERNAL PROVIDER [WITH OBJECT_ID = 'objectid'] ] { WITH <option_list> [,..]}

<option_list> ::=
    PASSWORD = {'password'}
    | SID = sid
    | DEFAULT_DATABASE = database
    | DEFAULT_LANGUAGE = language

인수

login_name

FROM EXTERNAL PROVIDER 절과 함께 사용할 경우 로그인은 Microsoft Entra 사용자, 그룹 또는 애플리케이션인 Microsoft Entra 보안 주체를 지정합니다. 그렇지 않으면 로그인은 생성된 SQL 로그인의 이름을 나타냅니다.

2048개 이상의 Microsoft Entra 보안 그룹의 구성원인 Microsoft Entra 사용자 및 서비스 주체는 Azure SQL Database, Azure SQL Managed Instance 또는 Azure Synapse의 데이터베이스에 로그인할 수 없습니다.

FROM EXTERNAL PROVIDER

로그인이 Microsoft Entra 인증용임을 지정합니다.

WITH OBJECT_ID = 'objectid'

Microsoft Entra 개체 ID를 지정합니다. OBJECT_ID 지정된 경우 login_name 접미사가 추가된 원래 보안 주체 표시 이름에서 형성된 사용자 정의 별칭일 수 있습니다. login_name 보기에서 sys.server_principals 고유한 이름이어야 하며 다른 sysname 모든 제한 사항을 준수해야 합니다. 이 옵션을 사용하는 WITH OBJECT_ID 방법에 대한 자세한 내용은 Microsoft Entra 로그인 및 특수하지 않은 표시 이름을 가진 사용자를 참조하세요.

참고 항목

서비스 주체 표시 이름이 중복되지 않은 경우 기본값 CREATE LOGIN 또는 CREATE USER 문을 사용해야 합니다. WITH OBJECT_ID 익스텐션은 공개 미리 보기로 제공되며, 이는 고유하지 않은 서비스 주체와 사용하기 위해 구현된 문제 해결 복구 항목입니다. 고유한 서비스 주체와 함께 사용할 필요는 없습니다. 접미사를 추가하지 않고 서비스 주체에 WITH OBJECT_ID 익스텐션을 사용하면 성공적으로 실행은 되지만 로그인 또는 사용자가 만들어진 서비스 주체를 명확하게 나타내지는 못합니다. 서비스 주체를 고유하게 식별하는 접미사를 사용하여 별칭을 만들 것을 권장합니다. SQL Server에는 WITH OBJECT_ID 익스텐션이 지원되지 않습니다.

PASSWORD = 'password'

만들 SQL 로그인의 암호를 지정합니다. 강력한 암호를 사용하세요. 자세한 내용은 강력한 암호암호 정책을 참조하세요. SQL Server 2012(11.x)부터 저장된 암호 정보는 솔트 암호의 SHA-512를 사용하여 계산됩니다.

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

SID = sid

로그인을 다시 만드는데 사용됩니다. SQL Server 인증 로그인에만 적용됩니다. 새 SQL Server 인증 로그인의 SID를 지정합니다. 이 옵션을 사용하지 않으면 SQL Server에서 SID를 자동으로 할당합니다. SID 구조는 SQL Server 버전에 따라 달라집니다. SQL Database의 경우 0x01060000000000640000000000000000과 GUID를 나타내는 16바이트로 구성된 32바이트(binary(32) ) 리터럴입니다. 예들 들어 SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7입니다.

설명

  • 이 구문은 FROM EXTERNAL PROVIDER Microsoft Entra 계정에 매핑된 서버 수준 보안 주체를 만듭니다.

  • 지정되는 경우 FROM EXTERNAL PROVIDER :

    • login_name 현재 Azure SQL Managed Instance에서 Microsoft Entra ID로 액세스할 수 있는 기존 Microsoft Entra 계정(사용자, 그룹 또는 애플리케이션)을 나타내야 합니다. Microsoft Entra 보안 주체의 경우 CREATE LOGIN 구문에는 다음이 필요합니다.

      • Microsoft Entra 사용자용 Microsoft Entra 개체의 UserPrincipalName입니다.

      • Microsoft Entra 그룹 및 애플리케이션에 대한 Microsoft Entra 개체의 DisplayName입니다.

    • PASSWORD 옵션을 사용할 수 없습니다.

  • 기본적으로 절을 FROM EXTERNAL PROVIDER 생략하면 일반 SQL 로그인이 만들어집니다.

  • Microsoft Entra 로그인은 sys.server_principalsMicrosoft Entra 사용자에게 매핑된 로그인에 대해 형식 열 값이 설정 E 되고 type_desc EXTERNAL_LOGIN 설정되거나, Microsoft Entra 그룹에 매핑된 로그인에 대해 열 값이 X EXTERNAL_GROUP 설정되고 type_desc 값이 설정됩니다.

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

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

중요

Azure SQL Database에서 로그인 및 사용자를 사용하는 방법에 대한 자세한 내용은 Azure SQL Database에서 로그인 관리를 참조하세요.

로그인 및 사용 권한

서버 수준 보안 주체 로그인(프로비저닝 프로세스에서 생성됨) 또는 sysadmin 데이터베이스의 securityadmin 데이터베이스 역할 멤버만 새 로그인을 master 만들 수 있습니다. 자세한 내용은 서버 수준 역할ALTER SERVER ROLE을 참조하세요.

기본적으로 새로 만든 Microsoft Entra 로그인 master 에 부여되는 표준 권한은 CONNECT SQLVIEW ANY DATABASE입니다.

SQL Managed Instance 로그인

  • 서버의 ALTER ANY LOGIN 권한이나 고정 서버 역할 securityadmin 또는 sysadmin 중 하나의 멤버 자격이 있어야 합니다. 서버에 대한 ALTER ANY LOGIN 권한이 있는 Microsoft Entra 계정 또는 해당 역할 중 하나의 멤버 자격만 create 명령을 실행할 수 있습니다.

  • 로그인이 SQL 보안 주체인 경우 역할의 sysadmin 일부인 로그인만 create 명령을 사용하여 Microsoft Entra 계정에 대한 로그인을 만들 수 있습니다.

  • Azure SQL Managed Instance와 동일한 Microsoft Entra 테넌트 멤버여야 합니다.

로그인을 만든 후

로그인을 만든 후 해당 로그인으로 Managed Instance에 연결할 수 있지만 이 로그인은 public 역할에 부여된 권한만 있습니다. 다음 작업 중 일부를 수행하는 것이 좋습니다.

  • Microsoft Entra 로그인에서 사용자를 만들려면 CREATE USER를 참조하세요.

  • 데이터베이스의 사용자에게 권한을 부여하려면 문을 사용하여 ALTER SERVER ROLE ... ADD MEMBER 기본 제공 데이터베이스 역할 또는 사용자 지정 역할 중 하나에 사용자를 추가하거나 GRANT 문을 사용하여 사용자에게 직접 권한을 부여합니다. 자세한 내용은 비관리자 역할, 추가 서버 수준 관리 역할, ALTER SERVER ROLEGRANT 문을 참조합니다.

  • 서버 전체 권한을 부여하려면 데이터베이스에서 master 데이터베이스 사용자를 만들고 문을 사용하여 ALTER SERVER ROLE ... ADD MEMBER 사용자를 관리 서버 역할 중 하나에 추가합니다. 자세한 내용은 서버 수준 역할, ALTER SERVER ROLE서버 역할을 참조하세요.

    • 다음 명령을 사용하여 Microsoft Entra 로그인에 역할을 추가 sysadmin 합니다. ALTER SERVER ROLE sysadmin ADD MEMBER [MS_Entra_login]
  • GRANT 문을 사용하여 새 로그인 또는 해당 로그인을 포함한 역할에 서버 수준 권한을 부여합니다. 자세한 내용은 GRANT를 참조하십시오.

제한 사항

  • Microsoft Entra 그룹에 매핑된 Microsoft Entra 로그인을 데이터베이스 소유자로 설정하는 것은 지원되지 않습니다.

  • EXECUTE AS 절과 같은 다른 Microsoft Entra 보안 주체를 사용하여 Microsoft Entra 로그인을 가장할 수 있습니다.

  • 역할의 sysadmin 일부인 서버 보안 주체(로그인)만 Microsoft Entra 보안 주체를 대상으로 하는 다음 작업을 실행할 수 있습니다.

    • EXECUTE AS USER
    • EXECUTE AS LOGIN
  • 다른 Microsoft Entra 디렉터리에서 가져온 외부(게스트) 사용자는 Azure Portal을 사용하여 SQL Managed Instance에 대한 Microsoft Entra 관리자로 직접 구성할 수 없습니다. 대신 외부 사용자를 역할 할당 가능 그룹에 조인하고 그룹을 인스턴스 관리자로 구성합니다. PowerShell이나 Azure CLI를 사용하여 개별 게스트 사용자를 인스턴스 관리자로 설정할 수 있습니다.

  • 로그인은 장애 조치(failover) 그룹의 보조 인스턴스에 복제되지 않습니다. 로그인은 시스템 데이터베이스인 데이터베이스에 master 저장되므로 지역에서 복제되지 않습니다. 이 문제를 해결하려면 보조 인스턴스에서 동일한 SID를 사용하여 로그인을 만들어야 합니다.

-- Code to create login on the secondary instance
CREATE LOGIN foo WITH PASSWORD = '<enterStrongPasswordHere>', SID = <login_sid>;

예제

A. 암호를 사용하여 로그인 만들기

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

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

B. SID에서 로그인 만들기

다음 예제에서는 우선 SQL Server 인증 로그인을 만들고 로그인의 SID를 결정합니다.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

쿼리는 0x241C11948AEEB749B0D22646DB1A19F2를 SID로 반환합니다. 쿼리는 다른 값을 반환합니다. 다음 문은 로그인을 삭제한 후 로그인을 다시 만듭니다. 이전 쿼리의 SID를 사용합니다.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

C. Microsoft Entra 사용자에 대한 로그인 만들기

다음 예제에서는 contoso라는 테넌트에 있는 Microsoft Entra 계정에 joe@contoso.onmicrosoft.com 대한 로그인을 만듭니다.

CREATE LOGIN [joe@contoso.onmicrosoft.com] FROM EXTERNAL PROVIDER

GO

D. 페더레이션된 Microsoft Entra 계정에 대한 로그인 만들기

다음 예제에서는 contoso라는 테넌트에 있는 페더레이션된 Microsoft Entra 계정에 bob@contoso.com 대한 로그인을 만듭니다. 사용자 bob은 게스트 사용자일 수도 있습니다.

CREATE LOGIN [bob@contoso.com] FROM EXTERNAL PROVIDER
GO

E. Microsoft Entra 그룹에 대한 로그인 만들기

다음 예제에서는 테넌트 contoso에 있는 Microsoft Entra 그룹 mygroup에 대한 로그인을 만듭니다.

CREATE LOGIN [mygroup] FROM EXTERNAL PROVIDER
GO

F. Microsoft Entra 애플리케이션에 대한 로그인 만들기

다음 예제에서는 테넌트 contoso에 있는 Microsoft Entra 애플리케이션 myapp에 대한 로그인을 만듭니다.

CREATE LOGIN [myapp] FROM EXTERNAL PROVIDER

G. 새로 추가된 로그인 확인

새로 추가된 로그인을 확인하려면 다음 T-SQL 명령을 실행합니다.

SELECT *
FROM sys.server_principals;
GO

* Azure Synapse
Analytics *

 

Azure Synapse Analytics

구문

-- Syntax for Azure Synapse Analytics
CREATE LOGIN login_name
  { 
    FROM EXTERNAL PROVIDER
    | WITH <option_list> [,..] 
  }

<option_list> ::=
    PASSWORD = { 'password' }
    [ , SID = sid ]

인수

참고 항목

Microsoft Entra 서버 보안 주체(로그인) 는 현재 미리 보기로 제공됩니다.

FROM EXTERNAL PROVIDER 절과 함께 사용할 경우 로그인은 Microsoft Entra 사용자, 그룹 또는 애플리케이션인 Microsoft Entra 보안 주체를 지정합니다. 그렇지 않으면 로그인은 생성된 SQL 로그인의 이름을 나타냅니다.

2048개 이상의 Microsoft Entra 보안 그룹의 구성원인 Microsoft 사용자 및 서비스 주체(Microsoft Entra 애플리케이션)는 SQL Database, SQL Managed Instance 또는 Azure Synapse에서 데이터베이스에 로그인할 수 없습니다.

외부 공급자에서 시작

로그인이 Microsoft Entra 인증용임을 지정합니다.

login_name

만들 로그인 이름을 지정합니다. Azure Synapse의 SQL Analytics는 SQL 로그인만 지원합니다. Microsoft Entra 사용자에 대한 계정을 만들려면 CREATE USER 문을 사용합니다.

PASSWORD ='password'

만들 SQL 로그인의 암호를 지정합니다. 강력한 암호를 사용하세요. 자세한 내용은 강력한 암호암호 정책을 참조하세요. SQL Server 2012(11.x)부터 저장된 암호 정보는 솔트 암호의 SHA-512를 사용하여 계산됩니다.

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

SID = sid

로그인을 다시 만드는데 사용됩니다. SQL Server 인증 로그인에만 적용되고 Windows 인증 로그인에는 적용되지 않습니다. 새 SQL Server 인증 로그인의 SID를 지정합니다. 이 옵션을 사용하지 않으면 SQL Server에서 SID를 자동으로 할당합니다. SID 구조는 SQL Server 버전에 따라 달라집니다. SQL Analytics의 경우 0x01060000000000640000000000000000과 GUID를 나타내는 16바이트로 구성된 32바이트(binary(32) ) 리터럴입니다. 예들 들어 SID = 0x0106000000000064000000000000000014585E90117152449347750164BA00A7입니다.

설명

로그인

CREATE LOGIN 문은 일괄 처리의 유일한 명령문이어야 합니다.

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

로그인을 만들려면 데이터베이스에 master 연결해야 합니다.

SQL Server 규칙을 사용하면 loginname@<servername> 형식<으로 SQL Server 인증 로그인을 만들 수 있습니다>. SQL Database 서버가 myazureserver이고 로그인이 myemail@contoso.com인 경우 로그인을 myemail@contoso.com@myazureserver로 제공해야 합니다.

연결 및 서버 수준 방화벽 규칙을 인증하는 데 필요한 로그인 데이터는 각 데이터베이스에 일시적으로 캐시됩니다. 이 캐시는 주기적으로 새로 고쳐집니다. 인증 캐시 새로 고침을 강제 실행하고 데이터베이스에 최신 버전의 로그인 테이블이 있는지 확인하려면 DBCC FLUSHAUTHCACHE를 실행합니다.

로그인에 대한 자세한 내용은 데이터베이스 및 로그인 관리를 참조하세요.

사용 권한

서버 수준 보안 주체 로그인(프로비저닝 프로세스에서 생성됨) 또는 데이터베이스의 loginmanager 데이터베이스 역할 멤버만 새 로그인을 master 만들 수 있습니다. 자세한 내용은 서버 수준 역할ALTER SERVER ROLE을 참조하세요.

로그인을 만든 후

로그인을 만든 후 해당 로그인으로 Azure Synapse에 연결할 수 있지만 이 로그인은 public 역할에 부여된 권한만 있습니다. 다음 작업 중 일부를 수행하는 것이 좋습니다.

  • 데이터베이스에 연결하려면 로그인에 대한 데이터베이스 사용자를 만듭니다. 자세한 내용은 사용자 만들기를 참조하세요.

  • 데이터베이스의 사용자에게 권한을 부여하려면 문을 사용하여 ALTER SERVER ROLE ... ADD MEMBER 기본 제공 데이터베이스 역할 또는 사용자 지정 역할 중 하나에 사용자를 추가하거나 GRANT 문을 사용하여 사용자에게 직접 권한을 부여합니다. 자세한 내용은 비관리자 역할, 추가 서버 수준 관리 역할, ALTER SERVER ROLEGRANT 문을 참조합니다.

  • 서버 전체 권한을 부여하려면 데이터베이스에서 master 데이터베이스 사용자를 만들고 문을 사용하여 ALTER SERVER ROLE ... ADD MEMBER 사용자를 관리 서버 역할 중 하나에 추가합니다. 자세한 내용은 서버 수준 역할, ALTER SERVER ROLE서버 역할을 참조하세요.

  • GRANT 문을 사용하여 새 로그인 또는 해당 로그인을 포함한 역할에 서버 수준 권한을 부여합니다. 자세한 내용은 GRANT를 참조하십시오.

예제

A. 암호를 사용하여 로그인 만들기

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

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

B. SID에서 로그인 만들기

다음 예제에서는 우선 SQL Server 인증 로그인을 만들고 로그인의 SID를 결정합니다.

CREATE LOGIN TestLogin WITH PASSWORD = 'SuperSecret52&&';

SELECT name, sid FROM sys.sql_logins WHERE name = 'TestLogin';
GO

쿼리는 0x241C11948AEEB749B0D22646DB1A19F2를 SID로 반환합니다. 쿼리는 다른 값을 반환합니다. 다음 문은 로그인을 삭제한 후 로그인을 다시 만듭니다. 이전 쿼리의 SID를 사용합니다.

DROP LOGIN TestLogin;
GO

CREATE LOGIN TestLogin
WITH PASSWORD = 'SuperSecret52&&', SID = 0x241C11948AEEB749B0D22646DB1A19F2;

SELECT * FROM sys.sql_logins WHERE name = 'TestLogin';
GO

* Analytics
플랫폼 시스템(PDW) *

 

분석 플랫폼 시스템

구문

-- Syntax for Analytics Platform System
CREATE LOGIN loginName { WITH <option_list1> | FROM WINDOWS }

<option_list1> ::=
    PASSWORD = { 'password' } [ MUST_CHANGE ]
    [ , <option_list> [ ,... ] ]

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

인수

login_name

만들 로그인 이름을 지정합니다. 로그인에는 SQL Server 로그인, Windows 로그인, 인증서 매핑 로그인 및 비대칭 키 매핑 로그인의 네 가지 유형이 있습니다. Windows 도메인 계정에서 매핑된 로그인을 만드는 경우 [<domainName>\<login_name>] 형식으로 Windows 2000 이전 사용자 로그온 이름을 사용해야 합니다. LOGIN_NAME@DOMAINNAME 형식으로 UPN을 사용할 수 없습니다. 이 문서의 뒷부분에 나오는 예 4를 참조하세요. 인증 로그인은 sysname 형식이며 식별자에 대한 규칙을 준수해야 하며 ''\을 포함할 수 없습니다. Windows 로그인은 ' \ '를 포함할 수 없습니다. Active Directory 사용자에 기반한 로그인은 21자 미만의 이름으로 제한됩니다.

PASSWORD ='password'

SQL Server 로그인에만 적용됩니다. 만들 로그인의 암호를 지정합니다. 강력한 암호를 사용하세요. 자세한 내용은 강력한 암호암호 정책을 참조하세요. SQL Server 2012(11.x)부터 저장된 암호 정보는 솔트 암호의 SHA-512를 사용하여 계산됩니다.

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

MUST_CHANGE

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

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 로그인에 매핑되도록 지정합니다.

설명

  • 암호는 대소문자를 구분합니다.
  • MUST_CHANGE를 지정한 경우에는 CHECK_EXPIRATION 및 CHECK_POLICY를 ON으로 설정해야 합니다. 그렇지 않으면 문이 실패합니다.
  • CHECK_POLICY = OFF 및 CHECK_EXPIRATION = ON의 조합은 지원되지 않습니다.
  • CHECK_POLICY를 OFF로 설정하면 lockout_time이 재설정되고 CHECK_EXPIRATION이 OFF로 설정됩니다.

Important

CHECK_EXPIRATION 및 CHECK_POLICY Windows Server 2003 이상 버전에서만 적용됩니다. 자세한 내용은 Password Policy을 참조하세요.

사용 권한

서버의 ALTER ANY LOGIN 권한 또는 securityadmin 고정 서버 역할의 멤버 자격이 있는 사용자만 로그인을 만들 수 있습니다. 자세한 내용은 서버 수준 역할ALTER SERVER ROLE을 참조하세요.

로그인을 만든 후

로그인을 만든 후 해당 로그인으로 Azure Synapse Analytics에 연결할 수 있지만 이 로그인은 public 역할에 부여된 권한만 있습니다. 다음 작업 중 일부를 수행하는 것이 좋습니다.

  • 데이터베이스에 연결하려면 로그인에 대한 데이터베이스 사용자를 만듭니다. 자세한 내용은 사용자 만들기를 참조하세요.
  • CREATE SERVER ROLE을 사용하여 사용자 정의 서버 역할을 만듭니다. 사용자 정의 서버 역할에 새 로그인을 추가하는 데 사용합니다 ALTER SERVER ROLE ... ADD MEMBER . 자세한 내용은 CREATE SERVER ROLEALTER SERVER ROLE을 참조하세요.
  • 고정 서버 역할에 로그인을 추가하는 데 사용합니다 sp_addsrvrolemember . 자세한 내용은 서버 수준 역할sp_addsrvrolemember을 참조하세요.
  • GRANT 문을 사용하여 새 로그인 또는 해당 로그인을 포함한 역할에 서버 수준 권한을 부여합니다. 자세한 내용은 GRANT를 참조하십시오.

예제

G. 암호를 사용하여 SQL Server 인증 로그인 만들기

다음 예제에서는 암호 A2c3456을 사용하여 로그인 Mary7을 만듭니다.

CREATE LOGIN Mary7 WITH PASSWORD = 'A2c3456$#' ;

H. 옵션 사용

다음 예제에서는 암호 및 몇 개의 선택적 인수를 사용하여 로그인 Mary8을 만듭니다.

CREATE LOGIN Mary8 WITH PASSWORD = 'A2c3456$#' MUST_CHANGE,
CHECK_EXPIRATION = ON,
CHECK_POLICY = ON;

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

다음 예제에서는 Contoso 도메인의 Mary라는 Windows 도메인 계정에서 로그인을 만듭니다.

CREATE LOGIN [Contoso\Mary] FROM WINDOWS;
GO