728x90

현재 데이터베이스에 사용자를 추가합니다.

Transact-SQL 구문 표기 규칙

구문
CREATE USER user_name     [ { { FOR | FROM }
      { 
        LOGIN login_name 
        | CERTIFICATE cert_name 
        | ASYMMETRIC KEY asym_key_name
      } 
      | WITHOUT LOGIN
    ] 
    [ WITH DEFAULT_SCHEMA = schema_name ]
인수
user_name

이 데이터베이스 내에서 사용자를 식별하는 이름을 지정합니다.

LOGIN login_name

데이터베이스 사용자를 생성할 SQL Server 로그인을 지정합니다. login_name은 서버에서 유효한 로그인이어야 합니다. 이 SQL Server 로그인은 데이터베이스에 액세스할 때 생성될 데이터베이스 사용자의 이름과 ID를 얻게 됩니다.

CERTIFICATE cert_name

데이터베이스 사용자를 생성할 인증서를 지정합니다.

ASYMMETRIC KEY asym_key_name

데이터베이스 사용자를 생성할 비대칭 키를 지정합니다.

WITH DEFAULT_SCHEMA = schema_name

서버가 이 데이터베이스 사용자에 대한 개체의 이름을 확인할 때 검색할 첫 번째 스키마를 지정합니다.

WITHOUT LOGIN

사용자가 기존 로그인에 매핑되지 않도록 지정합니다.

주의

FOR LOGIN을 생략하면 새 데이터베이스 사용자가 같은 이름으로 SQL Server 로그인에 매핑됩니다.

DEFAULT_SCHEMA를 정의하지 않은 채로 두면 dbo가 데이터베이스 사용자의 기본 스키마로 사용됩니다. DEFAULT_SCHEMA는 현재 데이터베이스에 없는 스키마로 설정할 수 있으며 가리키는 스키마가 생성되기 전에 설정할 수 있습니다. Windows 그룹, 인증서 또는 비대칭 키에 매핑된 사용자를 생성할 때는 DEFAULT_SCHEMA를 지정할 수 없습니다.

WITHOUT LOGIN 절은 자체 데이터베이스 내에서만 작동할 수 있는 사용자를 만듭니다. 이 사용자는 어떤 로그인에도 매핑할 수 없습니다.

SQL Server 로그인, 인증서 또는 비대칭 키에 매핑되는 사용자의 이름에는 백슬래시 문자(\)가 포함될 수 없습니다.

guest 사용자가 이미 모든 데이터베이스 내에 있기 때문에 CREATE USER를 사용하여 guest 사용자를 만들 수 없습니다. 다음과 같이 CONNECT 권한을 부여하여 guest 사용자를 사용할 수 있습니다.

GRANT CONNECT TO GUEST;
GO

데이터베이스 사용자에 대한 정보는 sys.database_principals(Transact-SQL) 카탈로그 뷰에서 볼 수 있습니다.

사용 권한

데이터베이스에 대한 ALTER ANY USER 권한이 필요합니다.


1. 데이터베이스 사용자 만들기

다음 예에서는 암호를 사용하여 AbolrousHazem이라는 서버 로그인을 만든 다음 AdventureWorks에 해당 데이터베이스 사용자 AbolrousHazem을 만듭니다.

CREATE LOGIN AbolrousHazem 
    WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
USE AdventureWorks;
CREATE USER AbolrousHazem;
GO 

2. 기본 스키마로 데이터베이스 사용자 만들기

다음 예에서는 암호를 사용하여 WanidaBenshoof라는 서버 로그인을 만든 다음 기본 스키마인 Marketing을 사용하여 해당 데이터베이스 사용자 Wanida를 만듭니다.

CREATE LOGIN WanidaBenshoof 
    WITH PASSWORD = '8fdKJl3$nlNv3049jsKK';
USE AdventureWorks;
CREATE USER Wanida FOR LOGIN WanidaBenshoof 
    WITH DEFAULT_SCHEMA = Marketing;
GO

3. 인증서에서 데이터베이스 사용자 만들기

다음 예에서는 CarnationProduction50 인증서에서 데이터베이스 사용자 JinghaoLiu를 만듭니다.

USE AdventureWorks;
CREATE CERTIFICATE CarnationProduction50
    WITH SUBJECT = 'Carnation Production Facility Supervisors',
    EXPIRY_DATE = '11/11/2011';
GO
CREATE USER JinghaoLiu FOR CERTIFICATE CarnationProduction50;
GO 

+ Recent posts