현재 데이터베이스에 사용자를 추가합니다.
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) 카탈로그 뷰에서 볼 수 있습니다.
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
'데이터베이스 > SQL Server' 카테고리의 다른 글
MSSQL2005에서 2G이상 메모리 사용하기 (0) | 2008.04.28 |
---|---|
Oracle의 connect by 를 Mssql2005 의 CTE(WITH common_table_expression)로 변환 (0) | 2008.04.28 |
MSSQL2005에 등장한 각종 순위 함수 (0) | 2008.04.28 |
인덱스 다시 구성 및 다시 작성 mssql2005 (0) | 2008.04.28 |
[MSSQL2005] CTE(공통 테이블 식) (0) | 2008.04.28 |