有没有办法阻止用户在Postgresql数据库中执行批量条目

Ake*_*eem 5 database postgresql access-control

我有4个新的数据输入用户使用特定的GUI来创建/更新/删除主数据库中的条目."GUI"客户端允许他们在地图上查看数据库记录并在那里进行修改,这是很好的首选方式.

但是最近很多人一直在使用PGAdmin直接访问本地数据库并运行批量查询(即更新,插入,删除等),这会引入很多问题,例如人们在设置值时不知道或犯错误更新大量记录.它还会影响我们的记录程序,因为我们正在计算报告目的的平均值和时间戳,这对我们来说非常重要.

那么有没有办法阻止用户使用PGAdmin(请记住很多这些人在家工作,我们无法访问他们的机器)并直接在数据库中运行SQL查询.

我们仍然必须让他们访问某些表,并允许他们执行sql,只要它来自某个客户端,但在他/她尝试直接在db中执行查询时拒绝访问同一用户.

Dan*_*iel 0

只有使用技巧(也可能会被利用,但也许你的用户不够聪明),这才有可能。

在您的客户端应用程序中设置一些无害的参数,例如 geqo_pool_size=1001(如果通常为 1000)。

现在编写一个触发器,检查是否设置了此参数,如果未像您的应用程序那样设置此参数(并且用户名不是您的管理员用户名),则输出“无法通过 PGAdmin 访问”。

替代方案:创建临时表并检查其是否存在。