SCHEMA (Transact-SQL) CREATE
Bir şema geçerli veritabanında oluşturur.CREATE SCHEMA hareket oluşturabilir da tablolar ve görünümler yeni şema içinde ve GRANT, DENY, küme veya bu nesnelerdeki izinleri REVOKE.
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 veritabanı içinde tanımlanır adıdır.owner_name yetkilendirme
Şema sahip veritabanı düzey patron adını belirtir.Bu güvenlik sorumlusunun başka şemalar sahip ve geçerli şema, varsayılan şemayı kullanın.table_definition
Şema içindeki bir tablo oluşturan bir CREATE TABLE deyim belirtir.Bu deyim yürütme patron, geçerli veritabanında CREATE tablo iznine sahip olmanız gerekir.view_definition
Şema içinde bir görünüm oluşturan bir CREATE VIEW deyim belirtir.Bu deyim yürütme patron, geçerli veritabanında CREATE VIEW izninizin olması gerekir.grant_statement
Herhangi bir izinler atayan bir GRANT deyim belirtir yeni şema dışında güvenliği sağlanabilir.revoke_statement
Herhangi bir izinlerini iptal eder bir REVOKE deyim belirtir yeni şema dışında güvenliği sağlanabilir.deny_statement
Herhangi bir izin vermez bir DENY deyim belirtir yeni şema dışında güvenliği sağlanabilir.
Remarks
Not
CREATE SCHEMA yetkilendirme içerir, ancak bir ad belirtmezsiniz ifadeleri yalnızca geriye dönük uyumluluk için izin verilir.
CREATE SCHEMA şema, tablolar ve görünümler içerir ve GRANT, REVOKE, oluşturmak veya herhangi bir izinlerini DENY tek deyim içinde güvenliği sağlanabilir.Bu deyim, ayrı bir toplu iş olarak yürütülmelidir.SCHEMA CREATE deyim ile oluşturulan nesneleri oluşturulan şema içinde oluşturulur.
Atomik CREATE SCHEMA hareketler var.CREATE SCHEMA ifadesinin yürütülürken bir hata ortaya çıkarsa, belirtilen securables hiçbiri oluşturulur ve hiçbir izin verilir.
Securables CREATE SCHEMA oluşturulması için diğer görünümlere başvuru görünümleri dışında istediğiniz sırada listelenir.Bu durumda, başvurulan görünümünü, başvurduğu görünümü önce oluşturulmalıdır.
Bu nedenle, bir GRANT deyim bir nesne üzerinde oluşturulan nesnenin kendisi veya bir CREATE VIEW deyim, görünüm tarafından başvurulan tablolar oluşturmak için CREATE tablo ifadeleri önce bulunabilir önce izni verebilirsiniz.Ayrıca, daha sonra CREATE ŞEMADA tanımlanan tablolar için yabancı anahtarları CREATE tablo deyim s bildirebilirsiniz deyim.
Not
CREATE SCHEMA ifadelerini, DENY ve REVOKE desteklenir.DENY ve REVOKE yan tümceleri SCHEMA CREATE deyiminde görüntülendikleri sırada yürütülür.
CREATE SCHEMA yürüten anapara başka bir veritabanı sorumlusu oluşturulan şema sahibi olarak belirtebilirsiniz.Bu konunun ilerleyen bölümlerindeki "İzni" bölümünde açıklandığı gibi ek izinler gerekir.
Yeni şema aşağıdaki veritabanı düzey sorumluları birine aittir: Veritabanı, veritabanı rolü veya uygulama rolü. Bir şema içinde oluşturulan nesnelerin sahibi tarafından şema ait olan ve NULL olan principal_id in sys.Objects.Şema içerdiği nesnelerin sahipliğini, tüm veritabanı düzeyinde sorumlusu için transfer edilebilir, ancak şema sahibi, şema nesneleri DENETIM izni her zaman korur.
Uyarı
Beginning with SQL Server 2005, the behavior of schemas changed. As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. In such databases you must instead use the new catalog views. The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. For more information about catalog views, see Catalog Views (Transact-SQL).
Admin Uyarısı
Bir şema adı belirtmezseniz, CREATE SCHEMA ifadeleri, şu an geriye doğru uyumluluk için desteklenir.Bir şema içinde veritabanı gibi bir ifade gerçekten oluşturmayın, ancak, tablolar ve görünümler oluşturmak ve izinleri verin.Hiçbir şema oluşturulduğundan sorumluları CREATE SCHEMA CREATE SCHEMA, önceki bu formun yürütmek izni olması gerekmez.Bu işlevsellik gelecekteki bir sürümünden kaldırılacaktır. SQL Server.
İzinler
Veritabanı CREATE SCHEMA iznine gerek duyar.
CREATE SCHEMA deyim içinde belirtilen bir nesne oluşturmak için , kullanıcının ilgili CREATE izni olmalıdır.
Arayanın, oluşturulan şema sahibi olarak başka bir kullanıcı belirtmek için , bu kullanıcı özelliklerini Al izni olmalıdır.Bir veritabanı rolü sahibi olarak belirtilirse, arayanın aşağıdakilerden biri olmalıdır: Rol veya ALTER iznine rolüne üyeliği.
Not
Hiçbir şema oluşturulduğundan, geriye dönük olarak uyumlu sözdizimi, CREATE SCHEMA için hiçbir izin denetlenir.
Örnekler
Aşağıdaki örnek, şema oluşturur. Sprockets sahibi Annik Tablo içeren NineProngs. deyim verir. SELECT Kime Mandar ve engeller SELECT Kime Prasanna. Dikkat Sprockets ve NineProngs tek bir deyim oluşturulur.
USE AdventureWorks;
GO
CREATE SCHEMA Sprockets AUTHORIZATION Annik
CREATE TABLE NineProngs (source int, cost int, partnumber int)
GRANT SELECT TO Mandar
DENY SELECT TO Prasanna;
GO
See Also