Kullanıcı şeması ayırma

Içinde şemalar davranışını değiştirdi. SQL Server 2005. Veritabanı kullanıcılarını için şemalar artık eşdeğerdir; her şema şimdi bağımsız olarak oluşturan veritabanı kullanıcısı varsa farklı bir ad.Diğer bir deyişle, bir şema yalnızca bir nesne kapsayıcı.Herhangi bir kullanıcı tarafından BIR şema ait ve kendi sahipliği transfer edilebilir olur.

Yeni davranışı

Sahip olma renk ayrımı şemalar gelen önemli etkileri vardır:

  • Transfer edilebilir şemalarını ve şema kapsamlı securables sahipliğini var.Daha fazla bilgi için bkz:ALTER yetkilendirme (Transact-SQL).

  • Nesneler arasında şemalar taşınabilirler.Daha fazla bilgi için bkz:ALTER SCHEMA (Transact-SQL).

  • Tek bir şema, birden çok veritabanı kullanıcılara ait olan nesneleri içerebilir.

  • Birden çok veritabanı kullanıcılarını tek bir varsayılan şema paylaşabilirsiniz.

  • Şemalarını ve şema bulunan securables izinlerini daha büyük duyarlık, daha önceki sürümleri ile yönetilebilir.Daha fazla bilgi için bkz: Şema IZINLERI (Transact-SQL) ve Nesne IZINLERI (Transact-SQL).

  • Bir şema tarafından herhangi bir veritabanı sorumlusunun sahip olabileceği.Bu, roller ve uygulama rolleri içerir.

  • Bir veritabanı kullanıcısı, karşılık gelen bir şemada nesne bırakmadan kesilmesine.

  • Önceki sürümleri için yazılmış kod. SQL Server kodu, kullanıcılara veritabanı şemaları eşdeğerdir varsayar, hatalı sonuçlar döndürebilir.

  • katalog görünümleri önceki sürümleri için tasarlanmıştır. SQL Server hatalı sonuçlar döndürebilir. Bu, sysobjects içerir.

Yeni katalog görünümleri

Ile başlayan SQL Server 2005, şemalar yansıtılan açık varlıklardır meta veriler; ve sonuç olarak, şemalar, yalnızca bir sahip olabilir ancak tek bir kullanıcı çok sayıda şemalar sahip olabilir. Bu karmaşık bir ilişki içinde yansıtılmaz SQL Server 2000 sistem tabloları, böylece SQL Server 2005 yeni meta veriler doğru olarak yansıtacak yeni katalog görünümleri kullanılmaya başlandı.

Aşağıdaki eşleştirmesini gösterildiği tablo SQL Server 2000 sistem tabloları ve eşdeğeri SQL Server 2005 ve daha sonra katalog görünümleri.

SQL Server 2000 sistem tablo

SQL Server 2005'i ve daha sonra katalog görüntüleyin.

sysusers

sys.database_principals

sys.schemas

syslogins

sys.server_principals

SQL Server 2005 250'den fazla yeni katalog görünümleri kullanılmaya başlandı.Yeni katalog görünümleri meta verilerine erişmek için kullanacağınız öneririz.Daha fazla bilgi için bkz:katalog görünümleri (Transact-SQL).

Yeni DDL) deyimleri eski doğru olarak uygulanmıyor karmaşıklık sistem meta veriler için üretebilir katalog görünümleri sysobjects gibi.Bu örnekte, sysobjects tarafından döndürülen kullanıcı KIMLIĞI ve şema adı eşitlenmez ve kullanıcı olarak şema arasındaki farkın yansıtır SQL Server 2005.

use tempdb
go
create login u1 with password = 'Mdfjd$sakj943857l7sdfh##30'
create user u1 with default_schema = u1
go
grant create table to u1 
go
create schema sch1
go
create schema u1 authorization u1
go
execute as user = 'u1'
go
create table t1(c1 int)
go
revert
go
select user_name(uid) , * from sysobjects where name = 't1'
go

Uyarı

Yeni katalog görünümlerden herhangi bir veritabanı, DDL aþaðýdaki birini bugüne kadar kullanılan kullanmalısınız: OLUŞTUR/DEĞİŞTİR/BIRAKMA ŞEMA OLUŞTUR/DEĞİŞTİR/BIRAKMA KULLANICI OLUŞTUR/DEĞİŞTİR/BIRAKMA ROLÜNÜ; OLUŞTUR/DEĞİŞTİR/BIRAKMA approle; alter YETKİLENDİRME.

Varsayılan şemalar

Tam olarak nitelenmiş adlar, olmayan securables adlarını çözmek için SQL Server 2000 ad çözümlemesi, arama veritabanı kullanıcıya ait şema ve dbo tarafından sahip olunan şema denetlemek için kullanır.

Ile başlayan SQL Server 2005, her kullanıcı bir varsayılan şema içerir. Varsayılan şemayı ayarlayabilir ve USER CREATE veya ALTER USER DEFAULT_SCHEMA seçeneği kullanılarak değiştirildi.DEFAULT_SCHEMA bırakılırsa tanımlanmamış, veritabanı kullanıcısı olarak, varsayılan şemayı dbo olacaktır.