【发布时间】:2011-08-30 16:09:15
【问题描述】:
由于我无法控制的原因,我必须处理每月通过我编写的自动化流程下载、解密和解压缩的新 Access MDB 文件。尽管 PGP 加密,发件人(保险公司)拒绝发送未受密码保护的 MDB。
不幸的是,文件下载后立即进行处理,并且假定没有密码,因此由于 OleDbException 表明我们的密码错误,这些文件没有被处理。我们知道密码,并且我们知道连接字符串的“使用数据库密码”选项:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;
这只能解决部分问题,因为其他部门稍后需要访问文件,而他们不知道密码。到目前为止,我只能通过在打开文件时按住 Shift 来使其工作,在密码提示下取消,通过打开的访问过程再次打开文件,同时再次按住 Shift 并单击“以独占方式打开”,继续在浏览密码对话框时按住 Shift,然后通过安全工具取消设置密码。
我想做的只是在 MDB 文件下载后立即使用 C# 以编程方式取消设置数据库密码。有没有办法做到这一点,或者每次我们得到一个新文件时我都必须亲自干预,完全违背了自动化的目的?
【问题讨论】:
-
克里斯,看看这个来自微软的链接。它在 C# 中,但您可以轻松地将其转换为 C#。这是一个有点旧的代码,但你可能会从那里得到一些想法:msdn.microsoft.com/en-us/library/…
-
@Icarus:那个链接给了我我需要的东西,特别是“ALTER DATABASE PASSWORD NULL [password_goes_here]”。如果你想写一个答案,分数就是你的。
-
@Chris Doggett:我会写下答案。我很高兴它成功了!