【发布时间】:2014-11-25 09:24:10
【问题描述】:
我正在使用 SSIS 更新活动目录条目。起初,我使用了一个运行良好的脚本组件。然后我尝试通过将更新放入脚本组件来优化控制流,就在它开始时,我得到了“拒绝访问”异常。经过测试,我放弃了这个想法并试图回到原来的脚本任务,但现在我也遇到了同样的异常。
在与系统管理员交谈后,我发现了以下内容:
- 我的 AD 用户自始至终拥有适当的权限,并且从其工作时起权限没有改变
- 在使用原始代码的一次失败测试中,他们给了我管理员权限,但对异常没有影响
只要调用 CommitChanges,就会发生异常。代码本身是我在 PC 上从 Visual Studio 运行的 SSIS 包的一部分,因此据我所知,它应该使用我的用户。
源代码示例:
DirectoryEntry searchroot = new DirectoryEntry("LDAP://XXXXXX.com");
using (DirectorySearcher searcher = new DirectorySearcher(searchroot,
"(&(objectClass=user)(sn=MySN))", new string[] {"info"}, SearchScope.Subtree))
{
var result = searcher.FindOne();
DirectoryEntry upd = new DirectoryEntry(result.Path);
upd.Properties["info"].Value = "myTest";
upd.CommitChanges();
upd.Close();
}
带有 MySN 的 sn 只产生一个结果。另外作为信息:我正在使用 SQL 数据工具 2014 和 Visual Studio 2013
就像我说的那样,我的用户的权限没有改变,甚至给我的用户管理员权限也没有处理异常(尽管相同的代码在不久前工作了)。所以我的问题是:是什么导致了这个问题,因为老实说我在那里没有想法(或者我是否误认为 SSIS 在那里使用我的用户?)。
更新: 今天,没有对代码或 AD 进行任何更改的代码再次运行 oO 我真的很想知道是什么导致了这个问题,因为我完全没有得到它,而且它对我来说似乎不稳定,原因至今未知。
【问题讨论】:
-
表示某些东西可能改变了从 AD 到 SQL 服务器的信任。
-
嗯,你是什么意思? (根据管理员的说法,他们从第一次工作到停止工作的唯一一件事就是他们添加了一个用户)
-
我的意思是改变了一些东西使它停止工作,然后再次改变使它再次工作。事情不起作用并随机停止工作。两个主要更改可能是更改 SSIS 用户的权限或运行 SSIS 的 SQL 框未设置为受信任的计算机。
标签: c# ssis active-directory sql-server-2014 sql-server-data-tools