Минимальные разрешения, необходимые для обновляемого запроса (Access Project) - PullRequest
0 голосов
/ 25 июня 2009

В проекте Access (ADP) с бэкэндом SQL, какие минимальные разрешения требуются для того, чтобы Access мог обновлять записи, возвращаемые из представления, привязанного к форме, и в то же время предотвращать прямое SELECT в базовой таблице ? Например:

Таблица: Table1 Столбцы: ID, Column1, Column2, Column3, Column4

Просмотр: View1

SELECT ID, Column1, Column2, Column3 FROM Table1 WHERE Column1 = 'Something'

Как владелец базы данных или в роли db_owner (или роли db_datareader, db_datawriter), записи могут обновляться через Access при привязке к представлению. Однако, если пользователь не является участником, запись не может быть обновлена ​​через Access. Я предоставил SELECT, UPDATE на View1 и запретил SELECT на Table1 и разрешил UPDATE на Table1 (в случае, если UPDATE в представлении не работает). Я также отказал от UPDATE до Column1, поскольку не хочу, чтобы пользователи обновляли этот столбец.

Если я подключусь к базе данных SQL (с SQL Server Management Studio) с этими установленными разрешениями, я могу обновить записи в представлении, но в Access не могу. Почему это? Я не знаю, какие запросы выдает Access для обновления записи, чтобы определить причину ее сбоя.

Edit:

До сих пор не выяснен способ выяснения, какие разрешения необходимы Access для выполнения UPDATE без SELECT. SQL Profiler не показал какой-либо очевидной причины сообщения «набор записей не обновляется».

1 Ответ

1 голос
/ 25 июня 2009

Не уверен, что Access может обновить то, что не может выбрать.

Вы можете прикрепить Sql Profiler к серверу, чтобы увидеть, какие запросы выполняется Access.

...