如何从SQL Server中访问Active Directory?

时间:2014-05-27 08:02:23

标签: sql-server sql-server-2008 active-directory

我需要提取/检索公司的AD用户列表。我对SQL Server数据库(我相信它等同于Oracle模式?)具有完全访问权限(开发人员访问权限)。我完全有权像DBA那样管理它。

  1. 我在网上搜索过,遇到过各种指南,大多数都在代码中使用use master。即使我不熟悉SQL Server,这是否意味着我需要对SQL服务器安装进行类似dba的访问? 如果您也可以包含工作代码,那就太好了。

  2. 我正在考虑创建一个SQL Server视图来存储数据。这可能吗?我想它只是想检查一下。我已经看过一些例子,但是从2003年开始。从那时起,很多事情都会发生变化。

  3. 您认为我还需要其他任何东西吗?

  4. 非常感谢

2 个答案:

答案 0 :(得分:1)

我过去曾使用它来查询AD用户。

SELECT
    * 
FROM
    OPENROWSET('ADSDSOObject', 
           '127.0.0.1';
           'domain\username';'password', 
           'SELECT 
                distinguishedName, 
                manager, 
                objectGUID, 
                samAccountName, 
                givenName, 
                SN, 
                mail 
            FROM 
                ''LDAP://127.0.0.1/DC=namepart,DC=namepart'' 
            WHERE 
                objectClass=''User'' 
            AND objectCategory=''Person'' 
'); 

您需要先启用ad-hoc分布式查询。

EXEC sp_configure 'Ad Hoc Distributed Queries',1;
GO
RECONFIGURE;

答案 1 :(得分:-2)

基本上:你没有。从程序运行它,不要从SQL Server中运行它。如果需要定期,请将SQL Server中的表与从AD中提取的数据同步。

  

我搜索网络并遇到各种指南,大多数使用“使用   掌握“在代码中。即使我不熟悉SQL Server,   这是否意味着我需要类似dba的访问SQL服务器安装?   如果你也可以包含工作代码那就太好了。

考虑一下在你职业生涯的某些时候阅读一些文档。 “使用master”就是这样 - 它告诉SQL Server使用名为MASTER的数据库。由于所有操作都在当前数据库(上下文)中执行,因此将此上下文置于已知位置。对于某些事情,这可能是好的,因为删除当前数据库可能会导致问题,因此通过首先更改当前上下文可以更好地完成某些操作。所有这些都在文档中。

  

我正在考虑创建一个SQL Server视图来存储数据。

你知道SQL吗?任何地方都无法查看STORES数据。它可能实现它,但它永远不会存储。这就是TABLES所做的。视图就像宏。

  

您认为我还需要其他任何东西吗?

文档。读。您错过了我所知道的实现中任何SQL服务器的基础知识 - 无论是Oracle还是Informix,DB2,Microsoft SQL Server。)VIEW不是主数据存储。基本知识。

通常,不要尝试从任何数据库服务器中访问AD。