Я могу настроить диспетчер соединений, который использует поставщика OLE служб каталогов и указывает на один из наших контроллеров домена. Затем в области «Поток данных» я создаю источник OLE DB и устанавливаю режим доступа к данным «Команда SQL».
Затем я использую этот запрос для извлечения данных из Active Directory:
Select employeeid, sAMaccountName
From 'LDAP://MyCompany.com'
Where objectClass = 'user'
and objectClass = 'Person'
and objectClass <> 'Computer'
Если я анализирую запрос, он говорит, что он анализируется правильно. Если я открою Query Builder, он выдаст мне эту ошибку.
Ошибка в предложении FROM: около 'ГДЕ'. Невозможно проанализировать текст запроса.
Затем я нажимаю кнопку ОК, и открывается Query Builder, где я могу успешно выполнить запрос и получить результаты из AD. Однако, когда я пытаюсь нажать OK, чтобы применить изменения или перейти в представление «Столбцы», я получаю эту ошибку:
Ошибка в задаче потока данных [Источник 1 OLE DB [941]]: Произошла ошибка OLE DB. Код ошибки: 0x80040E21.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ:
Исключение из HRESULT: 0xC0202009 (Microsoft.SqlServer.DTSPipelineWrap)
Я также попытался настроить источник БД с помощью режима доступа «Команда SQL из переменной». Я установил строковую переменную со значением, являющимся запросом ... но это просто дает мне ту же ошибку.
Поскольку ошибка настолько общая, я не могу найти описание того, что на самом деле не так.
Кто-нибудь знает, как успешно использовать поставщик OLE DB для Microsoft Direcotry Services? И / или кто-нибудь знает лучший способ сделать это внутри SSIS?