SQL Server 2008 varsayılan şemasına uyulmuyor mu?


9

Test amacıyla bir SQL 2008 veritabanını başka bir sunucuya kopyaladık. Oturum açan tipik kullanıcı, belirli bir şemadaki bazı nesneleri kullanır. Diyelim ki kullanıcı foove şema bar.

foovarsayılan şeması barhem örnek hem de veritabanı düzeyindedir. Ancak, foooturum açıldığında, bartam bir ad kullanmadan şemadaki herhangi bir nesneyi bulamaz .

Varsayılan şema neden burada çalışmaz?

Yanıtlar:


13

Foo kullanıcı sysadmin hakları SQL Server'da var mı? Eğer öyleyse, herhangi bir sysadmin kullanıcısı, belirli bir veritabanı için Kullanıcı özelliklerinde ayarlanandan bağımsız olarak, varsayılan olarak şema dbo atanmış olacaktır .

Bu nedenle, varsayılan bir şemanın olması için kullanıcının sunucu rolü sysadmin yerine db_owner, db_datawriter ve benzeri veritabanı rollerine sahip olması gerekir.

Bana senin durumun olmadığını söyle.


1
Siz bir tanrısınız ve bilginize boyun eğiyorum, buna çarpana kadar şaşkındım!
Jens

1

Bu sorunun ortaya çıkabileceği başka bir senaryo (SQL 2008 R2) ...

Mevcut bir şema ile ilişkilendirmeye çalıştığım bir SQL Kimlik Doğrulaması Oturum Açma'ya bağlı bir kullanıcı vardı. Girişte sistemadım hakları yoktu , bu nedenle yukarıdaki çözüm yardımcı olmadı.

Sonunda veritabanı hala SQL 2000 uyumluluk modunda yapılandırılmış olduğunu anladım. SQL 2005'e geçmek sorunu çözdü.


Garip bir şekilde, uyumluluk
düzeyim

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.