Представления#
Представления парольных политик#
pp_password_detailed— для мониторинга состояния ролей;pp_password— для просмотра кеша парольных политик.
Примечание:
В случае обращения к выводу
viewпри отключенных парольных политиках (password_policies_enable = 'off') вернется пустая таблица, а также будет выведено предупреждение (WARNING).
pp_password_detailed#
Представление для мониторинга состояния ролей.
Название поля |
Описание |
Пример вывода |
Источник |
|---|---|---|---|
|
ID пользователя |
|
Данные пользователя, хранящиеся в кеше |
|
Счетчик неудачных аутентификаций |
|
Данные пользователя, хранящиеся в кеше |
|
Метка времени последней неудачной аутентификации |
|
Данные пользователя, хранящиеся в кеше |
|
Счетчик входов после истечения времени жизни пароля |
|
Данные пользователя, хранящиеся в кеше |
|
Метка времени последней удачной аутентификации |
Данные пользователя, хранящиеся в кеше |
|
|
Метка времени создания пароля |
|
Данные пользователя, хранящиеся в таблице |
|
Метка времени разблокировки |
Данные пользователя, хранящиеся в кеше |
|
|
Является ли данный пароль транспортным |
|
|
|
Доступна ли аутентификация |
|
|
|
Заблокирован ли пользователь |
|
|
|
Проверка значений политики для проверки времени жизни пароля |
|
Результат функций проверки политик перед самой проверкой. Сначала проверяется, что все необходимые политики заданы (не |
|
Проверка значений политики для проверки времени жизни пароля (текстовый вывод) |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка значений политики для блокировки по количеству неудачных аутентификаций |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка значений политики для блокировки по количеству неудачных аутентификаций (текстовый вывод) |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка значений политики для проверки блока по времени неактивности |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка значений политики для проверки блока по времени неактивности (текстовый вывод) |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка значений политики для проверки нового пароля |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка значений политики для проверки нового пароля (текстовый вывод) |
|
Результат функций проверки политик перед непосредственно проверкой |
|
Проверка блока по количеству неудачных аутентификаций |
|
Результат проверок аутентификации (что увидит пользователь, если попробует войти с правильными данными аутентификации) |
|
Проверка блока по количеству неудачных аутентификаций (текстовый вывод) |
|
Результат проверок аутентификации |
|
Проверка блока по неактивности |
|
Результат проверок аутентификации |
|
Проверка блока по неактивности (текстовый вывод) |
|
Результат проверок аутентификации |
|
Проверка блока по времени жизни пароля |
|
Результат проверок аутентификации |
|
Проверка блока по времени жизни пароля (текстовый вывод) |
|
Результат проверок аутентификации |
|
Проверка значений политики для проверки транспортного пароля |
|
Результат проверки транспортного пароля |
|
Проверка значений политики для проверки транспортного пароля (текстовый вывод) |
|
Результат проверки транспортного пароля |
|
Проверка времени жизни транспортного пароля |
|
Результат проверки транспортного пароля |
|
Проверка времени жизни транспортного пароля (текстовый вывод) |
|
Результат проверки транспортного пароля |
DDL
View "pg_catalog.pp_password_detailed"
Column | Type | Collation | Nullable | Default | Storage | Description
------------------------------------------+--------------------------+-----------+----------+---------+----------+-------------
roloid | regrole | | | | plain |
failcounter | integer | | | | plain |
lastfailtime | timestamp with time zone | | | | plain |
gracesuccesscounter | integer | | | | plain |
lastsuccesstime | timestamp with time zone | | | | plain |
createtime | timestamp with time zone | | | | plain |
unblockexpirytime | timestamp with time zone | | | | plain |
istransportpassword | boolean | | | | plain |
is_auth_available | boolean | | | | plain |
is_blocked | boolean | | | | plain |
check_policy_for_max_age | boolean | | | | plain |
check_policy_for_max_age_text | text | | | | extended |
check_policy_for_lockout | boolean | | | | plain |
check_policy_for_lockout_text | text | | | | extended |
check_policy_for_inactivity_check | boolean | | | | plain |
check_policy_for_inactivity_check_text | text | | | | extended |
check_policy_for_password_check | boolean | | | | plain |
check_policy_for_password_check_text | text | | | | extended |
check_lockout | boolean | | | | plain |
check_lockout_text | text | | | | extended |
check_inactivity | boolean | | | | plain |
check_inactivity_text | text | | | | extended |
check_password_age | boolean | | | | plain |
check_password_age_text | text | | | | extended |
check_policy_for_transport_password | boolean | | | | plain |
check_policy_for_transport_password_text | text | | | | extended |
check_transport_password_life_time | boolean | | | | plain |
check_transport_password_life_time_text | text | | | | extended |
View definition:
SELECT pp.roleid AS roloid,
pp.fail_counter AS failcounter,
pp.last_fail_time AS lastfailtime,
pp.grace_success_counter AS gracesuccesscounter,
pp.last_success_time AS lastsuccesstime,
pp.create_time AS createtime,
pp.unblock_expiry_time AS unblockexpirytime,
pp.is_transport_password AS istransportpassword,
pp.is_auth_available,
pp.is_blocked,
pp.check_policy_for_max_age,
pp.check_policy_for_max_age_text,
pp.check_policy_for_lockout,
pp.check_policy_for_lockout_text,
pp.check_policy_for_inactivity_check,
pp.check_policy_for_inactivity_check_text,
pp.check_policy_for_password_check,
pp.check_policy_for_password_check_text,
pp.check_lockout,
pp.check_lockout_text,
pp.check_inactivity,
pp.check_inactivity_text,
pp.check_password_age,
pp.check_password_age_text,
pp.check_policy_for_transport_password,
pp.check_policy_for_transport_password_text,
pp.check_transport_password_life_time,
pp.check_transport_password_life_time_text
FROM pp_check_role_all() pp(roleid, fail_counter, last_fail_time, grace_success_counter, last_success_time, create_time, unblock_expiry_time, is_transport_password, is_aut
h_available, is_blocked, check_policy_for_max_age, check_policy_for_max_age_text, check_policy_for_lockout, check_policy_for_lockout_text, check_policy_for_inactivity_check,
check_policy_for_inactivity_check_text, check_policy_for_password_check, check_policy_for_password_check_text, check_lockout, check_lockout_text, check_inactivity, check_inac
tivity_text, check_password_age, check_password_age_text, check_policy_for_transport_password, check_policy_for_transport_password_text, check_transport_password_life_time, c
heck_transport_password_life_time_text);
pp_password#
Представление для просмотра кеша парольных политик.
Название поля |
Описание |
Пример вывода |
Источник |
|---|---|---|---|
|
ID пользователя |
|
Данные пользователя, хранящиеся в кеше |
|
Счетчик неудачных аутентификаций |
|
Данные пользователя, хранящиеся в кеше |
|
Временная метка последней неудачной аутентификации |
|
Данные пользователя, хранящиеся в кеше |
|
Счетчик входов после истечения времени жизни пароля |
|
Данные пользователя, хранящиеся в кеше |
|
Временная метка последней удачной аутентификации |
Данные пользователя, хранящиеся в кеше |
|
|
Метка времени создания пароля |
|
Данные пользователя, хранящиеся в таблице |
|
Метка времени разблокировки |
Данные пользователя, хранящиеся в кеше |
|
|
Является ли данный пароль транспортным |
|
DDL
View "pg_catalog.pp_password"
Column | Type | Collation | Nullable | Default | Storage | Description
---------------------+--------------------------+-----------+----------+---------+---------+-------------
roloid | regrole | | | | plain |
failcounter | integer | | | | plain |
lastfailtime | timestamp with time zone | | | | plain |
gracesuccesscounter | integer | | | | plain |
lastsuccesstime | timestamp with time zone | | | | plain |
createtime | timestamp with time zone | | | | plain |
unblockexpirytime | timestamp with time zone | | | | plain |
istransportpassword | boolean | | | | plain |
View definition:
SELECT pp.roleid AS roloid,
pp.fail_counter AS failcounter,
pp.last_fail_time AS lastfailtime,
pp.grace_success_counter AS gracesuccesscounter,
pp.last_success_time AS lastsuccesstime,
pp.create_time AS createtime,
pp.unblock_expiry_time AS unblockexpirytime,
pp.is_transport_password AS istransportpassword
FROM get_password_policy_profile() pp(roleid, fail_counter, last_fail_time, grace_success_counter, last_success_time, create_time, unblock_expiry_time, is_transport_password);
Представления обфускации данных#
Представления предоставляемые функциональностью:
Объект |
Аргументы, атрибуты |
Возвращаемое значение |
Описание |
|---|---|---|---|
|
- |
|
Список автоматически созданных правил маскировки, при использовании функции |
|
- |
|
Список ролей экземпляра, дополненный признаком маскирования роли |
|
- |
|
Список правил маскировки |
|
- |
|
Список правил маскировки ( |
anon.pg_identifiers#
DDL
View "anon.pg_identifiers"
Column | Type | Collation | Nullable | Default | Storage | Description
---------------------+---------+-----------+----------+---------+----------+-------------
attrelid | oid | | | | plain |
attnum | integer | | | | plain |
relname | name | | | | plain |
attname | name | | | | plain |
format_type | text | | | | extended |
col_description | text | C | | | extended |
indirect_identifier | boolean | | | | plain |
priority | integer | | | | plain |
View definition:
WITH const AS (
SELECT '%(quasi|indirect) identifier%'::text AS pattern_indirect_identifier
)
SELECT sl.objoid AS attrelid,
sl.objsubid AS attnum,
c.relname,
a.attname,
format_type(a.atttypid, a.atttypmod) AS format_type,
sl.label AS col_description,
lower(sl.label) ~ similar_to_escape(k.pattern_indirect_identifier, '#'::text) AS indirect_identifier,
100 AS priority
FROM const k,
pg_seclabel sl
JOIN pg_class c ON sl.classoid = c.tableoid AND sl.objoid = c.oid
JOIN pg_attribute a ON a.attrelid = c.oid AND sl.objsubid = a.attnum
WHERE a.attnum > 0 AND NOT a.attisdropped AND lower(sl.label) ~ similar_to_escape(k.pattern_indirect_identifier, '#'::text) AND sl.provider = current_setting('anon.k_anonymity_provider'::text);
anon.pg_masked_roles#
DDL
View "anon.pg_masked_roles"
Column | Type | Collation | Nullable | Default | Storage | Description
---------------------+--------------------------+-----------+----------+---------+----------+-------------
rolname | name | | | | plain |
rolsuper | boolean | | | | plain |
rolinherit | boolean | | | | plain |
rolcreaterole | boolean | | | | plain |
rolcreatedb | boolean | | | | plain |
rolcanlogin | boolean | | | | plain |
rolreplication | boolean | | | | plain |
rolconnlimit | integer | | | | plain |
rolpassword | text | | | | extended |
rolvaliduntil | timestamp with time zone | | | | plain |
rolbypassrls | boolean | | | | plain |
rolconfig | text[] | C | | | extended |
oid | oid | | | | plain |
grace_period | interval | | | | plain |
grace_period_source | text | | | | extended |
grace_time_left | interval | | | | plain |
rolprevpassword | text | | | | extended |
hasmask | boolean | | | | plain |
View definition:
SELECT r.rolname,
r.rolsuper,
r.rolinherit,
r.rolcreaterole,
r.rolcreatedb,
r.rolcanlogin,
r.rolreplication,
r.rolconnlimit,
r.rolpassword,
r.rolvaliduntil,
r.rolbypassrls,
r.rolconfig,
r.oid,
r.grace_period,
r.grace_period_source,
r.grace_time_left,
r.rolprevpassword,
anon.hasmask(r.oid::regrole) AS hasmask
FROM pg_roles r;
anon.pg_masking_rules#
DDL
View "anon.pg_masking_rules"
Column | Type | Collation | Nullable | Default | Storage | Description
------------------+--------------+-----------+----------+---------+----------+-------------
attrelid | oid | | | | plain |
attnum | integer | | | | plain |
relnamespace | regnamespace | | | | plain |
relname | name | | | | plain |
attname | name | | | | plain |
format_type | text | | | | extended |
col_description | text | C | | | extended |
masking_function | text | C | | | extended |
masking_value | text | C | | | extended |
priority | integer | | | | plain |
masking_filter | text | C | | | extended |
trusted_schema | boolean | | | | plain |
View definition:
WITH const AS (
SELECT '%MASKED +WITH +FUNCTION +#"%#(%#)#"%'::text AS pattern_mask_column_function,
'MASKED +WITH +VALUE +#"%#" ?'::text AS pattern_mask_column_value
), rules_from_default AS (
SELECT c.oid AS attrelid,
a.attnum,
c.relnamespace::regnamespace AS relnamespace,
c.relname,
a.attname,
format_type(a.atttypid, a.atttypmod) AS format_type,
NULL::text AS col_description,
NULL::text AS masking_function,
anon.masking_value_for_column(c.oid, a.attnum::integer, 'anon'::text) AS masking_value,
0 AS priority
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
JOIN pg_attribute a ON a.attrelid = c.oid
LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attnum > 0 AND (n.nspname <> ALL (ARRAY['information_schema'::name, 'pg_catalog'::name, 'pg_toast'::name, 'anon'::name])) AND NOT a.attisdropped AND current_setting('anon.privacy_by_default'::text)::boolean
), rules_from_seclabels AS (
SELECT sl.objoid AS attrelid,
sl.objsubid AS attnum,
c.relnamespace::regnamespace AS relnamespace,
c.relname,
a.attname,
format_type(a.atttypid, a.atttypmod) AS format_type,
sl.label AS col_description,
TRIM(BOTH FROM SUBSTRING(sl.label SIMILAR k.pattern_mask_column_function ESCAPE '#'::text)) AS masking_function,
TRIM(BOTH FROM SUBSTRING(sl.label SIMILAR k.pattern_mask_column_value ESCAPE '#'::text)) AS masking_value,
100 AS priority
FROM const k,
pg_seclabel sl
JOIN pg_class c ON sl.classoid = c.tableoid AND sl.objoid = c.oid
JOIN pg_attribute a ON a.attrelid = c.oid AND sl.objsubid = a.attnum
WHERE a.attnum > 0 AND NOT a.attisdropped AND (sl.label ~ similar_to_escape(k.pattern_mask_column_function, '#'::text) OR sl.label ~ similar_to_escape(k.pattern_mask_column_value, '#'::text)) AND sl.provider = 'anon'::text
), rules_from_all AS (
SELECT rules_from_default.attrelid,
rules_from_default.attnum,
rules_from_default.relnamespace,
rules_from_default.relname,
rules_from_default.attname,
rules_from_default.format_type,
rules_from_default.col_description,
rules_from_default.masking_function,
rules_from_default.masking_value,
rules_from_default.priority
FROM rules_from_default
UNION
SELECT rules_from_seclabels.attrelid,
rules_from_seclabels.attnum,
rules_from_seclabels.relnamespace,
rules_from_seclabels.relname,
rules_from_seclabels.attname,
rules_from_seclabels.format_type,
rules_from_seclabels.col_description,
rules_from_seclabels.masking_function,
rules_from_seclabels.masking_value,
rules_from_seclabels.priority
FROM rules_from_seclabels
)
SELECT DISTINCT ON (rules_from_all.attrelid, rules_from_all.attnum) rules_from_all.attrelid,
rules_from_all.attnum,
rules_from_all.relnamespace,
rules_from_all.relname,
rules_from_all.attname,
rules_from_all.format_type,
rules_from_all.col_description,
rules_from_all.masking_function,
rules_from_all.masking_value,
rules_from_all.priority,
COALESCE(rules_from_all.masking_function, rules_from_all.masking_value) AS masking_filter,
( SELECT count(sl.label) > 0 AND bool_and(sl.label = 'TRUSTED'::text)
FROM pg_seclabel sl,
anon.get_function_schema(rules_from_all.masking_function) f(schema)
WHERE f.schema <> ''::text AND sl.objoid = f.schema::regnamespace::oid) AS trusted_schema
FROM rules_from_all
ORDER BY rules_from_all.attrelid, rules_from_all.attnum, rules_from_all.priority DESC;
anon.pg_masks#
DDL
View "anon.pg_masks"
Column | Type | Collation | Nullable | Default | Storage | Description
------------------+--------------+-----------+----------+---------+----------+-------------
attrelid | oid | | | | plain |
attnum | integer | | | | plain |
relnamespace | regnamespace | | | | plain |
relname | name | | | | plain |
attname | name | | | | plain |
format_type | text | | | | extended |
col_description | text | C | | | extended |
masking_function | text | C | | | extended |
masking_value | text | C | | | extended |
priority | integer | | | | plain |
masking_filter | text | C | | | extended |
trusted_schema | boolean | | | | plain |
View definition:
SELECT pg_masking_rules.attrelid,
pg_masking_rules.attnum,
pg_masking_rules.relnamespace,
pg_masking_rules.relname,
pg_masking_rules.attname,
pg_masking_rules.format_type,
pg_masking_rules.col_description,
pg_masking_rules.masking_function,
pg_masking_rules.masking_value,
pg_masking_rules.priority,
pg_masking_rules.masking_filter,
pg_masking_rules.trusted_schema
FROM anon.pg_masking_rules;