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.
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.
Przestroga |
---|
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
Zobacz także