当MS Access作为前端,PostgreSQL作为后端时,如何隐藏/锁定链接的PostgreSQL表



我有MS Access作为前端和PostgreSQL作为后端为我的数据库。所以我在PostgreSQL中设置了数据库,并使用ODBC驱动程序将表链接到MS Access。一切都很好,我可以在MS Access中更新表,记录将出现在Postgres数据库中。

由于我仍然可以在MS Access中看到链接表,我觉得有些用户可以在不填写适当表格的情况下进入并手动修改表。是否有可能隐藏表或锁定表,以便Access用户根本不能修改原始数据?如果没有,我可以做些什么来确保数据库的完整性。

谢谢!

我建议查看Postgres特权作为锁定表的一种方式。

简而言之,你可以让你的后端作为一个用户对所讨论的表有完全的访问权限,当用户登录到应用程序时,他们将使用一个权限相当锁定的用户连接到Postgres(例如,只读,如果你只是想要能够做SELECT s来表面数据)。

例如,您可以对您的Postgres服务器运行以下SQL:
REVOKE ALL ON accounts FROM joe;
GRANT SELECT ON accounts TO joe;

这将首先删除用户joe对表accounts的所有权限,然后只允许该表的SELECT权限。

您可以对所有希望锁定的执行类似的操作。您还需要对这些表使用的序列执行相同的操作。

您可能希望创建一个特殊的只读用户,该用户只有读权限,并使用这些凭据来显示Postgres数据供用户访问。

当你需要修改数据时,你的后端可以特别使用一个power用户,它有更大的访问权限。

这里有一个链接,详细介绍了创建一个只读Postgres用户(在这种情况下用于备份,但一般概念和SQL命令应该适用(只是忽略关于pg_dump的东西)。

如果您不关心用户通过up而不是授权的方式修改这些表中的数据的能力,而只关心他们使用psql来进入和更新这些表,那么您可能不需要只读用户,而可以简单地锁定表并让后端使用具有足够访问权限的用户。

最新更新