데이터베이스 스키마 만들기Create a Database Schema

이 항목에서는 SQL Server 2017SQL Server 2017 또는 SQL Server Management StudioSQL Server Management Studio 을 사용하여 Transact-SQLTransact-SQL에서 스키마를 만드는 방법에 대해 설명합니다.This topic describes how to create a schema in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

항목 내용In This Topic

시작하기 전 주의 사항 Before You Begin

제한 사항 Limitations and Restrictions

  • 새 스키마는 데이터베이스 수준 보안 주체인 데이터베이스 사용자, 데이터베이스 역할 또는 응용 프로그램 역할 중 하나가 소유합니다.The new schema is owned by one of the following database-level principals: database user, database role, or application role. 스키마 내에서 만든 개체는 스키마 소유자가 소유하며 sys.objectsprincipal_id가 NULL입니다.Objects created within a schema are owned by the owner of the schema, and have a NULL principal_id in sys.objects. 스키마 포함 개체의 소유권을 모든 데이터베이스 수준 보안 주체에게 이전할 수 있지만 스키마 소유자는 항상 스키마 내의 개체에 대한 CONTROL 권한을 갖고 있어야 합니다.Ownership of schema-contained objects can be transferred to any database-level principal, but the schema owner always retains CONTROL permission on objects within the schema.

  • 데이터베이스 개체를 만들 때 개체 소유자로 유효한 도메인 보안 주체(사용자 또는 그룹)를 지정하면 도메인 보안 주체는 데이터베이스에 스키마로 추가됩니다.When creating a database object, if you specify a valid domain principal (user or group) as the object owner, the domain principal is added to the database as a schema. 새 스키마는 도메인 보안 주체가 소유하게 됩니다.The new schema is owned by that domain principal.

보안 Security

사용 권한 Permissions

  • 데이터베이스에 대한 CREATE SCHEMA 권한이 필요합니다.Requires CREATE SCHEMA permission on the database.

  • 다른 사용자를 생성되는 스키마의 소유자로 지정하려면 호출자에게 해당 사용자에 대한 IMPERSONATE 권한이 있어야 합니다.To specify another user as the owner of the schema being created, the caller must have IMPERSONATE permission on that user. 데이터베이스 역할을 소유자로 지정하는 경우 호출자에게 해당 역할의 멤버 자격이나 해당 역할에 대한 ALTER 권한이 있어야 합니다.If a database role is specified as the owner, the caller must meet one of the following criteria: membership in the role or ALTER permission on the role.

SQL Server Management Studio 사용 Using SQL Server Management Studio

스키마를 만들려면To create a schema
  1. 개체 탐색기에서 데이터베이스 폴더를 확장합니다.In Object Explorer, expand the Databases folder.

  2. 새 데이터베이스 스키마를 만들 데이터베이스를 확장합니다.Expand the database in which to create the new database schema.

  3. 보안 폴더를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 스키마를 선택합니다.Right-click the Security folder, point to New, and select Schema.

  4. 스키마 - 신규 대화 상자의 일반 페이지에서 스키마 이름 상자에 새 스키마의 이름을 입력합니다.In the Schema - New dialog box, on the General page, enter a name for the new schema in the Schema name box.

  5. 스키마 소유자 상자에 해당 스키마를 소유할 데이터베이스 사용자 또는 역할의 이름을 입력합니다.In the Schema owner box, enter the name of a database user or role to own the schema. 또는 검색 을 클릭하여 역할 및 사용자 검색 대화 상자를 엽니다.Alternately, click Search to open the Search Roles and Users dialog box.

  6. 확인을 클릭합니다.Click OK.

추가 옵션Additional Options

스키마 – 신규 대화 상자는 또한 두 개의 추가 페이지인 권한확장 속성을 제공합니다.The Schema– New dialog box also offers options on two additional pages: Permissions and Extended Properties.

  • 사용 권한 페이지에는 사용 가능한 모든 보안 개체와 이러한 보안 개체에서 로그인에 부여할 수 있는 권한이 나열됩니다.The Permissions page lists all possible securables and the permissions on those securables that can be granted to the login.

  • 확장 속성 페이지에서는 데이터베이스 사용자에 사용자 지정 속성을 추가할 수 있습니다.The Extended properties page allows you to add custom properties to database users.

Transact-SQL 사용 Using Transact-SQL

스키마를 만들려면To create a schema

  1. 개체 탐색기에서 데이터베이스 엔진Database Engine인스턴스에 연결합니다.In Object Explorer, connect to an instance of 데이터베이스 엔진Database Engine.

  2. 표준 도구 모음에서 새 쿼리를 클릭합니다.On the Standard bar, click New Query.

  3. 다음 예제에서는 Chains라는 스키마를 만든 다음 Sizes라는 테이블을 만듭니다.The following example creates a schema named Chains, and then creates a table named Sizes.

    CREATE SCHEMA Chains;
    GO
    CREATE TABLE Chains.Sizes (ChainID int, width dec(10,2));
    
  4. 단일 문에서 추가 옵션을 수행할 수 있습니다.Additional options can be performed in a single statement. 다음 예제에서는 Annik가 소유하고 NineProngs 테이블을 포함하는 Sprockets 스키마를 만듭니다.The following example creates the schema Sprockets owned by Annik that contains table NineProngs. 이 문에서는 Mandar에게 SELECT 권한을 부여하고 Prasanna에게는 SELECT 권한을 거부합니다.The statement grants SELECT to Mandar and denies SELECT to Prasanna.

    CREATE SCHEMA Sprockets AUTHORIZATION Annik  
        CREATE TABLE NineProngs (source int, cost int, partnumber int)  
        GRANT SELECT ON SCHEMA::Sprockets TO Mandar  
        DENY SELECT ON SCHEMA::Sprockets TO Prasanna;  
    GO  
    
  5. 이 데이터베이스의 스키마를 보려면 다음 문을 실행합니다.Execute the following statement, to view the schemas in this database:

    SELECT * FROM sys.schemas;
    

    자세한 내용은 CREATE SCHEMA(Transact-SQL)를 참조하세요.For more information, see CREATE SCHEMA (Transact-SQL).