Kural olarak, nesneyi bu şemada oluşturmak istiyorsanız, şemayı açıkça belirtmelisiniz dbo
.
Olduğunuz gibi db_owner
, varsayılan şemanızdır dbo
, bu nedenle nesne oluştururken dbo şeması belirtmediğinizde sorun olmaz. Ancak diğer (Windows) kullanıcılar için aynı değildir.
Kullanıcılarınız Windows group
varsayılan şeması olmayan üyelerdir . Bu durumda, kullanıcı herhangi bir nesne oluşturduğunda karşılık gelen kullanıcı ve şema oluşturulur; burada belgelenmiştir: CREATE SCHEMA (Transact-SQL)
Örtük Şema ve Kullanıcı Oluşturma
Bazı durumlarda kullanıcı, veritabanı kullanıcı hesabına (veritabanındaki veritabanı sorumlusu) sahip olmadan veritabanını kullanabilir. Bu, aşağıdaki durumlarda olabilir:
Bir oturum açma işleminin CONTROL SERVER ayrıcalıkları vardır.
Bir Windows kullanıcısının tek bir veritabanı kullanıcı hesabı (veritabanındaki bir veritabanı yöneticisi) yoktur, ancak veritabanına bir veritabanı kullanıcı hesabı (Windows grubu için bir veritabanı yöneticisi) olan bir Windows grubunun üyesi olarak erişir.
Veritabanı kullanıcı hesabı olmayan bir kullanıcı varolan bir şemayı belirtmeden bir nesne oluşturduğunda, o kullanıcının veritabanında otomatik olarak bir veritabanı asıl ve varsayılan şeması oluşturulur. Oluşturulan veritabanı asıl ve şeması, kullanıcının SQL Server'a (SQL Server kimlik doğrulama oturum açma adı veya Windows kullanıcı adı) bağlanırken kullandığı adla aynı ada sahip olacaktır.
Bu davranış, Windows gruplarını temel alan kullanıcıların nesne oluşturmalarına ve kendi nesnelerine sahip olmalarına izin vermek için gereklidir. Ancak, istemeden şema ve kullanıcıların oluşturulmasına neden olabilir. Örtülü olarak kullanıcı ve şema oluşturmaktan kaçınmak için, mümkünse açıkça veritabanı ilkeleri oluşturun ve varsayılan bir şema atayın. Veya iki veya üç parçalı nesne adları kullanarak bir veritabanında nesne oluştururken var olan bir şemayı açıkça belirtin.
Sorunu çözmek için , tüm Windows kullanıcıları için dbo
şema atayın default schema
veya nesneleri oluştururken şemayı açık bir şekilde yazın. Her zaman.