我想硬编码连接到Access数据库的凭据。
我的连接字符串目前看起来像
$strConn = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = $dbName;
这样可以正常工作,但我被提示输入“用户名”和“密码”。我研究过Access连接字符串,但我只能找到包含密码(非用户)
的字符串$strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source=c:\App1\Your_Database_Name.mdb; Jet OLEDB:Database Password=Your_Password"
我尝试过使用此功能(以及用户/用户名/用户名等的组合)但未发现任何有效的功能。
这是弹出的窗口(服务名称自动填充):
看起来与此类似:Oracle ODBC Driver Connect always asking for password
我认为它与链接到oracle数据库的Access数据库有关。这不在我手中吗?
答案 0 :(得分: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变体进行查询。
答案 1 :(得分: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;