Jak dodać grupę użytkowników Active Directory jako login w SQL Server


108

Mam aplikację .net, która łączy się z serwerem SQL przy użyciu uwierzytelniania systemu Windows.

W aplikacji nie możemy używać uwierzytelniania SQL Server. Mamy tam wielu użytkowników Active Directory dla naszego projektu. Więc musimy utworzyć oddzielne konto logowania dla każdego użytkownika Active Directory w SQL Server, zamiast tworzyć osobne konto logowania dla każdego użytkownika AD. Czy istnieje sposób na użycie grupy użytkowników Active Directory w SQL Server?

Odpowiedzi:


162

W programie SQL Server Management Studio przejdź do Object Explorer > (your server) > Security > Loginsi kliknij prawym przyciskiem myszy New Login:

wprowadź opis obrazu tutaj

Następnie w wyskakującym oknie dialogowym wybierz typy obiektów, które chcesz zobaczyć ( Groupsjest domyślnie wyłączone - zaznacz to!) I wybierz lokalizację, w której chcesz szukać swoich obiektów (np. Użyj Entire Directory), a następnie znajdź swoją grupę AD .

wprowadź opis obrazu tutaj

Masz teraz zwykłe logowanie do programu SQL Server - tak samo, jak podczas tworzenia konta dla pojedynczego użytkownika usługi AD. Nadaj temu nowemu loginowi uprawnienia w bazach danych, których potrzebuje i gotowe!

Każdy członek tej grupy AD może teraz zalogować się do SQL Server i korzystać z bazy danych.


Czy jest szansa na tworzenie grup w mysql jak powyżej?
uzay95

2
Dziękuję za bardzo jasną odpowiedź z opisami zrzutów ekranu! Chciałbym, żeby wszystkie odpowiedzi były takie ...
NickG

1
@NickG: Użyłem darmowego Paint.NET, aby załadować obraz i wstawić zaokrąglone czerwone prostokąty
marc_s

7
To nie działa na mnie. Mam grupę Windows „DataAccess”, której członkiem jest „UserX”. Utworzyłem login dla grupy DataAccess i ustawiłem mapowanie logowania użytkownika tak, aby miało dostęp do bazy danych publicznych, kierownika danych i pisarza danych. Użytkownik nie może się zalogować. Jeśli dodam konkretnego użytkownika i przypiszę dokładnie takie same uprawnienia do mapowania, będzie mógł się zalogować. Gdy kliknę opcję Zabezpieczenia> Efektywne uprawnienia dla grupy, pojawi się komunikat „Nie można wykonać jako jednostka główna serwera ponieważ nazwa główna „GroupName” nie jest zamykana, tego typu podmiot nie może być podszyty lub nie masz pozwolenia. "
Triynko,

1
@Tim: nazwa użytkownika - nadal jest to użytkownik, który się loguje - po prostu nie ma uprawnień bezpośrednio - jako użytkownik - ale będąc członkiem tej grupy, która ma uprawnienia
marc_s

21

Możesz użyć T-SQL:

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

Używam tego jako części przywracania z serwera produkcyjnego na maszynę testującą:

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

Będziesz musiał użyć zlokalizowanej nazwy usług w przypadku niemieckiego lub francuskiego systemu Windows, zobacz Jak utworzyć login SQL Server dla konta usługi w systemie Windows innym niż angielski?


Jeśli musisz również ustawić login / jednostkę główną na poziomie bazy danych, oto kolejna odpowiedź, która okazała się przydatna dba.stackexchange.com/a/2578/60876
Agostino

Zastanawiam się, czy można to wykorzystać do przyznania określonej grupie active directory dostępu do odczytu do określonego schematu - w pseudo sql CREATE LOGIN ... WITH DEFAULT_SCHEMAkropki ... muszą odnosić się do określonej grupy reklam. Mamy kilka grup i chcielibyśmy dać grupie active directory accountantsdostęp do schematu „A”, ale nie do schematu „B” i „C”. Podobnie grupa „billing” powinna mieć dostęp tylko do schematu „B”. Jako frontend używamy dostępu msft.
surfmuggle

0

Przejdź do SQL Server Management Studio, przejdź do Security, przejdź do Logins i kliknij prawym przyciskiem myszy. Pojawi się menu z przyciskiem „Nowe logowanie”. Tam będziesz mógł dodawać użytkowników i / lub grupy z Active Directory do swoich „uprawnień” SQL Server. Mam nadzieję że to pomoże


0

Oto moja obserwacja. Utworzyłem login (tylko do odczytu) dla konta użytkownika grupy Windows (AD), ale działa on wyzywająco na różnych serwerach SQL. Na serwerach SQl, że użytkownicy nie widzą baz danych, dodałem sprawdzoną definicję widoku, a także dałem uprawnienia wykonywania bazy danych do głównej bazy danych, aby uniknąć błędu 229. Nie mam tego problemu, jeśli utworzę login dla użytkownika.


Można to było skomentować, a nie użyć odpowiedzi. Ale nie możesz jeszcze komentować. Więc nie haha ​​^^
finnmglas
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.