sab*_*rna 2 sql-server linked-server active-directory
我的老板发来请求我说:我想要一个 SQL 查询,它列出特定组的所有域用户。我开始搜索查询。我找到了几个使用 Linked Server 的解决方案。
EXEC master.dbo.sp_addlinkedserver
@server = N'ADSI',
@srvproduct=N'Active Directory Service Interfaces',
@provider=N'ADSDSOObject',
@datasrc=N'adsdatasource'
Run Code Online (Sandbox Code Playgroud)
然后
EXEC master.dbo.sp_addlinkedsrvlogin
@rmtsrvname=N'ADSI',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'DOMAIN\USER',
@rmtpassword='*********'
Run Code Online (Sandbox Code Playgroud)
我用域管理员用户的信息替换了username
和password
,但出现此错误
无法为链接服务器“ADSI”创建 OLE DB 提供程序“ADsDSOObject”的实例。
我们的域名是akilus.local
,但我没有替换数据源。
可能是什么问题?
为什么需要 SQL Server 来执行此任务?这不是 RDBMS 的目标。您将不得不费一番周折才能让 SQL Server 找到这些数据。
最快/最简单/最自然的方法来做到这一点?Active Directory PowerShell 模块。这是一个单行:
Get-ADGroupMember "administrators" | Select-Object Name, DistinguishedName, ObjectClass
Run Code Online (Sandbox Code Playgroud)
简而言之,让这样的逻辑远离 SQL Server并将其放在它所属的操作系统中。
归档时间: |
|
查看次数: |
7981 次 |
最近记录: |