Ms Access: запись (и) не может быть прочитана;нет разрешения на чтение [таблица] - PullRequest
7 голосов
/ 20 февраля 2012

Я написал скрипт для скачивания mdb-файлов и их чтения благодаря поставщику OLEDB.Все работает нормально, но если я пытаюсь читать из таблицы, выдается исключение:

Ms Доступ: записи не могут быть прочитаны;нет разрешения на чтение на tblMytable

 var cmd = new OleDbCommand("SELECT * FROM tblMytable", conn);
 var reader = cmd.ExecuteReader();

Я изменил разрешения непосредственно в Ms Access для пользователя "Администратор", и это работает.Но проблема в том, что этот скрипт запускается два раза в день и загружает около 20 файлов.Поэтому невозможно вручную изменить разрешения.

Можно ли программно изменить права на чтение таблицы?

Большое спасибо за любые идеи!

1 Ответ

7 голосов
/ 28 февраля 2012

Я решил это с помощью файла system.mdw. Я скопировал этот файл из «c: \ Users \ Administrator \ AppData \ Roaming \ Microsoft \ Access \» (в Win7) в каталог приложения (App_Data) и изменил строку подключения.

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.MDB;Persist Security Info=True;Jet OLEDB:System Database=|DataDirectory|\System.MDW;

var conn = new OleDbConnection(connectionString);

Если все еще невозможно прочитать данные, я выполняю команду предоставления:

"GRANT SELECT ON TABLE tblTable TO PUBLIC"

И это работает:)

...