我需要知道的是,如果我遇到了一个问题,我有很多事务,这些事务都是通过设置current_setting var开始的;一个事务是否可以更改另一个事务的current_setting?
我不能发生的是current_setting var在交易仍在发生的同时发生变化。因此,如果Postgres按顺序处理每个单独的事务,我想我是安全的。
我找不到一个明确的答案,但希望有一些Postgres天才可以为我澄清这一点。
PS:我正在使用RLS的current_setting来验证应用程序用户。
我需要知道的是,如果我遇到了一个问题,我有很多事务,这些事务都是通过设置current_setting var开始的;一个事务是否可以更改另一个事务的current_setting?
我不能发生的是current_setting var在交易仍在发生的同时发生变化。因此,如果Postgres按顺序处理每个单独的事务,我想我是安全的。
我找不到一个明确的答案,但希望有一些Postgres天才可以为我澄清这一点。
PS:我正在使用RLS的current_setting来验证应用程序用户。
1条答案
按热度按时间z2acfund1#
PostgreSQL中的
current_setting
函数返回事务正在其中运行的当前隔离会话的配置参数值。一个事务的current_setting
不能被另一个事务修改。由于每个事务都有自己唯一的会话和设置,这种分离可以确保将current_setting
用于行级安全性(RLS)和用户身份验证等目的仍然是安全的。