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"
и это работает :)