2011-02-17 17 views
84

Windows kimlik doğrulaması kullanarak SQL Server'a bağlanan bir .net uygulamasına sahibim.Active Directory kullanıcı grubunu SQL Server'da oturum açma olarak ekleme

Uygulamada SQL Server kimlik doğrulamasını kullanamıyoruz. Projemiz için çok sayıda Aktif Dizin kullanıcımız var. Bu yüzden, her bir AD kullanıcısı için ayrı bir giriş hesabı oluşturmak yerine SQL Server'daki her bir Active Directory kullanıcısı için ayrı bir giriş hesabı oluşturmalıyız, aktif dizin kullanıcı grubunu SQL Server'da kullanmanın bir yolu var mı? Groups devre dışıdır (Açılan iletişim kutusunda Sonra enter image description here

, görmek istediğiniz nesnelerin türlerini seçmek:

SQL Server Management Studio'da

cevap

123

, Object Explorer > (your server) > Security > Logins gidip New Login sağ tıklayın varsayılan olarak - kontrol edin!) ve nesnelere bakmak istediğiniz yeri seçin (örn. Entire Directory kullanın) ve ardından AD grubunuzu bulun.

enter image description here

Sen artık normal bir SQL Server oturum açma var - Tek AD kullanıcı için bir tane oluşturun zaman tıpkı. İhtiyaç duyduğu veritabanlarındaki izinleri yeni girişe verin ve siz çıkın!

Bu AD grubunun herhangi bir üyesi artık SQL Server'a giriş yapabilir ve veritabanınızı kullanabilir.

+0

Teşekkürler Bu, İdeal. – Derek

+0

Yukarıdaki gibi mysql'de gruplar oluşturma şansı var mı? – uzay95

+0

@ uzay95: üzgünüm, hiç bir fikrim yok - MySQL'i bilmiyorum. Ancak bir çapraz platform veritabanı olduğundan, Windows gibi çok özel bir şey olduğundan şüphe ediyorum ... –

19

T-SQL kullanabilirsiniz:

use master 
GO 
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH 
DEFAULT_DATABASE=yourDbName 
GO 
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH 
DEFAULT_DATABASE=yourDbName 

Ben test makinesine üretim sunucudan geri bir parçası olarak kullanmak:

USE master 
GO 
ALTER DATABASE yourDbName SET OFFLINE WITH ROLLBACK IMMEDIATE 
RESTORE DATABASE yourDbName FROM DISK = 'd:\DropBox\backup\myDB.bak' 
ALTER DATABASE yourDbName SET ONLINE 
GO 
CREATE LOGIN [NT AUTHORITY\LOCALSERVICE] FROM WINDOWS WITH 
DEFAULT_DATABASE=yourDbName 
GO 
CREATE LOGIN [NT AUTHORITY\NETWORKSERVICE] FROM WINDOWS WITH 
DEFAULT_DATABASE=yourDbName 
GO 

Sen hizmetlerin yerelleştirilmiş adını kullanmak gerekecektir Almanca veya Fransızca Pencereler, bkz. How to create a SQL Server login for a service account on a non-English Windows?

+0

Ayrıca, veritabanı düzeyini giriş/sorumlu ayarlamak gerekiyorsa, burada yararlı http: //dba.stackexchange bulundu başka bir cevap.com/a/2578/60876 – Agostino

+0

Belli bir şemayı okuyarak belirli bir şemaya erişimi okumak için kullanılıp kullanılamayacağını merak ediyorum - pseudo sql 'LOGATE LOGIN ... DEFAULT_SCHEMA' ile noktalar ...' 'zorunda Belirli bir reklam grubuna başvurmak. Birkaç gruba sahibiz ve aktif bir muhasebe grubu oluşturmak için 'muhasebecilerin şemaya erişim' şemasına değil, şemaya veya 'C' ye değil. Aynı şekilde ´billing' grubunun sadece şemaya erişimi olmalıdır ´B´. Bir ön uç olarak msft erişimini kullanıyoruz. – surfmuggle

İlgili konular