バックエンドにAccess2003データベースを使用する古いプログラムにデータをプッシュする必要があるASP.NETページがあります。これを行うために接続文字列をすべて設定しましたが(DBのローカルコピーに成功しました)、ネットワーク共有の場所にあるデータベースから読み取ろうとすると、次のエラーが発生します。
レコードを読み取ることはできません。'tblDevice'に読み取り権限がありません。
データベースにはパスワードやセキュリティがないので、これはネットワークに関連していると確信しています。接続文字列にネットワークログイン/パスワードを含める方法を知りません。フォルダーに特定のユーザーを追加する必要があると思います。ただし、そのフォルダーが機能するために(Visual StudioとIISの両方から)そのフォルダーへのアクセス許可が必要なユーザーがわかりません。このタイプのエラーの経験がある人、またはフォルダへのアクセス許可を与える必要がある「ユーザー」を知っている人はいますか?
参照用の私のコード:
接続文字列にアクセスします
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\srv.local\SHAREDOCS\data.mdb;
User Id=admin;Password=;
選択コード
public static DataTable GetDevices(string serialNum)
{
var conn = new OleDbConnection();
var builder = new OleDbConnectionStringBuilder();
builder.ConnectionString = ConfigurationManager.ConnectionStrings["development"].ToString();
conn = builder.ConnectionString;
var sqlString = "SELECT DeviceID, SN FROM tblDevice WHERE Active=True AND SN=@serialNum ORDER BY SN, DeviceID; "
using (var cmd = new OleDbCommand(sqlString, conn))
{
cmd.Parameters.AddWithValue("@serialNum", serialNum);
var ds = new DataSet();
var da = new OleDbDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
}
}