У меня есть страница ASP.NET, которая должна подталкивать некоторые данные к старой программе, которая использует базу данных Access 2003 для бэкэнд. Я мои строки соединения все готовы, чтобы сделать это (аукционное к локальной копии БД), но когда я пытаюсь читать из базы данных о его местонахождении акций сети, я получаю следующее сообщение об ошибке:Доступ DB в сетевой папке не может быть прочитан 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 = "GRANT SELECT ON MSysObjects TO Admin;" CurrentProject.Connection.Execute strDdl – RandomUs1r
@ Syn123 Это дает мне ошибку, даже когда я пытаюсь сделать это в локальной копии: «У вас нет необходимых разрешений для использования объекта». Попросите вашего системного администратора или человека, создавшего этот объект, установить для вас соответствующие разрешения. Идеи, как обойти это? Может быть, потому что мой MDB, и этот вопрос был ACCDB? – techturtle