Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Вниз

ADSI Как получить реквизиты пользователя в домене?   Найти похожие ветки 

 
gedd   (2003-10-29 11:27) [0]

ADSI Как получить реквизиты пользователя в домене используя ADO?
Помогите кто знает лучше кодом.


 
paul_k   (2003-10-29 12:27) [1]

Кодом - пожалста
insert into #t_domain_users
select displayName,mail,company,Department,title,TelephoneNumber,PhysicalDeliveryOfficeName,userPrincipalName,"CTBM"+"\"+sAMAcc ountName from openquery(ADSI,"select displayName,mail,userPrincipalName,company,Department,title,TelephoneNumber,PhysicalDeliveryOfficeName,sAMAccountName from "LDAP://OU=Users_Paveleckaya, DC=ctbm"" )
where displayName is not null


А вообще - Query Analiser - F1

Querying the Directory Service
The Microsoft OLE DB Provider for Microsoft Directory Services supports two command dialects, LDAP and SQL, to query the Directory Service. The OPENQUERY function can be used to send a command to the Directory Service and consume its results in a SELECT statement.

The following example shows creating a view that uses OPENQUERY to return information from the directory at the server ADSISrv whose domain address is sales.northwind.com. The command inside the OPENQUERY function is an SQL query against the directory to return the Name, SN, and ST attributes of objects belonging to Class Contact at a specified hierarchical location (OU=Sales) in the directory. The view then can be used in any SQL Server queries.

