{"id":6072,"date":"2026-09-28T07:00:00","date_gmt":"2026-09-28T04:00:00","guid":{"rendered":"https:\/\/www.dataplatform.gr\/?p=6072"},"modified":"2026-09-27T20:37:38","modified_gmt":"2026-09-27T17:37:38","slug":"pos-energopoioyme-to-object-session-level-auditing-se-postgresql","status":"publish","type":"post","link":"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/","title":{"rendered":"How to enable Object and Session level Auditing in PostgreSQL"},"content":{"rendered":"<p class=\"wp-block-paragraph\">When you manage production databases, sooner or later the time comes when security and compliance requirements will knock on your door. The question is not whether you will need to record who did what, but how to do it without bringing the Server to its knees, e.g. excluding the application server user. In this article we will see how to properly set up the <strong>pgAudit<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The installation<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We must first download and install the corresponding pgAudit version for the operating system and PostgreSQL version we have, e.g. for RedHat Linux and PostgreSQL 11:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo yum install pgaudit11<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then we go to the file <code>postgresql.conf<\/code> and add its library:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">su postgres\nvi $PGDATA\/postgresql.conf<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>shared_preload_libraries = 'pgaudit'\npgaudit.log_catalog = off\nlog_line_prefix = '%m &#91;%p] %q%u@%d '<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then it wants to restart:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">sudo systemctl restart postgresql-11<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once uploaded, the extension needs to be activated from SQL window:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">CREATE EXTENSION pgaudit;<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Session level auditing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With session level auditing we can monitor any user we want for any action we want (<code>read,write,ddl,misc,all,none<\/code>) universally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If we want to monitor write and ddl for a user we run:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">ALTER ROLE stratos SET pgaudit.log = 'write, ddl';<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If we want to monitor all users but <strong>to exclude the application server user<\/strong> so as not to be filled with useless information:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">ALTER SYSTEM SET pgaudit.log = 'write, ddl';\nSELECT pg_reload_conf();\n\nALTER ROLE app_user SET pgaudit.log = 'none';<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively we can add it to <code>postgresql.conf<\/code>(wants to reload):<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>pgaudit.log = 'write, ddl'<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Object level auditing<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In this case, we have the ability to perform separate auditing per user and per table by creating roles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can create the role we want, e.g. <code>select_auditor<\/code>, give it the right to audit what we want and finally give this role to the users we want:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">CREATE ROLE select_auditor;\n\nGRANT SELECT ON public.customers TO select_auditor;\n\nALTER ROLE stratos SET pgaudit.role = 'select_auditor';\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Because we can only give one role as <code>pgaudit.role<\/code> If we want to give a user two different auditing policies, we associate a master role with the others:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">CREATE ROLE pgaudit_master;\nCREATE ROLE my_select_auditor;\nCREATE ROLE my_update_auditor;\n\nGRANT my_select_auditor TO pgaudit_master;\nGRANT my_update_auditor TO pgaudit_master;\n\nGRANT SELECT ON public.orders TO my_select_auditor;\nGRANT UPDATE, INSERT ON public.orders TO my_update_auditor;\n\nALTER ROLE stratos SET pgaudit.role = 'pgaudit_master';<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly, if we want to do some object level auditing again <strong>excluding the application server user<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">ALTER SYSTEM SET pgaudit.role = 'pgaudit_role';\n\nSELECT pg_reload_conf();<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alternatively we can add it to <code>postgresql.conf<\/code>(wants to reload):<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>pgaudit.role = 'pgaudit_role'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">And after granting the rights we want to request to the role, we exclude the user from the role:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">CREATE ROLE pgaudit_role NOLOGIN;\n\nGRANT UPDATE, DELETE ON public.order_items TO pgaudit_role;\n\nALTER ROLE app_user SET pgaudit.role = ''; <\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How to read auditing logs<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With the following query we can see what has been run, when, by which user, in which table:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">WITH today_log AS (\n    SELECT 'log\/postgresql-' || to_char(now(), 'Dy') || '.log' AS log_file\n),\nraw_lines AS (\n    SELECT \n        line_number,\n        log_line,\n        COUNT(CASE WHEN log_line ~ '^\\d{4}-\\d{2}-\\d{2}' THEN 1 END) OVER (ORDER BY line_number) AS event_id\n    FROM (\n        SELECT line_number, log_line\n        FROM unnest(string_to_array(pg_read_file((SELECT log_file FROM today_log)), e'\\n')) WITH ORDINALITY AS t(log_line, line_number)\n    ) s\n),\ngrouped_events AS (\n    SELECT \n        event_id,\n        MIN(log_line) AS header_line,\n        string_agg(log_line, e'\\n' ORDER BY line_number) AS full_multiline_block\n    FROM raw_lines\n    WHERE event_id > 0\n    GROUP BY event_id\n),\nparsed_events AS (\n    SELECT \n        event_id,\n        header_line,\n        full_multiline_block,\n        ac[1] AS audit_class_val,\n        ct[1] AS command_type_val,\n        COALESCE(\n            NULLIF(split_part(substring(header_line from 'AUDIT:.*'), ',', 7), ''),\n            to_obj[1],\n            'N\/A'\n        ) AS target_obj\n    FROM grouped_events\n    LEFT JOIN LATERAL (\n        SELECT regexp_matches(header_line, 'AUDIT:\\s*([A-Z]+),') \n    ) AS a(ac) ON true\n    LEFT JOIN LATERAL (\n        SELECT regexp_matches(header_line, 'AUDIT:\\s*[^,]+,\\d+,\\d+,[^,]+,([^,]+)')\n    ) AS c(ct) ON true\n    LEFT JOIN LATERAL (\n        SELECT regexp_matches(full_multiline_block, '(?:FROM|INTO|UPDATE|DELETE\\s+FROM)\\s+([a-zA-Z0-9_\\.]+)', 'i')\n    ) AS t(to_obj) ON true\n)\nSELECT \n    substring(header_line from '^([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2})') AS log_time,\n    substring(header_line from '\\] ([^@]+)@') AS user_name,\n    substring(header_line from '@([^ ]+)') AS database_name,\n    audit_class_val AS audit_class,\n    command_type_val AS command_type,\n    target_obj AS target_object,\n    \n    -- \u0395\u0394\u03a9 \u0397 \u0394\u0399\u039f\u03a1\u0398\u03a9\u03a3\u0397: \u03a0\u03b9\u03ac\u03bd\u03b5\u03b9 \u03c4\u03bf query \u03b5\u03af\u03c4\u03b5 \u03b3\u03c1\u03ac\u03c6\u03c4\u03b7\u03ba\u03b5 \u03bc\u03b5 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03b5\u03af\u03c4\u03b5 \u03c7\u03c9\u03c1\u03af\u03c2!\n    rtrim(\n        COALESCE(\n            substring(full_multiline_block from ',\\s*\"([^\"]+)\",\\s*&lt;not logged>'), -- 1. \u03a8\u03ac\u03c7\u03bd\u03b5\u03b9 \u03b1\u03bd \u03ad\u03c7\u03b5\u03b9 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac (multiline \/ \u03bc\u03b5 \u03ba\u03cc\u03bc\u03bc\u03b1\u03c4\u03b1)\n            substring(full_multiline_block from ',\\s*([^\",]+),\\s*&lt;not logged>'),  -- 2. \u03a8\u03ac\u03c7\u03bd\u03b5\u03b9 \u03b1\u03bd \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03b9 \u03b5\u03b9\u03c3\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac (single line)\n            substring(full_multiline_block from 'QUERY:\\s*(.*)$'),                 -- 3. \u03a8\u03ac\u03c7\u03bd\u03b5\u03b9 \u03b3\u03b9\u03b1 Object Audit form\n            header_line                                                            -- 4. Fallback \u03b1\u03bd \u03b1\u03c0\u03bf\u03c4\u03cd\u03c7\u03bf\u03c5\u03bd \u03cc\u03bb\u03b1 \u03c4\u03b1 \u03c0\u03b1\u03c1\u03b1\u03c0\u03ac\u03bd\u03c9\n        ), \n        '\"'\n    ) AS executed_query,\n    \n    full_multiline_block AS full_log_line\n\nFROM parsed_events\nWHERE header_line LIKE '%LOG:  AUDIT:%'\n  AND header_line NOT LIKE '%WITH today_log%'\n  AND header_line NOT LIKE '%pg_read_file%'\nORDER BY log_time DESC;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"492\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2026\/08\/pgaud-02-1024x492.png\" alt=\"\" class=\"wp-image-6073\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2026\/08\/pgaud-02-1024x492.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2026\/08\/pgaud-02-300x144.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2026\/08\/pgaud-02-768x369.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2026\/08\/pgaud-02-18x9.png 18w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2026\/08\/pgaud-02.png 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Log maintenance<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">If the parameter is enabled <code>log_truncate_on_rotation<\/code> it essentially makes us rollover the days we have set in the parameter <code>log_rotation_age<\/code>, if we don&#039;t want this and want to keep the information for more days, we will have to create some mechanism to delete old files.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sources:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/www.postgresql.org\/docs\/current\/\" data-type=\"link\" data-id=\"https:\/\/www.postgresql.org\/docs\/current\/\">PostgreSQL 18.4 Documentation<\/a><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>When you manage production databases, sooner or later the time comes when security and compliance requirements will knock on your door. The question is not whether you will need to record who did what, but how to do it without bringing the Server to its knees, e.g. excluding the application server user. In this [\u2026]<\/p>","protected":false},"author":1,"featured_media":2376,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,123],"tags":[142,29,124,30,176],"class_list":["post-6072","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-postgresql","tag-auditing","tag-databases","tag-postgresql","tag-rdbms","tag-security"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL - DataPlatform.gr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL - DataPlatform.gr\" \/>\n<meta property=\"og:description\" content=\"\u038c\u03c4\u03b1\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03af\u03b6\u03b5\u03c3\u03b1\u03b9 \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ad\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03ad\u03c1\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c1\u03b3\u03ac \u03ae \u03b3\u03c1\u03ae\u03b3\u03bf\u03c1\u03b1 \u03b7 \u03c3\u03c4\u03b9\u03b3\u03bc\u03ae \u03c0\u03bf\u03c5 \u03bf\u03b9 \u03b1\u03c0\u03b1\u03b9\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2 \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03ba\u03b1\u03b9 compliance \u03b8\u03b1 \u03c7\u03c4\u03c5\u03c0\u03ae\u03c3\u03bf\u03c5\u03bd \u03c4\u03b7\u03bd \u03c0\u03cc\u03c1\u03c4\u03b1 \u03c3\u03bf\u03c5. \u03a4\u03bf \u03b5\u03c1\u03ce\u03c4\u03b7\u03bc\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03bd \u03b8\u03b1 \u03c7\u03c1\u03b5\u03b9\u03b1\u03c3\u03c4\u03b5\u03af \u03bd\u03b1 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9\u03c2 \u03c0\u03bf\u03b9\u03bf\u03c2 \u03ad\u03ba\u03b1\u03bd\u03b5 \u03c4\u03b9, \u03b1\u03bb\u03bb\u03ac \u03c0\u03ce\u03c2 \u03b8\u03b1 \u03c4\u03bf \u03ba\u03ac\u03bd\u03b5\u03b9\u03c2 \u03c7\u03c9\u03c1\u03af\u03c2 \u03bd\u03b1 \u03b3\u03bf\u03bd\u03b1\u03c4\u03af\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03bd Server, \u03c0.\u03c7. \u03bd\u03b1 \u03b5\u03be\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c4\u03bf\u03c5 application server. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/\" \/>\n<meta property=\"og:site_name\" content=\"DataPlatform.gr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dataplatform.gr\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-28T04:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/db_postgresql.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Stratos Matzouranis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stratos Matzouranis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/\"},\"author\":{\"name\":\"Stratos Matzouranis\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\"},\"headline\":\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL\",\"datePublished\":\"2026-09-28T04:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/\"},\"wordCount\":53,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/db_postgresql.png\",\"keywords\":[\"Auditing\",\"Databases\",\"PostgreSQL\",\"RDBMS\",\"Security\"],\"articleSection\":[\"Databases\",\"PostgreSQL\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/\",\"name\":\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL - DataPlatform.gr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/db_postgresql.png\",\"datePublished\":\"2026-09-28T04:00:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/db_postgresql.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/db_postgresql.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PostgreSQL\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/postgresql\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"name\":\"dataplatform.gr - Sky is not the limit!\",\"description\":\"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dataplatform.gr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\",\"name\":\"dataplatform.gr\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"width\":322,\"height\":139,\"caption\":\"dataplatform.gr\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dataplatform.gr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dataplatform-gr\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\",\"name\":\"Stratos Matzouranis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"caption\":\"Stratos Matzouranis\"},\"sameAs\":[\"https:\\\/\\\/www.dataplatform.gr\"],\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/en\\\/author\\\/stratos-matzouranis\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL - DataPlatform.gr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/","og_locale":"en_US","og_type":"article","og_title":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL - DataPlatform.gr","og_description":"\u038c\u03c4\u03b1\u03bd \u03b4\u03b9\u03b1\u03c7\u03b5\u03b9\u03c1\u03af\u03b6\u03b5\u03c3\u03b1\u03b9 \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ad\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03ad\u03c1\u03c7\u03b5\u03c4\u03b1\u03b9 \u03b1\u03c1\u03b3\u03ac \u03ae \u03b3\u03c1\u03ae\u03b3\u03bf\u03c1\u03b1 \u03b7 \u03c3\u03c4\u03b9\u03b3\u03bc\u03ae \u03c0\u03bf\u03c5 \u03bf\u03b9 \u03b1\u03c0\u03b1\u03b9\u03c4\u03ae\u03c3\u03b5\u03b9\u03c2 \u03b1\u03c3\u03c6\u03b1\u03bb\u03b5\u03af\u03b1\u03c2 \u03ba\u03b1\u03b9 compliance \u03b8\u03b1 \u03c7\u03c4\u03c5\u03c0\u03ae\u03c3\u03bf\u03c5\u03bd \u03c4\u03b7\u03bd \u03c0\u03cc\u03c1\u03c4\u03b1 \u03c3\u03bf\u03c5. \u03a4\u03bf \u03b5\u03c1\u03ce\u03c4\u03b7\u03bc\u03b1 \u03b4\u03b5\u03bd \u03b5\u03af\u03bd\u03b1\u03b9 \u03b1\u03bd \u03b8\u03b1 \u03c7\u03c1\u03b5\u03b9\u03b1\u03c3\u03c4\u03b5\u03af \u03bd\u03b1 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03ac\u03c8\u03b5\u03b9\u03c2 \u03c0\u03bf\u03b9\u03bf\u03c2 \u03ad\u03ba\u03b1\u03bd\u03b5 \u03c4\u03b9, \u03b1\u03bb\u03bb\u03ac \u03c0\u03ce\u03c2 \u03b8\u03b1 \u03c4\u03bf \u03ba\u03ac\u03bd\u03b5\u03b9\u03c2 \u03c7\u03c9\u03c1\u03af\u03c2 \u03bd\u03b1 \u03b3\u03bf\u03bd\u03b1\u03c4\u03af\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03bd Server, \u03c0.\u03c7. \u03bd\u03b1 \u03b5\u03be\u03b1\u03b9\u03c1\u03ad\u03c3\u03b5\u03b9\u03c2 \u03c4\u03bf\u03bd \u03c7\u03c1\u03ae\u03c3\u03c4\u03b7 \u03c4\u03bf\u03c5 application server. \u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf [&hellip;]","og_url":"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/","og_site_name":"DataPlatform.gr","article_publisher":"https:\/\/www.facebook.com\/dataplatform.gr\/","article_published_time":"2026-09-28T04:00:00+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/db_postgresql.png","type":"image\/png"}],"author":"Stratos Matzouranis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stratos Matzouranis","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#article","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/"},"author":{"name":"Stratos Matzouranis","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf"},"headline":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL","datePublished":"2026-09-28T04:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/"},"wordCount":53,"commentCount":0,"publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/db_postgresql.png","keywords":["Auditing","Databases","PostgreSQL","RDBMS","Security"],"articleSection":["Databases","PostgreSQL"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/","url":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/","name":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL - DataPlatform.gr","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#primaryimage"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/db_postgresql.png","datePublished":"2026-09-28T04:00:00+00:00","breadcrumb":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#primaryimage","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/db_postgresql.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/10\/db_postgresql.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-object-session-level-auditing-se-postgresql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae","item":"https:\/\/www.dataplatform.gr\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/www.dataplatform.gr\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"PostgreSQL","item":"https:\/\/www.dataplatform.gr\/category\/databases\/postgresql\/"},{"@type":"ListItem","position":4,"name":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf Object \u03ba\u03b1\u03b9 Session level Auditing \u03c3\u03b5 PostgreSQL"}]},{"@type":"WebSite","@id":"https:\/\/www.dataplatform.gr\/#website","url":"https:\/\/www.dataplatform.gr\/","name":"dataplatform.gr - Sky is not the limit!","description":"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.","publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dataplatform.gr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dataplatform.gr\/#organization","name":"dataplatform.gr","url":"https:\/\/www.dataplatform.gr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","width":322,"height":139,"caption":"dataplatform.gr"},"image":{"@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dataplatform.gr\/","https:\/\/www.linkedin.com\/company\/dataplatform-gr\/"]},{"@type":"Person","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf","name":"Stratos Matzouranis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","caption":"Stratos Matzouranis"},"sameAs":["https:\/\/www.dataplatform.gr"],"url":"https:\/\/www.dataplatform.gr\/en\/author\/stratos-matzouranis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/6072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/comments?post=6072"}],"version-history":[{"count":5,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/6072\/revisions"}],"predecessor-version":[{"id":6208,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/6072\/revisions\/6208"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media\/2376"}],"wp:attachment":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media?parent=6072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/categories?post=6072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/tags?post=6072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}