收听/通知权限

Chr*_*loe 11 postgresql postgresql-9.2

我有一个 postgres 数据库,有两个用户;爱丽丝和鲍勃。

我希望能够做到这一点,NOTIFY alice_channel 'sensitive data'而鲍勃无法LISTEN通过猜测频道名称是“alice_channel”而偷偷摸摸地进入。

在实践中,频道名称很难猜测,但是这是安全通过朦胧的最好的。

我认为没有办法阻止数据库用户使用(滥用)LISTEN&NOTIFY是否正确?似乎没有任何可以授予或撤销的相关权限。

这是一个死胡同吗?

Cra*_*ger 6

LISTEN和没有权限NOTIFY。在更新的版本中引入对通知有效负载的支持之前,没有任何意义。

如果您想要访问控制,请创建一个包含您想要的信息的表,然后发送一个NOTIFY空的或除了该表的主键之外什么都没有的表。SELECT表中感兴趣的行,可以进行访问控制,以获取敏感数据。这曾经是在添加有效载荷之前使用LISTENNOTIFY发送特定数据的唯一方法。