43.6. Правила и статус команд
Сервер Postgres Pro возвращает строку состояния команды, например, INSERT 149592 1
, для каждой получаемой команды. Это довольно прозрачно, когда не задействуются правила, но что произойдёт, если правила перезапишут запрос?
Правила влияют на состояния команды следующим образом:
Если с запросом не связано безусловное правило
INSTEAD
, то выполняется заданный исходный запрос и его статус выдаётся как обычно. (Но если определены какие-то условные правилаINSTEAD
, к исходному запросу добавляется условие, обратное их условиям применения. Это может повлиять на число обрабатываемых строк и выводимый статус команды.)Если с запросом связано безусловное правило
INSTEAD
, исходный запрос не выполняется вовсе. В этом случае сервер возвратит статус команды от последнего запроса, вставленного правиломINSTEAD
(условным или безусловным), и тип команды исходного запроса (INSERT
,UPDATE
илиDELETE
). Если правила не добавили подходящего запроса, в возвращённом статусе команды показывается исходный тип запроса и нули вместо количества строк и OID.
Программист может добиться, чтобы статус команды во втором случае устанавливало нужное правило INSTEAD
, назначив ему имя, стоящее по алфавиту после других активных правил, чтобы это правило применялось последним.
52.96. pg_user_mappings
The view pg_user_mappings
provides access to information about user mappings. This is essentially a publicly readable view of pg_user_mapping
that leaves out the options field if the user has no rights to use it.
Table 52.97. pg_user_mappings
Columns
Column Type Description |
---|
OID of the user mapping |
The OID of the foreign server that contains this mapping |
Name of the foreign server |
OID of the local role being mapped, or zero if the user mapping is public |
Name of the local user to be mapped |
User mapping specific options, as “keyword=value” strings |
To protect password information stored as a user mapping option, the umoptions
column will read as null unless one of the following applies:
current user is the user being mapped, and owns the server or holds
USAGE
privilege on itcurrent user is the server owner and mapping is for
PUBLIC
current user is a superuser