我有一個ASP.NET頁面需要將一些數據推送到使用Access 2003數據庫作爲後端的較舊程序。我有我的連接字符串都設立了這樣做(成功到數據庫的本地副本),但是當我試圖從它的網絡共享位置數據庫中讀取,我得到以下錯誤:網絡文件夾中的訪問數據庫無法被ASP.NET讀取
Record(s) cannot be read; no read permission on 'tblDevice'.
有沒有密碼或數據庫的任何安全性,所以我很確定這是與網絡相關的。我不知道有任何方法可以將connection string包含網絡登錄名/密碼。我會假設它將需要添加一個特定的用戶到文件夾。但是,我不確定哪些用戶需要該文件夾的權限才能使其工作(來自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 [email protected] 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];
}
}
看看http://stackoverflow.com/questions/1937703/record-cannot-be-read-no-read-permission-on-msysobjects。即strDdl =「授予選擇MSysObjects到管理員;」 CurrentProject.Connection.Execute strDdl – RandomUs1r 2013-03-04 17:45:52
@ Syn123即使我嘗試在本地副本上執行此操作,也會給我一個錯誤:'您沒有必要的權限來使用''對象。讓您的系統管理員或創建此對象的人員爲您建立適當的權限。「想法如何解決這個問題?也許是因爲我的MDB和那個問題是ACCDB? – techturtle 2013-03-04 18:13:07