Ms Access: запись(ы) не может быть прочитана; нет разрешения на чтение на [таблица]

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

Ms Access: запись(ы) не может быть прочитана; нет разрешения на чтение на tblMytable

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

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

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

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

1 ответов


я решил это с помощью системы.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:

"GRANT SELECT ON TABLE tblTable TO PUBLIC"

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