建立一个虚链接就可以像这样: USE MASTER EXEC XP_CMDSHELL 'NET USE \\10.188.106.186\承重软件\db "" /USER:10.188.106.186\ADMINISTRATOR' select * into tempdb..scaledata from OPENROWSET('Microsoft.Jet.OLEDB.4.0','\\10.188.106.186\承重软件\db\wuyidb.mdb';'admin';'', scaledata) exec xp_cmdshell 'net use \\10.188.106.186\承重软件\db /delete'
在 开发环境xp下 执行包成功
在 win2000下执行包报: 报:对连接管理器 "" 的 AcquireConnection 方法调用失败,错误代码为0xC0202009 , 用户 'sa' 登陆失败
如果加上 Password=密码 也执行成功。在作业中 设置数据源的 Password 无法设置。
单击控制流的空白地方, 在"属性"窗口中, 找到: ProtectionLevel 属性, 设置为: EncryptAllWithPassword
只是对包进行加密, 还是没有解决执行包所出现的问题 ,
Integration Services 服务 登陆用户同上
导入时请注意:保护级别选项中需要选择依靠服务器存储和角色进行访问控制
否则通过dtexec 运行包时会报错-说明: 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B“该项不适于在指定状态下使用。”。可能您无权访问此信息。当发生加密错误时会出现此错误。请确保提供正确的密钥。
请参见
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=142920&SiteID=1
我把大家提供的方法都作了测试。
前提:
制作包用的工具是Business Intelligence Development Studio. 操作系统: xp 数据库SqlServer2005 ,
作业中运行包 是在另一台机子上 操作系统: win2000 数据库SqlServer 2005
(其中包中的链接数据库 为 上面 xp 机子)1.按 happydreamer(小黑) 指示的
我在vs 中修改包的ProtectionLevel 但是提示无法保存包, 错误提示 :0xC0014061 ,系统无法确保该目标支持安全存储功能,保存到xml时出错。
2.把包的ProtectionLevel 每种都设置一次执行 ,
出现三种情况:a.采用秘钥的, 在Intgration Services里执行包,报:对连接管理器 "" 的 AcquireConnection 方法调用失败,错误代码为0xC0202009 , 用户 'sa' 登陆失败。 作业执行就更别说了。
b. 采用密码的,在Intgration Services里执行包可以运行,但是在 执行作业报错:已以用户 S域用户(administrator) 的身份执行。包执行失败。
job的所有者是 windows用户
USE MASTER
EXEC XP_CMDSHELL 'NET USE \\10.188.106.186\承重软件\db "" /USER:10.188.106.186\ADMINISTRATOR'
select * into tempdb..scaledata from OPENROWSET('Microsoft.Jet.OLEDB.4.0','\\10.188.106.186\承重软件\db\wuyidb.mdb';'admin';'', scaledata)
exec xp_cmdshell 'net use \\10.188.106.186\承重软件\db /delete'