Ms access MS Access中链接表的控制权限
恐怕我已经知道这个问题的答案了,但我正在与社区核实,以防有什么我不知道的 是否可以让MS Access表将功能控制权限链接到链接表?安全地说,FE.accdb是否可以对BE_A.accdb拥有读/写权限,但可以将只读链接设置为BE_B.accdb(而不使BE_B.accdb完全为R/O)?排序 引用大卫·芬顿的话: 一种方法是删除链接的 表,并创建要替换的查询 它们(您可以使用相同的名称 将查询作为相应的链接 表),并在中使用连接字符串 查询并设置记录集类型 到快照,该快照将是只读的 默认情况下 我最近才有机会亲自做这件事。我问了一个有关通过VBA将querydef记录集类型设置为snapshot的相关问题 您可以调整以下代码以执行所需操作:Ms access MS Access中链接表的控制权限,ms-access,Ms Access,恐怕我已经知道这个问题的答案了,但我正在与社区核实,以防有什么我不知道的 是否可以让MS Access表将功能控制权限链接到链接表?安全地说,FE.accdb是否可以对BE_A.accdb拥有读/写权限,但可以将只读链接设置为BE_B.accdb(而不使BE_B.accdb完全为R/O)?排序 引用大卫·芬顿的话: 一种方法是删除链接的 表,并创建要替换的查询 它们(您可以使用相同的名称 将查询作为相应的链接 表),并在中使用连接字符串 查询并设置记录集类型 到快照,该快照将是只读的 默认情况下
Sub ReadOnlyLink(MDBPath As String, TblName As String, SrcTblName As String)
Dim q As DAO.QueryDef
Set q = CurrentDb.CreateQueryDef(TblName, "SELECT * FROM " & SrcTblName & _
" IN """ & MDBPath & """")
q.Properties.Append q.CreateProperty("RecordsetType", dbByte, 2)
End Sub
这并不是一个真正的答案,但它太长了,无法发表评论。由我接受的答案引发的思考 似乎可以将其用于用户级“安全性”:
- 建立一个
- 使用故意断开的链接设置可分发FE
- 在FE启动中,获取用户名(API调用)
- 在选择的案例中运行用户名,根据需要将其重新链接为real table或querydef。在选择之前使用用户名->角色查找可能更好
嗯,我得再想一想。。。。不是防弹的,但不是真正想要的。更多的是一种将更新责任分配给相应领域专家的用户的方法。不知道这是否真的有道理。哇。我没想到会有一个积极的回答(正如你可能从最初的措辞中猜到的)。我不知道我的需求是否足够强烈,是否有理由这样做,但现在我知道了。谢谢我认为Access开发团队的立场是,安全性(以及用户对数据的访问)是一个后端问题,如果需要这样做,必须使用提供安全性和访问控制的数据库引擎。可以是Jet(MDB格式),也可以是SQL Server或其他任何格式。ACCDB在这方面没有提供任何东西(忽略愚蠢的数据库密码,它们只不过是安全的)。所以,也许你需要重新考虑你的后端数据库。在这一点上,你没有选择后端的权利——客户端的要求比访问控制的优先级更高。我更希望有一台SQL Server是。。。。