У меня есть метод, который извлекает группу пользователей из активного каталога.Однако проблема в том, что он использует System.DirectoryServices.AccountManagement;который, когда я хочу развернуть на sql-сервере как хранимую процедуру, но я должен сделать это unsafe .
Есть ли способ получить группы, не делая базу данных небезопасной?
PS Полезная ссылка о моей проблеме https://social.msdn.microsoft.com/Forums/officeocs/en-US/c376ae22-da56-4cf7-b538-f7564f19595d/assembly-systemdirectoryservices-could-not-be-called-from-clr-stored-procedure?forum=sqlnetfx
Да, есть другой способ.Процесс подробно описан здесь: https://blog.sqlauthority.com/2016/03/30/sql-server-query-active-directory-data-using-adsi-ldap-linked-server/
Он включает в себя настройку связанного сервера, который указывает на AD, с входом в систему, который может аутентифицироваться в домене.Затем вы используете OPENQUERY для запроса этого связанного сервера.
OPENQUERY
Примерно так (при условии, что вы назвали связанный сервер "ADSI"):
SELECT * FROM OpenQuery ( ADSI, 'SELECT * FROM ''LDAP://DC=domain,DC=com'' WHERE objectClass = ''User'' ')