Udostępnij za pośrednictwem


Tworzenie SCHEMATU (Transact-SQL)

Tworzy schemat w bieżącej bazie danych.Tworzenie SCHEMATU transakcji można także utworzyć tabele i widoki w ramach nowego schematu i zestaw dotacji, ODMÓW, lub ODWOŁAĆ uprawnienia do tych obiektów.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

CREATE SCHEMA schema_name_clause [ <schema_element> [ ...n ] ]

<schema_name_clause> ::=
    {
    schema_name
    | AUTHORIZATION owner_name
    | schema_name AUTHORIZATION owner_name
    }

<schema_element> ::= 
    { 
        table_definition | view_definition | grant_statement | 
        revoke_statement | deny_statement 
    }

Argumenty

  • schema_name
    Jest to nazwa identyfikująca schematu bazy danych.

  • AUTORYZACJAowner_name
    Określa nazwę bazy danych -poziom głównym właścicielem schematu.Tego podmiotu może być właścicielem innych schematów i nie może być bieżącego schematu jego domyślnego schematu.

  • table_definition
    Określa CREATE TABLE instrukcja , która tworzy tabela w schemacie.Główny zobowiązany wykonywania tej instrukcja , trzeba mieć uprawnienie Tworzenie tabeli w bieżącej bazie danych.

  • view_definition
    Określa CREATE VIEW instrukcja , która tworzy widok w schemacie.Główny zobowiązany wykonywania tej instrukcja , musisz mieć uprawnienie Tworzenie WIDOKU w bieżącej bazie danych.

  • grant_statement
    Określa dotacji instrukcja , która udziela uprawnienia dowolnego zabezpieczany z wyjątkiem nowego schematu.

  • revoke_statement
    Określa REVOKE instrukcja , że unieważnia uprawnienia na dowolnego zabezpieczany z wyjątkiem nowego schematu.

  • deny_statement
    Określa ODMÓW instrukcja , która odmawia uprawnienia dowolnego zabezpieczany z wyjątkiem nowego schematu.

Uwagi

Ostrzeżenie

Instrukcje, które zawierają utworzyć schemat autoryzacji, ale nie określono nazwy są dozwolone tylko zgodności z poprzednimi wersjami.

Tworzenie SCHEMATU można utworzyć schemat, tabele i widoki, które zawiera oraz dotacji, REVOKE, lub ODMÓWIĆ uprawnienia dowolnego zabezpieczany w jednej instrukcja.Ta instrukcja muszą być wykonane jako oddzielnych partia.Obiekty SCHEMATU tworzenie instrukcja są tworzone wewnątrz schematu, który jest tworzony.

Tworzenie SCHEMATU transakcje są niepodzielny.Wystąpieniu błędu podczas wykonywania instrukcjatworzenia SCHEMATU, Brak określonego securables są tworzone, a nie uprawnienia są przyznawane.

Securables utworzone przez utworzenie SCHEMATU można wymieniać w dowolnej kolejności, z wyjątkiem dla widoków, które odwołują się do innych widoków.W takim przypadekwidok, do którego nastąpiło odwołanie, musi zostać utworzony przed widok, który odwołuje się do niej.

W związku z tym, GRANT instrukcja może przyznać uprawnienie do obiektu, zanim sam obiekt jest tworzony lub tworzenie WIDOKU instrukcja może się pojawić przed instrukcje CREATE TABLE, tworzących tabele odwołuje się w widoku.Ponadto instrukcje CREATE TABLE można zadeklarować kluczy obcych do tabel, które są zdefiniowane w dalszej części Tworzenie SCHEMATU instrukcja.

Ostrzeżenie

ODMÓW i REVOKE są obsługiwane wewnątrz instrukcji tworzenia SCHEMATU.Klauzule ODMÓW i REVOKE zostanie wykonana w kolejności, w jakiej pojawiają się w tworzenie SCHEMATU instrukcja.

Jako właściciela schematu tworzony podmiotu, który wykonuje tworzenie SCHEMATU można określić inny podmiot bazy danych.Wymaga to dodatkowych uprawnień, zgodnie z opisem w "Uprawnienia" sekcja w dalszej części tego tematu.

Nowy schemat jest własnością jednego z następujących podmiotówpoziom bazy danych: rola aplikacjiObiekty utworzone w ramach schematu własnością właściciela schematu i mają wartość NULL principal_id w sys.objects.Własność obiektów zawartych w schemacie mogą zostać przeniesione do dowolnego głównegopoziom bazy danych — ale właściciela schematu zawsze zachowuje uprawnienie Kontrola w obiektach schematem.

PrzestrogaPrzestroga

Począwszy od programu SQL Server 2005 zachowanie schematów zostało zmienione. Z tego powodu kod źródłowy, który traktuje schematy jak odpowiedniki użytkowników baz danych, może przestać zwracać poprawne wyniki. Starych widoków wykazu, w tym sysobjects, nie należy używać w bazie danych, w której są używane następujące instrukcje DDL: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. W takich bazach danych należy używać nowych widoków wykazu. W nowych widokach wykazu uwzględniono rozdział podmiotów i schematów, który został wprowadzony w programie SQL Server 2005. Aby uzyskać więcej informacji dotyczących widoków wykazu, zobacz temat Widoki wykazu (Transact-SQL).

Podczas tworzenia obiektu bazy danych, jeśli określić główne prawidłowej domena (użytkownika lub grupy) jako właściciela obiektu domena głównej zostanie dodany do bazy danych jako schematu.Nowy schemat będzie właścicielem tej domena głównej.

Oczekiwany ogłoszenia

Instrukcje tworzenia SCHEMATU, które nie określono nazwy schematu są obecnie obsługiwane ze względu na zgodność ze starszymi wersjami.Takie deklaracje faktycznie nie utworzyć schemat wewnątrz bazy danych, ale utworzyć tabele i widoki i udzielić uprawnień.Podmioty nie ma potrzeby tworzenia SCHEMATU uprawnienia do wykonać tego wcześniejszych formularza Tworzenie SCHEMATU, ponieważ brak schematu jest tworzony.Ta funkcja zostanie usunięta z przyszłych wersji SQL Server.

Uprawnienia

Wymaga uprawnienia do tworzenia SCHEMATU bazy danych.

Aby utworzyć obiekt określony w ramach tworzenia SCHEMATU instrukcja, użytkownik musi mieć odpowiednie uprawnienie Tworzenie.

Aby określić innego użytkownika jako właściciela schematu tworzony, obiekt wywołujący musi mieć uprawnienia PERSONIFIKUJ na tego użytkownika.Jeśli rola bazy danych jest określony jako właściciel, wywołujący musi mieć jedną z następujących czynności: członkostwo w roli lub ZMIEŃ uprawnienia roli.

Ostrzeżenie

Składnię zapewniającej brak uprawnień do tworzenia SCHEMATU są sprawdzane, ponieważ tworzony jest Brak schematu.

Przykłady

Poniższy przykład tworzy schemat Sprockets posiadanych przez Annik zawierający tabela NineProngs.Udziela instrukcja SELECT do Mandar i odmawia SELECT do Prasanna.Należy zauważyć, że Sprockets i NineProngs są tworzone w pojedynczą instrukcja.

USE AdventureWorks2008R2;
GO
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