Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server CREATE LOGIN 명령어 완벽 가이드: 로그인 계정 생성 방법

CREATE LOGIN 명령은 SQL Server에 접속하기 위한 로그인 계정(Login)을 생성할 때 사용합니다. 생성된 로그인 계정은 이후 데이터베이스 사용자(User) 계정에 매핑되므로, SQL Server에서 사용자를 만들기 전에 반드시 먼저 로그인 계정을 생성해야 한다는 점을 기억해 두세요.

참고로 로그인 계정은 서버 수준(Server-level)에서 관리되는 반면, 사용자 계정은 데이터베이스 수준(Database-level)에서 관리됩니다. CREATE LOGIN 명령을 실행하려면 해당 인스턴스에 대한 ALTER ANY LOGIN 권한 또는 securityadmin 역할이 필요합니다.

SQL Server의 로그인 계정은 크게 다음 4가지 유형으로 나눌 수 있습니다.

  1. Windows 인증(Windows Authentication) 방식을 사용하는 로그인 계정
  2. SQL Server 인증(SQL Server Authentication) 방식을 사용하는 로그인 계정
  3. 인증서(Certificate)로부터 생성되는 로그인 계정
  4. 비대칭 키(Asymmetric Key)로부터 생성되는 로그인 계정

CREATE LOGIN 기본 문법

1. Windows 인증 방식으로 로그인 계정 생성

CREATE LOGIN [도메인\로그인이름]
FROM WINDOWS
[ WITH DEFAULT_DATABASE = 데이터베이스이름
| DEFAULT_LANGUAGE = 언어이름 ];

2. SQL Server 인증 방식으로 로그인 계정 생성

CREATE LOGIN 로그인이름
WITH PASSWORD = { '비밀번호' | 해시된비밀번호 HASHED } [ MUST_CHANGE ]
[ , SID = 고유식별자값
 | DEFAULT_DATABASE = 데이터베이스이름
 | DEFAULT_LANGUAGE = 언어이름
 | CHECK_EXPIRATION = { ON | OFF }
 | CHECK_POLICY = { ON | OFF }
 | CREDENTIAL = 자격증명이름 ];

3. 인증서(Certificate)로 로그인 계정 생성

CREATE LOGIN 로그인이름
FROM CERTIFICATE 인증서이름;

4. 비대칭 키(Asymmetric Key)로 로그인 계정 생성

CREATE LOGIN 로그인이름
FROM ASYMMETRIC KEY 비대칭키이름;

주요 매개변수 설명

  • 도메인: Windows 도메인 계정의 이름입니다.
  • 로그인이름: 생성할 로그인 계정의 이름입니다.
  • 데이터베이스이름: 해당 로그인 계정의 기본 데이터베이스(DEFAULT DATABASE)입니다.
  • 언어이름: 로그인 계정에 적용할 기본 언어입니다.
  • CHECK_EXPIRATION: 암호 만료 정책 적용 여부를 결정하며, 기본값은 OFF입니다. MUST_CHANGE 옵션을 사용하려면 반드시 CHECK_EXPIRATION = ON으로 설정해야 합니다.
  • 비밀번호: 로그인 계정에 사용할 비밀번호입니다.
  • 해시된비밀번호: 로그인 비밀번호의 해시(hash) 값입니다.
  • MUST_CHANGE: 첫 로그인 시 비밀번호를 반드시 변경하도록 강제하는 옵션입니다.
  • 고유식별자값(SID): 로그인 계정의 GUID(Globally Unique Identifier)입니다. 생략하면 SQL Server가 자동으로 지정합니다.
  • 자격증명이름: 로그인 계정에 연결할 자격 증명(Credential)의 이름입니다.
  • 인증서이름: 로그인 계정에 사용할 인증서의 이름입니다.
  • 비대칭키이름: 로그인 계정에 사용할 비대칭 키의 이름입니다.

참고: 이미 생성된 로그인 계정을 수정하려면 ALTER LOGIN, 삭제하려면 DROP LOGIN 명령을 사용합니다.

CREATE LOGIN 실전 예제

예제 1: Windows 인증 방식

CREATE LOGIN [TEST_DOMAIN\quantrimang]
FROM WINDOWS;

위 명령은 Windows 인증 방식을 사용하는 새 로그인 계정 [TEST_DOMAIN\quantrimang]을 생성합니다.

예제 2: SQL Server 인증 방식

CREATE LOGIN quantrimang
WITH PASSWORD = 'mk123';

위 명령은 SQL Server 인증 방식을 사용하는 로그인 계정 quantrimang을 생성하며, 비밀번호는 mk123으로 설정합니다.

만약 첫 로그인 시 비밀번호를 변경하도록 강제하고 싶다면 아래와 같이 작성합니다.

CREATE LOGIN quantrimang
WITH PASSWORD = 'mk123' MUST_CHANGE,
CHECK_EXPIRATION = ON;

주의: MUST_CHANGE 옵션은 CHECK_EXPIRATION이 OFF 상태일 때는 사용할 수 없습니다. CHECK_EXPIRATION을 OFF로 설정한 채 MUST_CHANGE를 사용하면 명령 실행에 실패합니다.

예제 3: 인증서(Certificate) 활용

CREATE LOGIN quantrimang
FROM CERTIFICATE chungnhan1;

위 예제는 chungnhan1 인증서를 사용하는 새 로그인 계정 quantrimang을 생성합니다.

예제 4: 비대칭 키(Asymmetric Key) 활용

CREATE LOGIN quantrimang
FROM ASYMMETRIC KEY khoa_batdoixung1;

위 명령은 비대칭 키 khoa_batdoixung1을 사용하는 새 로그인 계정 quantrimang을 생성합니다.