Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Yönetilen Örneği
Kapsanan veritabanları, SQL Server Veritabanı Altyapısı yöneticileri tarafından anlaşılması ve azaltılması gereken bazı benzersiz tehditlere sahiptir. Tehditlerin çoğu, kimlik doğrulama sınırını Veritabanı Altyapısı düzeyinden veritabanı düzeyine taşıyan parola kimlik doğrulama işlemiyle kullanıcısıyla ilgilidir.
Kullanıcılarla İlgili Tehditler
db_owner üyeleri ve db_accessadmin sabit veritabanı rolleri gibi ALTER ANY USER iznine sahip olan bir veritabanındaki kullanıcılar, SQL Server yöneticisinin bilgisi veya izni olmadan veritabanına erişim verebilir. Kullanıcılara kapsanan bir veritabanına erişim izni vermek, tüm SQL Server örneğine karşı olası saldırı yüzeyi alanını artırır. Yöneticiler bu erişim denetimi yetkilendirmesini anlamalı ve kapsanan veritabanındaki kullanıcılara ALTER ANY USER iznini verirken çok dikkatli olmalıdır. Tüm veritabanı sahipleri ALTER ANY USER iznine sahiptir. SQL Server yöneticileri, kapsanan bir veritabanındaki kullanıcıları düzenli aralıklarla denetlemelidir.
Konuk Hesabını Kullanarak Diğer Veritabanlarına Erişme
ALTER ANY USER iznine sahip veritabanı sahipleri ve veritabanı kullanıcıları, bağımsız veritabanı kullanıcıları oluşturabilir. SQL Server örneğindeki bir kapsanan veritabanına bağlandıktan sonra, diğer veritabanları konuk hesabını etkinleştirmişse, kapsanan veritabanı kullanıcısı Veritabanı Altyapısı'nda diğer veritabanlarına erişebilir.
Başka Bir Veritabanında Yinelenen Kullanıcı Oluşturma
Bazı uygulamalar, kullanıcının birden fazla veritabanına erişmesini gerektirebilir. Bu, her veritabanında aynı kapsanan veritabanı kullanıcıları oluşturularak yapılabilir. İkinci kullanıcıyı parolayla oluştururken SID seçeneğini kullanın. Aşağıdaki örnek, iki veritabanında iki özdeş kullanıcı oluşturur.
USE DB1;
GO
CREATE USER Carlo WITH PASSWORD = '<strong password>';
-- Return the SID of the user
SELECT SID FROM sys.database_principals WHERE name = 'Carlo';
-- Change to the second database
USE DB2;
GO
CREATE USER Carlo WITH PASSWORD = '<same password>', SID = <SID from DB1>;
GO
Veritabanları arası sorgu yürütmek için, çağıran veritabanında GÜVENILIRLIK seçeneğini ayarlamanız gerekir. Örneğin, yukarıda tanımlanan kullanıcı (Carlo) DB1'deyse, SELECT * FROM db2.dbo.Table1; yürütmek için db1 veritabanı için TRUSTWORTHY ayarı açık olmalıdır.
TRUSTWORTHY ayarını etkinleştirmek için aşağıdaki kodu çalıştırın.
ALTER DATABASE DB1 SET TRUSTWORTHY ON;
Oturum Açmayı Yineleyen Bir Kullanıcı Oluşturma
Sql Server oturum açma bilgileriyle aynı adı kullanarak parola içeren bir veritabanı kullanıcısı oluşturulursa ve SQL Server oturum açma bilgileri, ilk katalog olarak kapsanan veritabanını belirterek bağlanırsa, SQL Server oturum açma bilgileri bağlanamaz. Bağlantı, SQL Server oturum açma bilgilerini temel alan bir kullanıcı olarak değil, kapsanan veritabanında parola sorumlusu olan bağımsız veritabanı kullanıcısı olarak değerlendirilir. Bu, SQL Server oturum açma işlemi için kasıtlı veya yanlışlıkla hizmet reddine neden olabilir.
En iyi uygulama olarak, sysadmin sabit sunucu rolünün üyeleri her zaman ilk katalog seçeneğini kullanmadan bağlanmayı düşünmelidir. Bu, oturum açma işlemini ana veritabanına bağlar ve veritabanı sahibinin oturum açma girişimini kötüye kullanma girişimlerini önler. Ardından yönetici, USE<veritabanı> deyimini kullanarak kapsanan veritabanına geçiş yapabilir. Ayrıca, oturum açma işleminin varsayılan veritabanını masterveritabanına tamamladıktan sonra oturum açmayı kapsanan veritabanına aktaran kapsanan veritabanına ayarlayabilirsiniz.
En iyi yöntem olarak, SQL Server oturum açma bilgileriyle aynı ada sahip parolalara sahip bağımsız veritabanı kullanıcıları oluşturmayın.
Yinelenen oturum açma mevcutsa, ilk kataloğu belirtmeden ana veritabanına bağlanın ve ardından USE komutunu yürüterek içeren veritabanına geçin.
Kapsanan veritabanları mevcut olduğunda, kapsanan olmayan veritabanlarının kullanıcıları, başlangıç katalog kullanmadan veya başlangıç katalog olarak bağımsız bir veritabanının adını belirterek Veritabanı Altyapısı'na bağlanmalıdır. Bu, Veritabanı Altyapısı yöneticileri tarafından daha az doğrudan denetim altında olan kapsanan veritabanına bağlanmayı önler.
Veritabanının Kapsama Durumunu Değiştirerek Erişimi Artırma
tr-TR: Veritabanının kapsama ayarını değiştirebilecek oturum açma bilgileri arasında, ALTER ANY DATABASE iznine sahip olanlar, örneğin dbcreator sabit sunucu rolü üyeleri, ve bağımsız bir veritabanındaki CONTROL DATABASE iznine sahip kullanıcılar, örneğin db_owner sabit veritabanı rolü üyeleri bulunur. Veritabanının kapsama ayarı NONE'dan PARTIAL veya FULLolarak değiştirilirse, parolalarla kapsama alınmış veritabanı kullanıcıları oluşturularak kullanıcı erişimi sağlanabilir. Bu, SQL Server yöneticilerinin bilgisi veya onayı olmadan erişim sağlayabilir. Veritabanlarının kapsanmasını önlemek için Veritabanı Altyapısıveritabanı kimlik doğrulaması seçeneğini 0 olarak ayarlayın. Seçili kapsanan veritabanlarında parolaları olan bağımsız veritabanı kullanıcılarının bağlantılarını önlemek için, parolaları olan bağımsız veritabanı kullanıcılarının oturum açma girişimlerini iptal etmek için oturum açma tetikleyicilerini kullanın.
Kapsanan Veritabanı Ekleme
Bir yönetici, kapsanan bir veritabanı ekleyerek istenmeyen kullanıcılara Veritabanı Altyapısı örneğine erişim verebilir. Bu riskle ilgilenen bir yönetici, veritabanını RESTRICTED_USER modunda çevrimiçi yapabilir ve bu da parolaları olan bağımsız veritabanı kullanıcıları için kimlik doğrulamasını engeller. Veritabanı Altyapısı'na yalnızca oturum açma bilgileri aracılığıyla yetkilendirilmiş sorumlular erişebilir.
Kullanıcılar, oluşturuldukları sırada geçerli olan parola gereksinimleri kullanılarak oluşturulur ve veritabanı eklendiğinde parolalar yeniden denetlenmiyor. Bir yönetici, zayıf parolalara izin veren bir içerik veritabanını daha katı parola politikasına sahip bir sisteme bağlayarak, bağlanan Veritabanı Motoru üzerindeki geçerli parola politikasını karşılamayan parolalara izin verebilir. Yöneticiler, ekli veritabanı için tüm parolaların sıfırlanması zorunlu tutularak zayıf parolaların korunmasını önleyebilir.
Parola İlkeleri
Veritabanındaki parolaların güçlü parolalar olması gerekebilir, ancak sağlam parola ilkeleriyle korunamaz. Windows'un kullanabileceği daha kapsamlı parola ilkelerinden yararlanmak için mümkün olduğunda Windows Kimlik Doğrulaması'nı kullanın.
Kerberos Kimlik Doğrulaması
Parolaları olan bağımsız veritabanı kullanıcıları Kerberos Kimlik Doğrulaması kullanamaz. Mümkün olduğunda, Kerberos gibi Windows özelliklerinden yararlanmak için Windows Kimlik Doğrulamasını kullanın.
Çevrimdışı Sözlük Saldırısı
Parolaları olan kapsanan veritabanı kullanıcıları için parola karmaları, kapsanan veritabanında depolanır. Veritabanı dosyalarına erişimi olan herkes, denetimsiz bir sistemde parolaları olan kapsanan veritabanı kullanıcılarına karşı sözlük saldırısı gerçekleştirebilir. Bu tehdidi azaltmak için, veritabanı dosyalarına erişimi kısıtlayın veya Yalnızca Windows Kimlik Doğrulaması'nı kullanarak kapsanan veritabanlarına bağlantılara izin ver.
Kapsanan Veritabanından Kaçış
Bir veritabanı kısmen kapsanmışsa, SQL Server yöneticilerinin kapsanan veritabanlarındaki kullanıcıların ve modüllerin özelliklerini düzenli aralıklarla denetlemesi gerekir.
AUTO_CLOSE Aracılığıyla Hizmet Reddi
Kapsanan veritabanlarını otomatik olarak kapatacak şekilde yapılandırmayın. Kapalıysa, bir kullanıcının kimliğini doğrulamak için veritabanını açmak ek kaynaklar kullanır ve hizmet reddi saldırısına katkıda bulunabilir.
Ayrıca Bkz.
Kapsanan Veritabanları
Kısmen Kapsanan Bir Veritabanına Geçiş