ŞEMA (Transact-sql) oluştur

Geçerli veritabanında bir şema oluşturur. create schema hareketi de tablolar ve görünümler içinde yeni şema oluşturma ve grant, deny, set veya nesnelerdeki izinleri iptal.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

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 
    }

Bağımsız değişkenler

  • schema_name
    Şema içinde veritabanı tarafından tanımlanır addır.

  • YETKİLENDİRMEowner_name
    Şema kendi veritabanı düzeyinde asıl adı belirtir. Bu asil, diğer şema sahibi ve geçerli şema, varsayılan şema kullanamazsınız.

  • table_definition
    Tablo şema içinde oluşturduğu bir create table deyimi belirtir. Bu deyimini yürüttükten sorumlusunun geçerli veritabanında create table iznine sahip olmalısınız.

  • view_definition
    Şema içinde bir görünüm oluşturur bir create VIEW deyimi belirtir. Bu deyimini yürüttükten sorumlusunun, geçerli veritabanında create VIEW izni olması gerekir.

  • grant_statement
    Herhangi bir izinlerini verir grant deyimi belirtir yeni şema dışında güvenlik altına alınabilir.

  • revoke_statement
    Herhangi bir izinlerini iptal eder revoke deyimi belirtir yeni şema dışında güvenlik altına alınabilir.

  • deny_statement
    Herhangi bir izinlerini reddeder deny deyimi belirtir yeni şema dışında güvenlik altına alınabilir.

Açıklamalar

[!NOT]

create schema yetkilendirme içeren, ancak bir ad belirtmezseniz deyimleri yalnızca geriye dönük uyumluluk için izin verilir.

create schema şema, tablo ve görünümleri içerir ve grant, revoke, oluşturabilir veya reddetmek herhangi tek bir deyimi güvenlik altına alınabilir. Bu ifade, ayrı bir toplu iş olarak yürütülmelidir. schema create deyimi tarafından oluşturulan nesnelerin oluşturulmaktadır şema içinde oluşturulur.

Atom create schema işlemleridir. schema create deyimi yürütme sırasında bir hata ortaya çıkarsa, belirli securables hiçbiri oluşturulur ve izin verilir.

create schema tarafından oluşturulacak Securables diğer görünümlere başvuru Gösterim haricinde herhangi bir sırada listelenebilir. Bu durumda, başvurulan görünümü başvurduğu görünümü önce oluşturulmalıdır.

Bu nedenle, grant deyimi bir nesne nesne oluşturulur veya create VIEW deyimi önce görünüm tarafından başvurulan tablolar oluşturma create table deyimleri bulunabilir önce izni verebilirsiniz. Ayrıca, create table deyimleri yabancı anahtarları daha sonra schema create deyiminde tanımlanan tabloları bildirebilirsiniz.

[!NOT]

Reddet ve revoke create schema deyimleri içinde desteklenir. Reddet ve revoke yan tümceleri schema create deyiminde görüntülendikleri sırada yürütülür.

create schema yürütür anapara, başka bir veritabanı anapara oluşturulan şema sahibi olarak belirtebilirsiniz. Bu "İzinler" açıklandığı ek izinler gerektirir Bu konuda daha sonra açıklanan bölümü.

Bir aşağıdaki veritabanı düzeyinde sorumluları tarafından sahip olunan yeni şema: veritabanı kullanıcı, veritabanı rolü veya uygulama rolü. Bir şema içinde oluşturulan nesneler şema sahibi tarafından ait olan ve boş olan principal_id içinde sys.objects. Şema içerdiği nesnelerin sahipliğini herhangi bir veritabanı düzeyinde asıl aktarılabilir, ancak şema sahibi şema içinde nesne üzerinde DENETIM izni her zaman korur.

Dikkat notuDikkat

SQL Server 2005'ten itibaren şemaların davranışları değişmiştir. Bunun sonucunda, şemaların veritabanı kullanıcılarına denk olduğunu kabul eden kod artık doğru sonuçlar döndürmeyebilir. Eski katalog görünümleri, sysobjects dahil, aşağıdaki DLL ifadelerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: 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. Bu gibi veritabanlarında bunun yerine yeni katalog görünümlerini kullanmalısınız. Yeni katalog görünümleri, ilk olarak SQL Server 2005 içinde kullanılan prensiplerin ve şemaların ayrılmasını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için, bkz. Catalog Views (Transact-SQL) (Katalog Görünümleri (Transact-SQL)).

Nesnenin sahibi olarak asıl (kullanıcı veya grup) geçerli bir etki alanı adı belirtirseniz, bir veritabanı nesnesi oluştururken, etki asıl veritabanı şeması olarak eklenecektir. Yeni şema bu etki sorumlusu tarafından sahip olunan.

Deprecation bildirimi

Şema adı belirtmeyen create schema deyimleri geriye doğru uyumluluk için desteklenmektedir. Gibi ifadeler aslında bir şema içinde veritabanı oluşturmak değil, ama onlar tablolar ve görünümler oluşturun ve izinleri verin. Hiçbir şema oluşturulduğundan sorumluları create schema create schema önceki formu yürütme iznine gerek yoktur. Bu işlevi bir sonraki sürümünden kaldırılacak SQL Server.

İzinler

Veritabanı create schema izni gerektirir.

schema create deyimi içinde belirtilen nesne oluşturmak için kullanıcının ilgili oluşturma izniniz olmalıdır.

Oluşturulan şema sahibi olarak başka bir kullanıcı belirtmek için arayan bu kullanıcıya özelliklerini Al izni olmalıdır. Veritabanı rolü sahibi olarak belirtilirse, arayan aşağıdakilerden biri olmalıdır: üyeliği rol veya role alter izni.

[!NOT]

Hiçbir şema oluşturulduğundan geriye dönük olarak uyumlu sözdizimi, create schema hiçbir izinleri denetlenir.

Örnekler

Aşağıdaki örnek şema oluşturur Sprocketsait Anniktablo içeren NineProngs. Deyimi hibe SELECTiçin Mandarve inkar SELECTiçin Prasanna. Not Sprocketsve NineProngstek bir deyimde oluşturulur.

USE AdventureWorks2012;
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 

USE AdventureWorks2012;
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 

Ayrıca bkz.

Başvuru

ALTER SCHEMA (Transact-SQL)

ŞEMA (Transact-sql) bırak

grant (Transact-sql)

DENY (Transact-sql)

revoke (Transact-sql)

CREATE VIEW (Transact-SQL)

eventdata (Transact-sql)

sys.schemas (Transact-sql)

Kavramlar

Veritabanı şeması oluştur