2017-05-24 100 views
0

我想硬連接到Access數據庫的憑據。MS Access連接字符串中的硬代碼憑據(受密碼保護)

我的連接字符串目前看起來像

$strConn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = $dbName; 

這工作得很好,但是我提示輸入「用戶名」和「密碼」。我已經研究訪問連接字符串,但我只能找到一個包含密碼(不是用戶)

$strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=c:\App1\Your_Database_Name.mdb; Jet OLEDB:Database Password=Your_Password" 

我一直在使用這種嘗試(以及用戶/用戶名/ UID等的組合),但沒有發現任何東西這樣可行。

這裏是彈出(自動填充服務名稱)窗口:

enter image description here

類似於此:Oracle ODBC Driver Connect always asking for password

我相信這是與Access數據庫被鏈接到一個oracle數據庫。這是我的手嗎?

+0

你的安全狀況到底是什麼?它是一個加密的.mdb,一個帶有工作組文件或平面.mdb的受保護的.mdb文件嗎? .mdb中是否有鏈接表? (如果是這樣,您可能希望直接連接到這些鏈接表,而不是通過Access)。您是否可以在不輸入登錄信息的情況下使用訪問數據庫,並且沒有得到此提示? –

+0

您是否試圖將Access錶鏈接到Oracle?我會嘗試相反的。將表遷移到Oracle並將其鏈接回Access。 – SunKnight0

+0

@ErikvonAsmuth我不確定它是什麼類型的.mdb。我不認爲它是安全的,因爲我打開它時沒有提示輸入憑據。但是,它確實有鏈接表。當我嘗試打開一個時,我會看到與上面相同的'Oracle ODBC Driver Connect'窗口。我如何直接訪問鏈接表?可能值得一提的是,這個數據庫屬於一家大公司,我無法控制它,所以我很難像其他評論所暗示的那樣對其進行重組。 – Thomas

回答

2

您可以使用它的連接字符串,並在用戶名和密碼填寫到一個鏈接表的直接訪問。對於Oracle而言,連接字符串結構可能因使用的提供程序而異。查看ConnectionStrings.com獲取選項列表(最有可能的選項是Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername; Password=myPassword;)。

您可以通過查詢中的Microsoft Access MSysObjects獲得鏈接表的當前連接字符串:

SELECT MSysObjects.Connect 
FROM MSysObjects 
WHERE MSysObjects.Name="MyLinkedTableName"; 

你甚至可以更改連接字符串包含用戶名和密碼,如果你想(見this answer) 。

但是,請注意,最初鏈接Access中的表的人選擇不包含用戶名和密碼。在不安全的Access數據庫中包含用戶名和密碼可能會帶來安全風險。

另外,請注意,如果直接連接到Oracle數據庫,則必須引用在那裏定義的表名稱,並使用適當的SQL變體來查詢它。

0

根據ConnectionStrings.com便利的參考頁面,通過User Id=<username>Password=<password>像這樣,

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin; 
Password=Pa$$w0rd; 
+0

這是我嘗試的第一件事情之一。由於某種原因,它不起作用。 – Thomas

+0

儘管ConnectionStrings通常是一個很好的資源,但用戶ID僅用於使用工作組文件的工作組身份驗證,在這種情況下,您需要指定工作組文件:Provider = Microsoft.Jet.OLEDB.4.0 Data源= C:\了MyDatabase.mdb; Jet OLEDB:System Database = system.mdw; User ID = myUsername; Password = myPassword;'。但是,我認爲這不是這種情況。 –