假设我的Postgres数据库中有四个表,其中两个是私有的,包含高度敏感的信息(private1和private2),另外两个包含我希望世界上任何人都可以任意查询的信息(public1和public2)。我知道这是一个非常糟糕的设计,但请容忍我。
我希望设置一个用户,该用户可以只在两个公用表上运行SELECT,但绝不能对其他两个表(或更一般的数据库)执行任何其他操作,甚至是远程恶意操作。
我天真的方法是做一些事情,比如设置一个新的用户public_querier,运行一个REVOKE ALL ON private1, private2, public1, public2 FROM public