1. User ID state
我们必须追踪与“用户ID(user ID)”概念相关的多个不同值。Postgres内核中有共有以下几个 User ID。
✔ AuthenticatedUserId
✔ SessionUserId
✔ OuterUserId
✔ CurrentUserId
1.1 User ID 概念相关的不同值
- AuthenticatedUserId
AuthenticatedUserId在连接建立时确定,并且不会改变。
(gdb)p AuthenticatedUserId
$52 = 10 - SessionUserId
“SessionUserId” 最初与 “AuthenticatedUserId” 相同,但在 “SET SESSION AUTHORIZATION” (如果 “AuthenticatedUserIsSuperuser” 为真)的情况下可以更改。 这是由 “SESSION_USER” SQL 函数报告的 ID。
(gdb)p SessionUserId
$53 = 1