Aşağıdaki komut dosyasını kullanarak bir Windows Grubunu SQL 2008 R2 örneğiyle eşleyen bir sunucu oturum açma adı ve veritabanı kullanıcısı ekledik ve anonimlik için adları değiştirdik:
USE master
go
CREATE LOGIN [DOMAIN\AppUsers] FROM WINDOWS
WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
go
USE AppDb
go
CREATE USER [DOMAIN\AppUsers] FOR LOGIN
[DOMAIN\AppUsers]
go
EXEC sp_addrolemember N'db_owner', N'DOMAIN\AppUsers'
go
DOMAIN \ User1 hesabı uygulamada oturum açtığında, User1, DOMAIN \ AppUsers üyesi olduğu için dbo şemasındaki User1 tablolarını iyi sorgular, ancak bu uygulama kullanıcının tablolar oluşturmasına da izin verir. Şema belirtmeden bu tabloları oluştururken SQL Server aşağıdakileri yapar:
- AppDb'de, örnek için SSMS \ Security \ Logins'de listelenmeyen bir 'DOMAIN \ User1' girişi kullanan bir 'DOMAIN \ User1' kullanıcısı oluşturur.
- AppDb'de 'DOMAIN \ User1' şeması oluşturur.
- Bu tabloları yeni 'DOMAIN \ User1' şemasında kullanarak oluşturur.
Bu sonuçlardan tamamen şaşırdım. Sorularım:
- Tablo oluşturma ek nesneleri oluşturmak yerine başarısız olmasını beklenir. Birisi beni Books Online'ın bunu açıklayan kısmına yönlendirebilir mi?
- Sunucu neden 'DOMAIN \ AppUsers' şeması oluşturmuyor ve şema ekleyecekse yeni tabloları bu şemaya eklemiyor?
- Ayrıca, veritabanı SSMS \ Security \ Logins'de gösterilmeyen bir girişi nasıl kullanır?
- SSMS \ Veritabanları \ AppDb \ Security \ Users'daki 'DOMAIN \ User1' kullanıcısına bakıldığında, kullanıcı simgesinin üzerinde küçük bir kırmızı ok bulunur. Bu ne anlama geliyor?
Basitlik için SQL Kimlik Doğrulamasını tercih eden bir kuruluşta Windows Kimlik Doğrulaması'nı kullanmaya başlıyoruz, bu yüzden sorumun farkları bilmemesinden kaynaklandığına eminim. Bu kod, Windows Kimlik Doğrulaması kullanmayı düşündüğümüzden çok önce yazılmıştı, bu yüzden veritabanı sahibi dışında herhangi biri olarak Windows Kimlik Doğrulaması'nı kullanarak oturum açtığınızda yeni şemalar oluşturma anlayışımızı geliştirmemiz gerektiğinden eminim.
Söyleyemiyorsanız, SQL Kimlik Doğrulaması üzerinden Windows Kimlik Doğrulaması kullanımı için iten tek kişiyim. Bunu sağlam bir şekilde anlayamazsak, SQL Kimlik Doğrulaması'na geri döneceğiz.