由於我無法控制的原因,我必須處理一個新的Access MDB文件,該文件每個月都會通過我寫的一個自動過程進行下載,解密和解壓縮。儘管PGP加密,發件人(一家保險公司)拒絕發送未受密碼保護的MDB。如何以編程方式從Access數據庫中刪除已知密碼?
不幸的是,在下載文件後立即對其進行處理,並假定沒有密碼,因此由於OleDbException顯示我們有錯誤的密碼,因此這些文件未被處理。我們知道密碼,我們知道關於連接字符串「與數據庫密碼」選項:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;Jet OLEDB:Database Password=MyDbPassword;
這只是解決問題的一部分,因爲其他部門需要在稍後訪問的文件,他們不知道密碼。到目前爲止,我只能通過在打開文件時按住Shift鍵,在密碼提示符下取消文件,通過打開的Access進程再次打開文件,同時再次按住Shift鍵並單擊「Open Exclusive」,繼續在通過密碼對話框時按住Shift鍵,然後通過安全工具取消密碼設置。
我想要做的只是編程式地取消MDB文件上的數據庫密碼,一旦它被下載,使用C#。有沒有辦法做到這一點,或者每次我們獲得新文件時都必須親自介入,徹底擊敗了自動化的目的?
Chris,看看這個來自微軟的鏈接。它使用C#,但您可以輕鬆將其轉換爲C#。這是一箇舊的代碼,但你可能會從那裏得到一些想法:http://msdn.microsoft.com/en-us/library/aa139961%28v=office.10%29.aspx#odc_acsecurity_password – Icarus
@Icarus:該鏈接給了我需要什麼,特別是「ALTER DATABASE PASSWORD NULL [password_goes_here]」。如果你想寫一個答案,積分是你的。 –
@Chris Doggett:我會寫出答案。我很高興它的工作! – Icarus