在具有SQL后端的Access项目(ADP)中,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
(如果{视图上的{1}}不起作用)。我还拒绝了UPDATE
到UPDATE
,因为我不希望用户更新该列。
如果我使用这些权限设置连接到SQL数据库(使用SQL Server Management Studio),我可以更新视图中的记录,但在Access中我不能。为什么是这样?我不知道Access正在发出什么查询来更新记录以确定它失败的原因。
修改
仍然没有找到一种方法来找出Access没有SELECT需要进行UPDATE的权限.SQL Profiler没有显示'recordset not updatable'消息的任何明显原因。