Як додати групу користувачів Active Directory як логін в SQL Server


108

У мене є програма .net, яка підключається до SQL Server за допомогою аутентифікації Windows.

Ми не можемо використовувати автентифікацію SQL Server у програмі. У нас є багато користувачів Active Directory для нашого проекту. Отже, ми повинні створити окремий обліковий запис для входу для кожного користувача Active Directory на SQL Server, а не створювати окремий обліковий запис для кожного користувача AD, чи є спосіб використовувати активну групу користувачів каталогів у SQL Server?

Відповіді:


162

У студії управління SQL Server перейдіть до Object Explorer > (your server) > Security > Loginsта клацніть правою кнопкою миші New Login:

введіть тут опис зображення

Потім у діалоговому вікні, що з'являється, виберіть типи об’єктів, які ви хочете бачити ( Groupsза замовчуванням вимкнено - перевірте це!) Та виберіть місце, де ви хочете шукати ваші об’єкти (наприклад, використання Entire Directory), а потім знайдіть свою групу AD .

введіть тут опис зображення

Тепер у вас є звичайний вхід на SQL Server - як і під час створення одного користувача AD. Дайте цьому новому входу права доступу до потрібних йому баз даних, і ви перейдете!

Тепер будь-який учасник групи AD може увійти до SQL Server та використовувати вашу базу даних.


Чи є шанс створити групи в mysql, як вище?
uzay95

2
Дякую за дуже чітку відповідь із поміченими знімками екрана! Я хочу, щоб усі відповіді були такими ...
NickG

1
@NickG: Я використовував безкоштовний Paint.NET для завантаження зображення та вставки округлих червоних прямокутників
marc_s

7
Це не працює для мене. У мене є група Windows "DataAccess", учасником якої є "UserX". Я створив логін для групи DataAccess і встановив відображення користувачів входу, щоб мати доступ до публічних даних, читачів даних та авторів даних. Користувач не може увійти. Якщо я спеціально додаю користувача та призначу такий самий дозвіл відображення, він може увійти. Коли я натискаю Securables> Effective Permissions для групи, він говорить: "Не можна виконати як головний сервер оскільки головне "GroupName" не виходить, цей тип основного документа не може бути представлений під назвою, або у вас немає дозволу. "
Трайнко

1
@Tim: ім'я користувача - це все-таки користувач, який входить в систему - йому просто не
надано

21

Ви можете використовувати 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

Я використовую це як частину відновлення з виробничого сервера до тестової машини:

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

Вам потрібно буде використовувати локалізовану назву служб у випадку німецької чи французької Windows, див. Як створити вхід на SQL Server для облікового запису служби в не-англійській Windows?


Якщо вам також потрібно встановити вхід / головний рівень бази даних, ось інша відповідь я знайшов корисним dba.stackexchange.com/a/2578/60876
Agostino

Цікаво, чи можна це використовувати для надання певній активній групі директорій для читання доступу до певної схеми - у pseudo sql CREATE LOGIN ... WITH DEFAULT_SCHEMAточки ... мають посилатися на певну групу оголошень. У нас є кілька груп і хотіли б надати активній групі каталогів accountantsдоступ до схеми «A», але не до схем «B» і «C». Аналогічно, група "рахунки" повинна мати доступ лише до схеми "B". Ми використовуємо доступ до msft.
прибій

0

Перейдіть до студії управління SQL Server, перейдіть до пункту Безпека, перейдіть до входу та натисніть правою кнопкою миші. У меню з’явиться кнопка із написом «Новий вхід». Там ви зможете додати користувачів та / або групи з Active Directory до своїх "дозволів" на SQL Server. Сподіваюся, це допомагає


0

Ось моє спостереження. Я створив логін (лише для читання) для облікового запису групового вікна (AD), але він діє заперечно на різних SQL-серверах. На серверах SQl, що користувачі не можуть бачити бази даних, я додав перевірене визначення перегляду, а також дав можливість проникнення баз даних у головну базу даних, щоб уникнути помилок 229. У мене немає цієї проблеми, якщо я створю логін для користувача.


Це можна було б прокоментувати, а не використовувати відповідь. Але ви поки не можете коментувати. Тож не ха-ха ^^
finnmglas
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.