-- SET commands fire both the ProcessUtility_hook and the -- object_access_hook_str. Since the auditing GUC starts out false, we miss the -- initial "attempting" audit message from the ProcessUtility_hook, but we -- should thereafter see the audit messages LOAD 'test_oat_hooks'; SET test_oat_hooks.audit = true; NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.audit] NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.audit] NOTICE: in process utility: superuser finished set -- Create objects for use in the test CREATE USER regress_test_user; NOTICE: in process utility: superuser attempting CreateRoleStmt NOTICE: in object access: superuser attempting create (subId=0) [explicit] NOTICE: in object access: superuser finished create (subId=0) [explicit] NOTICE: in process utility: superuser finished CreateRoleStmt CREATE TABLE regress_test_table (t text); NOTICE: in process utility: superuser attempting CreateStmt NOTICE: in object access: superuser attempting namespace search (subId=0) [no report on violation, allowed] LINE 1: CREATE TABLE regress_test_table (t text); ^ NOTICE: in object access: superuser finished namespace search (subId=0) [no report on violation, allowed] LINE 1: CREATE TABLE regress_test_table (t text); ^ NOTICE: in object access: superuser attempting create (subId=0) [explicit] NOTICE: in object access: superuser finished create (subId=0) [explicit] NOTICE: in object access: superuser attempting create (subId=0) [explicit] NOTICE: in object access: superuser finished create (subId=0) [explicit] NOTICE: in object access: superuser attempting create (subId=0) [explicit] NOTICE: in object access: superuser finished create (subId=0) [explicit] NOTICE: in object access: superuser attempting create (subId=0) [internal] NOTICE: in object access: superuser finished create (subId=0) [internal] NOTICE: in object access: superuser attempting create (subId=0) [internal] NOTICE: in object access: superuser finished create (subId=0) [internal] NOTICE: in process utility: superuser finished CreateStmt GRANT SELECT ON Table regress_test_table TO public; NOTICE: in process utility: superuser attempting GrantStmt NOTICE: in process utility: superuser finished GrantStmt CREATE FUNCTION regress_test_func (t text) RETURNS text AS $$ SELECT $1; $$ LANGUAGE sql; NOTICE: in process utility: superuser attempting CreateFunctionStmt NOTICE: in object access: superuser attempting create (subId=0) [explicit] NOTICE: in object access: superuser finished create (subId=0) [explicit] NOTICE: in process utility: superuser finished CreateFunctionStmt GRANT EXECUTE ON FUNCTION regress_test_func (text) TO public; NOTICE: in process utility: superuser attempting GrantStmt NOTICE: in process utility: superuser finished GrantStmt -- Do a few things as superuser SELECT * FROM regress_test_table; NOTICE: in executor check perms: superuser attempting execute NOTICE: in executor check perms: superuser finished execute t --- (0 rows) SELECT regress_test_func('arg'); NOTICE: in executor check perms: superuser attempting execute NOTICE: in executor check perms: superuser finished execute regress_test_func ------------------- arg (1 row) SET work_mem = 8192; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (set) [work_mem] NOTICE: in process utility: superuser finished set RESET work_mem; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (set) [work_mem] NOTICE: in process utility: superuser finished set ALTER SYSTEM SET work_mem = 8192; NOTICE: in process utility: superuser attempting alter system NOTICE: in object_access_hook_str: superuser attempting alter (alter system set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (alter system set) [work_mem] NOTICE: in process utility: superuser finished alter system ALTER SYSTEM RESET work_mem; NOTICE: in process utility: superuser attempting alter system NOTICE: in object_access_hook_str: superuser attempting alter (alter system set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (alter system set) [work_mem] NOTICE: in process utility: superuser finished alter system -- Do those same things as non-superuser SET SESSION AUTHORIZATION regress_test_user; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: non-superuser attempting alter (set) [session_authorization] NOTICE: in object_access_hook_str: non-superuser finished alter (set) [session_authorization] NOTICE: in process utility: non-superuser finished set SELECT * FROM regress_test_table; NOTICE: in object access: non-superuser attempting namespace search (subId=0) [no report on violation, allowed] LINE 1: SELECT * FROM regress_test_table; ^ NOTICE: in object access: non-superuser finished namespace search (subId=0) [no report on violation, allowed] LINE 1: SELECT * FROM regress_test_table; ^ NOTICE: in executor check perms: non-superuser attempting execute NOTICE: in executor check perms: non-superuser finished execute t --- (0 rows) SELECT regress_test_func('arg'); NOTICE: in executor check perms: non-superuser attempting execute NOTICE: in executor check perms: non-superuser finished execute regress_test_func ------------------- arg (1 row) SET work_mem = 8192; NOTICE: in process utility: non-superuser attempting set NOTICE: in object_access_hook_str: non-superuser attempting alter (set) [work_mem] NOTICE: in object_access_hook_str: non-superuser finished alter (set) [work_mem] NOTICE: in process utility: non-superuser finished set RESET work_mem; NOTICE: in process utility: non-superuser attempting set NOTICE: in object_access_hook_str: non-superuser attempting alter (set) [work_mem] NOTICE: in object_access_hook_str: non-superuser finished alter (set) [work_mem] NOTICE: in process utility: non-superuser finished set ALTER SYSTEM SET work_mem = 8192; NOTICE: in process utility: non-superuser attempting alter system ERROR: must be superuser to execute ALTER SYSTEM command ALTER SYSTEM RESET work_mem; NOTICE: in process utility: non-superuser attempting alter system ERROR: must be superuser to execute ALTER SYSTEM command RESET SESSION AUTHORIZATION; NOTICE: in process utility: non-superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [session_authorization] NOTICE: in object_access_hook_str: superuser finished alter (set) [session_authorization] NOTICE: in process utility: superuser finished set -- Turn off non-superuser permissions SET test_oat_hooks.deny_set_variable = true; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.deny_set_variable] NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.deny_set_variable] NOTICE: in process utility: superuser finished set SET test_oat_hooks.deny_alter_system = true; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.deny_alter_system] NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.deny_alter_system] NOTICE: in process utility: superuser finished set SET test_oat_hooks.deny_object_access = true; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.deny_object_access] NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.deny_object_access] NOTICE: in process utility: superuser finished set SET test_oat_hooks.deny_exec_perms = true; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.deny_exec_perms] NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.deny_exec_perms] NOTICE: in process utility: superuser finished set SET test_oat_hooks.deny_utility_commands = true; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [test_oat_hooks.deny_utility_commands] NOTICE: in object_access_hook_str: superuser finished alter (set) [test_oat_hooks.deny_utility_commands] NOTICE: in process utility: superuser finished set -- Try again as non-superuser with permissions denied SET SESSION AUTHORIZATION regress_test_user; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: non-superuser attempting alter (set) [session_authorization] ERROR: permission denied: set session_authorization SELECT * FROM regress_test_table; NOTICE: in object access: superuser attempting namespace search (subId=0) [no report on violation, allowed] LINE 1: SELECT * FROM regress_test_table; ^ NOTICE: in object access: superuser finished namespace search (subId=0) [no report on violation, allowed] LINE 1: SELECT * FROM regress_test_table; ^ NOTICE: in executor check perms: superuser attempting execute NOTICE: in executor check perms: superuser finished execute t --- (0 rows) SELECT regress_test_func('arg'); NOTICE: in executor check perms: superuser attempting execute NOTICE: in executor check perms: superuser finished execute regress_test_func ------------------- arg (1 row) SET work_mem = 8192; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (set) [work_mem] NOTICE: in process utility: superuser finished set RESET work_mem; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (set) [work_mem] NOTICE: in process utility: superuser finished set ALTER SYSTEM SET work_mem = 8192; NOTICE: in process utility: superuser attempting alter system NOTICE: in object_access_hook_str: superuser attempting alter (alter system set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (alter system set) [work_mem] NOTICE: in process utility: superuser finished alter system ALTER SYSTEM RESET work_mem; NOTICE: in process utility: superuser attempting alter system NOTICE: in object_access_hook_str: superuser attempting alter (alter system set) [work_mem] NOTICE: in object_access_hook_str: superuser finished alter (alter system set) [work_mem] NOTICE: in process utility: superuser finished alter system RESET SESSION AUTHORIZATION; NOTICE: in process utility: superuser attempting set NOTICE: in object_access_hook_str: superuser attempting alter (set) [session_authorization] NOTICE: in object_access_hook_str: superuser finished alter (set) [session_authorization] NOTICE: in process utility: superuser finished set SET test_oat_hooks.audit = false; NOTICE: in process utility: superuser attempting set