2017-05-24 10 views
0

Accessデータベースへの接続の資格情報をハードコードします。MS Access接続文字列のハードコード認証情報(パスワードで保護されています)

私の接続文字列は、現在

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

のように見え、これは正常に動作しますが、私は、「ユーザー名」と「パスワード」を入力するように求めています。私はこれを使用してみました(だけでなく、などのuidユーザー/ユーザー名/の組み合わせ)が、何かを発見していないしている私は、Accessの接続文字列を研究してきたが、私はパスワードだけを含むもの(ユーザ)

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

を見つけることができますそれは動作します。私はそれがAccessデータベースとは何かを持っていると信じてOracle ODBC Driver Connect always asking for password

enter image description here

は、次のようになります。ここでは

は、(サービス名が自動的に入力された)ポップアップされるウィンドウですoracleデータベースにリンクされています。これは私の手から外れていますか?

+0

あなたのセキュリティ状況はどうですか?それは、暗号化された.mdb、安全な.mdb、ワークグループファイルまたはプレーン.mdbですか? .mdbにリンクテーブルがありますか? (そのような場合は、おそらくAccessを介さずにリンクされたテーブルに直接接続したいと思うかもしれません)。ログイン情報を入力せずにこのプロンプトを表示せずにアクセスデータベースを使用できますか? –

+0

AccessテーブルをOracleにリンクしようとしていますか?私はその逆を試みるだろう。表をOracleに移行し、Accessに再度リンクします。 – SunKnight0

+0

@ErikvonAsmuthどのような種類の.mdbであるかわかりません。私はそれが開かれたときに資格情報を求められないので、安全だとは思わない。しかし、それにはテーブルがリンクされています。私が1つを開こうとすると、上記と同じ '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

これは私が試した最初のものの1つでした。何らかの理由で動作しません。 – Thomas

+0

ConnectionStringsは通常、優れたリソースですが、ユーザーIDはワークグループファイルのワークグループファイルの場合にのみ使用されます。この場合、ワークグループファイルを指定する必要があります: 'Provider = Microsoft.Jet.OLEDB.4.0; Dataソース= C:\ mydatabase.mdb; Jet OLEDB:システムデータベース= system.mdw;ユーザーID = myUsername;パスワード= myPassword; '。しかし、私はそれがここに当てはまるとは思わない。 –

関連する問題