CREATE LOGIN 명령은 SQL Server에 접속하기 위한 로그인 계정(Login)을 생성할 때 사용합니다. 생성된 로그인 계정은 이후 데이터베이스 사용자(User) 계정에 매핑되므로, SQL Server에서 사용자를 만들기 전에 반드시 먼저 로그인 계정을 생성해야 한다는 점을 기억해 두세요.
참고로 로그인 계정은 서버 수준(Server-level)에서 관리되는 반면, 사용자 계정은 데이터베이스 수준(Database-level)에서 관리됩니다. CREATE LOGIN 명령을 실행하려면 해당 인스턴스에 대한 ALTER ANY LOGIN 권한 또는 securityadmin 역할이 필요합니다.
SQL Server의 로그인 계정은 크게 다음 4가지 유형으로 나눌 수 있습니다.
- Windows 인증(Windows Authentication) 방식을 사용하는 로그인 계정
- SQL Server 인증(SQL Server Authentication) 방식을 사용하는 로그인 계정
- 인증서(Certificate)로부터 생성되는 로그인 계정
- 비대칭 키(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을 생성합니다.