0

在具有 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 更新记录。我同意、SELECT拒绝UPDATEView1允许(以防有视图不起作用)。我也拒绝了,因为我不希望用户更新该列。SELECTTable1UPDATETable1UPDATEUPDATEColumn1

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

编辑:

仍然没有找到一种方法来找出 Access 需要在没有 SELECT 的情况下执行 UPDATE 的权限。SQL Profiler 没有显示“记录集不可更新”消息的任何明显原因。

4

1 回答 1

1

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

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

于 2009-06-25T10:16:16.463 回答