模拟Active Directory以进行场外开发

时间:2009-10-03 01:51:46

标签: sql active-directory ldap

我使用SQL Server 2005收到了一个客户端应用程序,该应用程序包含许多与其活动目录连接的视图。他们这样做是为了保护人们在数据库中看到的内容。我需要能够从我的远程开发环境运行这些视图,我正在寻找有关如何执行此操作的建议。

我无法复制他们的AD服务器,即在VM中运行它 我想我可以重新编写删除连接到AD的视图,但这似乎是时间的腰部。

我在Active Directory Lightweight Directory Services中读到了this SO question,是否可以为我提供查询环境?

我不习惯使用Active Directory服务设置VM,但它可能导致大量额外的配置时间,其中更简单的LDAP服务器也可以正常工作(耸肩)。

以下是用于访问AD的查询示例(大多数字段未使用,但这是另一天的工作):

...   
FROM    OPENQUERY(ADSI, 
   'SELECT  Sn, givenName, userPrincipalName, Name, company, physicalDeliveryOfficeName,
    department, streetAddress, L, St, postalCode, Co, Mail, telephoneNumber,
    facsimileTelephoneNumber, manager, samaccountname, extensionattribute1    
    FROM ''LDAP://OU=EPPPPUsers, DC=EPPPP, DC=COM''
    WHERE objectClass=''user'' OR objectClass=''contact''') AS rs1    
LEFT OUTER JOIN     
  (SELECT  'EPPPP\' + SUBSTRING(userPrincipalName, 0, CHARINDEX('@', serPrincipalName)) AS UserName, CN    
FROM     
  OPENQUERY(ADSI, 'SELECT userPrincipalName,    CN    
  FROM ''LDAP://OU=EPPPPUsers, DC=EPPPP, DC=COM''') AS Rowset_1) AS mUsr    
    ON mUsr.CN = LEFT(SUBSTRING(manager, CHARINDEX('=', manager) + 1, LEN(manager)), CHARINDEX(',', SUBSTRING(manager, CHARINDEX('=', manager) + 1, LEN(manager))) - 1)

2 个答案:

答案 0 :(得分:8)

您可以使用ADAM复制所需的AD内容吗? 我在XP和2003上都使用过它。

答案 1 :(得分:1)

似乎最好通过要求他们导出LDIF文件感兴趣的对象和值来完成。

然后你可以(希望很容易)将文件导入到ADAM实例中。

-Jim