可更新查询所需的最低权限(Access Project)

时间:2009-06-25 09:55:57

标签: sql-server sql-server-2005 ms-access ms-access-2007

在具有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_datareaderdb_datawriter),可以在绑定到视图时通过Access更新记录。但是,如果用户不是这些用户的成员,则该记录不能通过Access更新。我已将SELECTUPDATE授予View1并拒绝SELECTTable1并允许UPDATETable1(如果{视图上的{1}}不起作用)。我还拒绝了UPDATEUPDATE,因为我不希望用户更新该列。

如果我使用这些权限设置连接到SQL数据库(使用SQL Server Management Studio),我可以更新视图中的记录,但在Access中我不能。为什么是这样?我不知道Access正在发出什么查询来更新记录以确定它失败的原因。

修改

仍然没有找到一种方法来找出Access没有SELECT需要进行UPDATE的权限.SQL Profiler没有显示'recordset not updatable'消息的任何明显原因。

1 个答案:

答案 0 :(得分:1)

不确定Access是否可以更新无法选择的内容。

您可以将Sql Profiler附加到服务器以查看Access正在运行哪些查询。