我有一个计划代理尝试访问另一台服务器上的数据库。当它运行时我收到错误4063 - 数据库... databasename ...尚未打开。
服务器在ACL中列为管理器。
导致此错误的其他可能原因是什么?
答案 0 :(得分:2)
其他服务器是否信任执行代理的服务器?检查服务器文档 - >安全 - >受信任的服务器。
答案 1 :(得分:0)
可以在不打开数据库的情况下获取数据库的句柄。如果您尝试调用大多数方法而不先打开它,那么您将收到该错误。最可能的解释是,您无权打开它。
什么ID签署了代理?可能不是服务器。代理将以代理签名者的权限运行,因此需要在您尝试打开的数据库的ACL中进行ID。
关于代理如何在不同的权限下代表不同的用户运行,有很多规则。如果情况需要,那可能会变得相当复杂。但请检查代理签名者是否有权先打开数据库,然后查看任何“代表运行”设置。
答案 2 :(得分:0)
检查数据库所在的服务器的服务器文档。在“访问服务器”部分中,“受信任的服务器”字段是否包含代理运行的服务器的名称?
答案 3 :(得分:0)
一个提示:事先打印出db.Server和db.Filepath以查看您要打开的确切内容。