CREATE VIEW viewADContacts
AS
SELECT [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
"SELECT Name, SN, ST
FROM ""LDAP://ADSISrv/ OU=Sales,DC=sales,DC=northwind,DC=com""
WHERE objectCategory = ""Person"" AND
objectClass = ""contact""")
GO
SELECT * FROM viewADContacts


 
paul_k   (2003-10-29 12:39) [2]

Некое описание подобных задач мне на SQL.RU попадалось


 
gedd   (2003-10-30 07:50) [3]

Спасибо пробую разобраться
кстати dc - имя конроллера домена?


 
gedd   (2003-10-30 08:16) [4]

Пробовал так
form1.ADOQuery1.SQL.Clear;
form1.ADOQuery1.SQL.Add("select * from");
form1.ADOQuery1.SQL.Add("openquery(ADSI,"select * from "+""""+"LDAP://OU=Users, DC=torg,DC=local"+""""+"" ) ");
form1.ADOQuery1.SQL.Add("where displayName is not null");
form1.ADOQuery1.Open;

Выдает ошибку во второй строке, в чем проблема то?
Строка подключения
Provider=ADsDSOObject;Encrypt Password=False;Integrated Security=SSPI;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648

в DataSource and Location ничего не указывал.
Provider = Ole DB Provider for Microsoft Directory Services


 
paul_k   (2003-10-30 09:00) [5]

1. ADSI сервер прилинковал?
2. если да, то ошибка из-за того, что пустышку тянеш
попробуй
select * from openquery(ADSI,"select * from "LDAP:// DC=domain_name"" )
и дальше смотри что тебе надо. Учти что это не таблица а дерево


 
paul_k   (2003-10-30 09:01) [6]

3-е
А ты уверен, что прав у тебя достаточно на получение данных от домен-контроллера?


 
gedd   (2003-10-30 11:17) [7]

Что значит прилинковать ADSI сервер?
По поводу прав: данные узверя может получить любой пользовательв домене. Однако проверю на всякий случай.


 
gedd   (2003-10-30 11:25) [8]

Вообщем он пишет
Parameter object is improperly defined.
Inconsistent or incomplete information was provided.
строка sql была такая

select displayName,mail,company,Department,title,TelephoneNumber,PhysicalDeliveryOfficeName,userPrincipalName
from openquery(ADSI,"select * from "LDAP://OU=Users, DC=torg, DC=local"" )
where displayName is not null


 
paul_k   (2003-10-30 11:34) [9]


> Что значит прилинковать ADSI сервер?

To create a linked server against Windows 2000 Directory Service

Create a linked server using ADSDSOObject as the provider_name and adsdatasource as the data_source argument of the sp_addlinkedserver system stored procedure.
EXEC sp_addlinkedserver "ADSI", "Active Directory Services 2.5",
"ADSDSOObject", "adsdatasource"
GO

попробуй
select * from openquery(ADSI,"select * from "LDAP:// DC=domain_name"" )

от нужного места разворачивай дерево
названия ключей, насколько я понял может быть разным в зависимости от того что под что задействовали. Так что те поля, что я использую могут тебе не подойти.
и почитай MSDN на эту тему


 
paul_k   (2003-10-30 11:36) [10]

прошу прощения MS SDK Help


 
lmatveev   (2003-10-30 13:26) [11]

У тебя выдается ошибка из-за того, что в команде присутствует ":" и Delphi, разбирая твою команду считает, что дальше идет имя параметра. Чтобы этого избежать добавь в начале своего кода:
form1.ADOQuery1.ParamCheck := false;


 
paul_k   (2003-10-30 13:42) [12]

2 lmatveev
Query Analiser параметров не проверяет, к счастью


 
gedd   (2003-10-31 10:06) [13]

Поставил
form1.ADOQuery1.ParamCheck := false;
и попробовал
select * from openquery(ADSI,"select * from "LDAP:// DC=torg,ВС=local"")

Он сказал одна или более ошибок произошли в процессе выполнения


 
paul_k   (2003-10-31 10:57) [14]

2 Gedd
Напиши и отладь сначала селект в аналайзере.
данные лежат в древовидной структуре
запрос вс-же надо было написать
select * from openquery(ADSI,"select * from "LDAP:// DC=torg")
это даст тебе строки для 1-го уровня.
что-бы сервер смог подключится к этим данным надо "объяснить" ему где что брать. Для этого существует понятие "Linked servers"


 
gedd   (2003-11-03 14:00) [15]

Я никогда не работал с ADSI, хотя с базами данных работаю уже
долго и постоянно. Так Linked servers я ничего не понял
как это сделать и где это все находится? Поподробнее!


 
paul_k   (2003-11-03 16:49) [16]

Поищи в хелпе от (SQL serverbooks online,Query Analiser -> F1).
Например

OLE DB Provider for Microsoft Directory Services
The Microsoft OLE DB Provider for Microsoft Directory Services provides access to information in the Microsoft® Windows® 2000 Directory Service. This OLE DB Provider supports two command dialects, LDAP and SQL, to access the directory service and return results in a tabular form that can be queried using SQL Server distributed queries.

To create a linked server against Windows 2000 Directory Service

Create a linked server using ADSDSOObject as the provider_name and adsdatasource as the data_source argument of the sp_addlinkedserver system stored procedure.
EXEC sp_addlinkedserver "ADSI", "Active Directory Services 2.5",
"ADSDSOObject", "adsdatasource"
GO

For Windows authenticated logins, the self-mapping is sufficient to access the directory using SQL Server Security Delegation. Because the self-mapping is created by default for linked servers created through sp_addlinkedserver, no other login mapping is necessary.

For SQL Server authenticated logins, suitable login/passwords can be configured for connecting to the directory service using the sp_addlinkedsrvlogin system stored procedure.

Querying the Directory Service
The Microsoft OLE DB Provider for Microsoft Directory Services supports two command dialects, LDAP and SQL, to query the Directory Service. The OPENQUERY function can be used to send a command to the Directory Service and consume its results in a SELECT statement.

The following example shows creating a view that uses OPENQUERY to return information from the directory at the server ADSISrv whose domain address is sales.northwind.com. The command inside the OPENQUERY function is an SQL query against the directory to return the Name, SN, and ST attributes of objects belonging to Class Contact at a specified hierarchical location (OU=Sales) in the directory. The view then can be used in any SQL Server queries.

CREATE VIEW viewADContacts
AS
SELECT [Name], SN [Last Name], ST State
FROM OPENQUERY( ADSI,
"SELECT Name, SN, ST
FROM ""LDAP://ADSISrv/ OU=Sales,DC=sales,DC=northwind,DC=com""
WHERE objectCategory = ""Person"" AND
objectClass = ""contact""")
GO
SELECT * FROM viewADContacts

For more information about the LDAP and SQL dialects, see Microsoft Active Directory Services documentation.

©1988-2000 Microsoft Corporation. All Rights Reserved.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.01 c
3-78783
KIR
2003-11-05 15:34
2003.11.24
Народ, можли как-то добавить пустую строчку в НД?


6-79078
dez
2003-09-26 12:26
2003.11.24
TNMHTTP + Proxy + Авторизация


14-79176
Igor_thief
2003-10-28 17:43
2003.11.24
Графика


1-78896
ASt
2003-11-12 22:26
2003.11.24
Компонент DBGrid


4-79219
kkostik
2003-09-30 15:44
2003.11.24
DLL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский