{"id":14766,"date":"2020-10-05T14:07:59","date_gmt":"2020-10-05T12:07:59","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/"},"modified":"2020-10-05T14:07:59","modified_gmt":"2020-10-05T12:07:59","slug":"getting-started-with-exasol-sessions-and-auditing","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/","title":{"rendered":"Getting started with Exasol \u2013 Sessions and auditing"},"content":{"rendered":"<p>This is the fourth post in the series about Exasol and this time it is about sessions and auditing. If you are interested in the previous posts you can find them here:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-setting-up-an-environment\/\" target=\"_blank\" rel=\"noopener noreferrer\">Getting started with Exasol \u2013 Setting up an environment<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-loading-data-from-postgresql\/\" target=\"_blank\" rel=\"noopener noreferrer\">Getting started with Exasol \u2013 Loading data from PostgreSQL<\/a><\/li>\n<li><a href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-some-words-about-indexes-and-transactions\/\" target=\"_blank\" rel=\"noopener noreferrer\">Getting started with Exasol \u2013 Some words about indexes and transactions<\/a><\/li>\n<p><!--more--><\/p>\n<p>For looking at the current sessions in Exasol there is exa_dba_sessions:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; col column_name for a30;\nCOLUMN   column_name ON\nFORMAT   a30\nSQL_EXA&gt; col sql_type for a20;\nCOLUMN   sql_type ON\nFORMAT   a20\nSQL_EXA&gt; desc exa_dba_sessions;\nEXA: desc exa_dba_sessions;\n\nCOLUMN_NAME                    SQL_TYPE             NULLABLE DISTRIBUTION_KEY PARTITION_KEY   \n------------------------------ -------------------- -------- ---------------- ----------------\nSESSION_ID                     DECIMAL(20,0)                                                  \nUSER_NAME                      VARCHAR(128) UTF8                                              \nEFFECTIVE_USER                 VARCHAR(128) UTF8                                              \nSTATUS                         VARCHAR(30) UTF8                                               \nCOMMAND_NAME                   VARCHAR(40) UTF8                                               \nSTMT_ID                        DECIMAL(9,0)                                                   \nDURATION                       VARCHAR(20) UTF8                                               \nQUERY_TIMEOUT                  DECIMAL(6,0)                                                   \nACTIVITY                       VARCHAR(100) UTF8                                              \nTEMP_DB_RAM                    DECIMAL(10,1)                                                  \nPERSISTENT_DB_RAM              DECIMAL(10,1)                                                  \nLOGIN_TIME                     TIMESTAMP                                                      \nCLIENT                         VARCHAR(100) UTF8                                              \nDRIVER                         VARCHAR(100) UTF8                                              \nENCRYPTED                      BOOLEAN                                                        \nHOST                           VARCHAR(100) UTF8                                              \nOS_USER                        VARCHAR(40) UTF8                                               \nOS_NAME                        VARCHAR(100) UTF8                                              \nSCOPE_SCHEMA                   VARCHAR(128) UTF8                                              \nCONSUMER_GROUP                 VARCHAR(128) UTF8                                              \nNICE                           BOOLEAN                                                        \nRESOURCES                      DECIMAL(3,0)                                                   \nSQL_TEXT                       VARCHAR(2000000) UTF8                                  \n<\/pre>\n<p>As you might remember from the previous posts there is no parameter for controlling the amount of concurrent sessions in Exasol:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; col parameter_name for a30;\nCOLUMN   parameter_name ON\nFORMAT   a30\nSQL_EXA&gt; col session_value for a30;\nCOLUMN   session_value ON\nFORMAT   a30\nSQL_EXA&gt; col system_value for a30;\nCOLUMN   system_value ON\nFORMAT   a30\nSQL_EXA&gt; select * from exa_parameters where parameter_name like '%session%' or parameter_name like '%connection%';\nEXA: select * from exa_parameters where parameter_name like '%session%' or ...\n\nPARAMETER_NAME                 SESSION_VALUE                  SYSTEM_VALUE                  \n------------------------------ ------------------------------ ------------------------------\n\n0 rows in resultset.\n<\/pre>\n<p>There is a limit of 100 concurrent active sessions, but that does not mean that there cannot be more sessions if they are idle. Looking at the current sessions, only my own session is doing something (or just did something):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; select user_name, effective_user,status,sql_text from exa_dba_sessions;\nEXA: select user_name, effective_user,status,sql_text from exa_dba_sessions...\n\nUSER_NAME                      EFFECTIVE_USER                 STATUS                         SQL_TEXT                      \n------------------------------ ------------------------------ ------------------------------ ------------------------------\nSYS                            SYS                            IDLE                                                         \nSYS                            SYS                            EXECUTE SQL                    select user_name, effective_us\n                                                                                             er,status,sql_text from exa_db\n                                                                                             a_sessions;                   \nSYS                            SYS                            IDLE                                                         \nSYS                            SYS                            IDLE                                                         \n\n4 rows in resultset.\n<\/pre>\n<p>Once the 100 active session limit is hit there is a queue of another hundreds slots for sessions (active but blocked session slots) that need to wait for other sessions to commit or rollback. Using the example from the previous post we should be able to simulate what happens, when we reach one of those limits. In my session I am creating a table, insert some data, commit and then do an update without committing. That will block other sessions if they try to do something like this:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\n-- first session\nSQL_EXA&gt; set autocommit off;\nSQL_EXA&gt; create table tt ( a int );\nEXA: create table tt ( a int );\n\nRows affected: 0\n\nSQL_EXA&gt; insert into tt values (1);\nEXA: insert into tt values (1);\n\nRows affected: 1\n\nSQL_EXA&gt; commit;\nEXA: commit;\n\nRows affected: 0\n\nSQL_EXA&gt; update tt set a = 2 where a = 1;\nEXA: update tt set a = 2 where a = 1;\n\nRows affected: 1\n\nSQL_EXA&gt; \n\n-- every other session doing this will be blocked:\nSQL_EXA&gt; set autocommit off;\nSQL_EXA&gt; insert into tt values(2);\nEXA: insert into tt values(2);\n<\/pre>\n<p>Here is a simple Perl script that opens 110 connections in parallel trying to do the blocking part from above (sorry, needs to be a screenshot, otherwise the output is somehow wrong):<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-55-06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-55-06.jpg\" alt=\"\" width=\"648\" height=\"183\" class=\"aligncenter size-full wp-image-44287\" \/><\/a><\/p>\n<p>The script which is executed is this one:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~\/Downloads$ cat script.sql \nopen schema demo;\nset autocommit off;\ninsert into tt values(2);\n<\/pre>\n<p>Executing that against the Exasol community version with the default configuration (4GB of memory) leads to this:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ndwe@dwe:~\/Downloads$ perl connections.pl \nError: [R0002] Query terminated because system running out of memory. (Session: 1679720214738370560)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720211706806272)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720211993788416)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720214120169472)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720214828679168)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720212758528000)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720207574892544)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720214671982592)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720213252800512)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720212555038720)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720215199809536)\nError: [R0002] Query terminated because system running out of memory. (Session: 1679720212048510976)\n<\/pre>\n<p>Doubling that to 8GB of memory and doing the test again results in 111 active transactions, what, according to <a href=\"https:\/\/docs.exasol.com\/database_concepts\/session_management.htm\" target=\"_blank\" rel=\"noopener noreferrer\">the documentation<\/a> should not be possible:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; select user_name, effective_user,status,sql_text from exa_dba_sessions where status != 'IDLE';\nEXA: select user_name, effective_user,status,sql_text from exa_dba_sessions...\n\nUSER_NAME                      EFFECTIVE_USER                 STATUS          SQL_TEXT                      \n------------------------------ ------------------------------ --------------- ------------------------------\nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \n...\nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \nSYS                            SYS                            EXECUTE SQL     insert into tt values(2);     \n\n111 rows in resultset.\n\nSQL_EXA&gt; \n<\/pre>\n<p>There is also no warning in EXAOperations:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08-2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08-2.jpg\" alt=\"\" width=\"1200\" height=\"340\" class=\"aligncenter size-full wp-image-43821\" \/><\/a><\/p>\n<p>Either the documentation is not entirely correct in this case, or I misunderstood something. Of course you can kill sessions:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; kill session 1679721952866271232;\nEXA: kill session 1679721952866271232;\n\nRows affected: 0\n\nSQL_EXA&gt; \n<\/pre>\n<p>&#8230; and you can also kill a statement inside a session without killing the session itself:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; kill statement in session 1679721957455953920;\nEXA: kill statement in session 1679721957455953920;\n\nRows affected: 0\n<\/pre>\n<p>The messages the client receives are these:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\ndwe@dwe:~\/Downloads$ perl connections.pl \nError: [R0004] Connection was killed. (Session: 1679721952866271232)\nError: [R0003] Client requested execution abort. (Session: 1679721957455953920)\n<\/pre>\n<p>What is nice is, that you can send a message to the client when you are terminating a statement:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; kill statement in session 1679723381396471808 with message 'You are using too many resources';\nEXA: kill statement in session 1679723381396471808 with message 'You are us...\n\nRows affected: 0\n<\/pre>\n<p>Doing it that way gives some information to the user why you killed his statement:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; insert into tt values (3);\nEXA: insert into tt values (3);\nError: [R0003] Client requested execution abort. Message: You are using too many resources (Session: 1679723381396471808)\n<\/pre>\n<p>If you do not want to affect other sessions as much as possible you can &#8220;NICE&#8221; your own session (which is a concept I really like):<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; alter session set nice = 'on';\nEXA: alter session set nice = 'on';\n\nRows affected: 0\n\nSQL_EXA&gt; select session_id ,user_name, effective_user,status,sql_text,nice from exa_dba_sessions;\nEXA: select session_id ,user_name, effective_user,status,sql_text,nice from...\n\nSESSION_ID            USER_NAME                      EFFECTIVE_USER                 STATUS          SQL_TEXT                       NICE \n--------------------- ------------------------------ ------------------------------ --------------- ------------------------------ -----\n  1679723273468968960 SYS                            SYS                            EXECUTE SQL     select session_id ,user_name,  FALSE\n                                                                                                    effective_user,status,sql_text      \n                                                                                                    ,nice from exa_dba_sessions;        \n                    4 SYS                            SYS                            IDLE                                           FALSE\n  1679723381396471808 SYS                            SYS                            IDLE                                           TRUE \n<\/pre>\n<p>If you want more control over how the system is assigning resource you can do that by using consumer groups, managed by the <a href=\"https:\/\/docs.exasol.com\/database_concepts\/resource_manager.htm#Resource_Manager\" target=\"_blank\" rel=\"noopener noreferrer\">Resource Manager<\/a>. There are some pre-defined resource groups in the system already:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; select CONSUMER_GROUP_NAME,PRECEDENCE,CPU_WEIGHT from EXA_CONSUMER_GROUPS;\nEXA: select CONSUMER_GROUP_NAME,PRECEDENCE,CPU_WEIGHT from EXA_CONSUMER_GRO...\n\nCONSUMER_GROUP_NAME            PRECEDENCE   CPU_WEIGHT  \n------------------------------ ------------ ------------\nSYS_CONSUMER_GROUP                     1000         1000\nHIGH                                    900          900\nMEDIUM                                  300          300\nLOW                                     100          100\n\n4 rows in resultset.\n<\/pre>\n<p>Either use one of those or create your own consumer groups, if you want to limit resources.<\/p>\n<p>If you want to audit the sessions in the system you need to enable auditing. For being able to do that you need to shutdown the database:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-15-21-26.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-15-21-26.jpg\" alt=\"\" width=\"1030\" height=\"424\" class=\"aligncenter size-full wp-image-43825\" \/><\/a><\/p>\n<p>Once it is down you can enable auditing by clicking on the database name:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-15-23-43.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-15-23-43.jpg\" alt=\"\" width=\"783\" height=\"554\" class=\"aligncenter size-full wp-image-43826\" \/><\/a><\/p>\n<p>As soon as the database is started up again you can access the auditing information in the catalog, e.g.:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; select user_name,os_user,os_name,login_time, logout_time, success from exa_dba_audit_sessions;\nEXA: select user_name,os_user,os_name,login_time, logout_time, success from...\n\nUSER_NAME                      OS_USER    OS_NAME                             LOGIN_TIME                 LOGOUT_TIME                SUCCE\n------------------------------ ---------- ----------------------------------- -------------------------- -------------------------- -----\nSYS                            dwe        Linux - 5.4.0-48-generic - amd64    2020-10-05 15:25:49.694000                            TRUE \nSYS                            dwe        Linux - 5.4.0-48-generic - amd64    2020-10-05 15:25:55.212000                            TRUE \n<\/pre>\n<p>But auditing is not limited to sessions, there is much information about historical SQL statements as well:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; desc EXA_DBA_AUDIT_SQL;\nEXA: desc EXA_DBA_AUDIT_SQL;\n\nCOLUMN_NAME                    SQL_TYPE                                 NULLABLE DISTRIBUTION_KEY PARTITION_KEY   \n------------------------------ ---------------------------------------- -------- ---------------- ----------------\nSESSION_ID                     DECIMAL(20,0)                                                                      \nSTMT_ID                        DECIMAL(9,0)                                                                       \nCOMMAND_NAME                   VARCHAR(40) UTF8                                                                   \nCOMMAND_CLASS                  VARCHAR(20) UTF8                                                                   \nDURATION                       DECIMAL(9,3)                                                                       \nSTART_TIME                     TIMESTAMP                                                                          \nSTOP_TIME                      TIMESTAMP                                                                          \nCPU                            DECIMAL(4,1)                                                                       \nTEMP_DB_RAM_PEAK               DECIMAL(10,1)                                                                      \nPERSISTENT_DB_RAM_PEAK         DECIMAL(10,1)                                                                      \nHDD_READ                       DECIMAL(7,1)                                                                       \nHDD_WRITE                      DECIMAL(7,1)                                                                       \nLOCAL_READ_SIZE                DECIMAL(10,1)                                                                      \nLOCAL_READ_DURATION            DECIMAL(9,3)                                                                       \nLOCAL_WRITE_SIZE               DECIMAL(10,1)                                                                      \nLOCAL_WRITE_DURATION           DECIMAL(9,3)                                                                       \nCACHE_READ_SIZE                DECIMAL(10,1)                                                                      \nCACHE_READ_DURATION            DECIMAL(9,3)                                                                       \nCACHE_WRITE_SIZE               DECIMAL(10,1)                                                                      \nCACHE_WRITE_DURATION           DECIMAL(9,3)                                                                       \nREMOTE_READ_SIZE               DECIMAL(10,1)                                                                      \nREMOTE_READ_DURATION           DECIMAL(9,3)                                                                       \nREMOTE_WRITE_SIZE              DECIMAL(10,1)                                                                      \nREMOTE_WRITE_DURATION          DECIMAL(9,3)                                                                       \nNET                            DECIMAL(7,1)                                                                       \nSUCCESS                        BOOLEAN                                                                            \nERROR_CODE                     VARCHAR(10) UTF8                                                                   \nERROR_TEXT                     VARCHAR(1000) UTF8                                                                 \nSCOPE_SCHEMA                   VARCHAR(128) UTF8                                                                  \nCONSUMER_GROUP                 VARCHAR(128) UTF8                                                                  \nNICE                           BOOLEAN                                                                            \nRESOURCES                      DECIMAL(3,0)                                                                       \nROW_COUNT                      DECIMAL(18,0)                                                                      \nEXECUTION_MODE                 VARCHAR(20) UTF8                                                                   \nCLUSTER_NAME                   VARCHAR(128) UTF8                                                                  \nSQL_TEXT                       VARCHAR(2000000) UTF8                                                              \n\n36 rows in resultset.\n\nSQL_EXA&gt; \n<\/pre>\n<p>This gives a nice overview about how the system behaved in the past. If you decide to go with auditing you should implement a procedure that purges the logs you do not need anymore, e.g.:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nSQL_EXA&gt; truncate audit logs keep from '2020-10-01';\nEXA: truncate audit logs keep from '2020-10-01';\n\nRows affected: 0\n\nSQL_EXA&gt; \n<\/pre>\n<p>That&#8217;s it for the introduction of sessions and auditing. In the next post we&#8217;ll look at backup and restore.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the fourth post in the series about Exasol and this time it is about sessions and auditing. If you are interested in the previous posts you can find them here: Getting started with Exasol \u2013 Setting up an environment Getting started with Exasol \u2013 Loading data from PostgreSQL Getting started with Exasol \u2013 [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":14771,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[2127,2128],"type_dbi":[],"class_list":["post-14766","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-exasol","tag-mpp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Getting started with Exasol \u2013 Sessions and auditing - dbi Blog<\/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.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with Exasol \u2013 Sessions and auditing\" \/>\n<meta property=\"og:description\" content=\"This is the fourth post in the series about Exasol and this time it is about sessions and auditing. If you are interested in the previous posts you can find them here: Getting started with Exasol \u2013 Setting up an environment Getting started with Exasol \u2013 Loading data from PostgreSQL Getting started with Exasol \u2013 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-05T12:07:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1306\" \/>\n\t<meta property=\"og:image:height\" content=\"370\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Getting started with Exasol \u2013 Sessions and auditing\",\"datePublished\":\"2020-10-05T12:07:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\"},\"wordCount\":601,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png\",\"keywords\":[\"Exasol\",\"MPP\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\",\"name\":\"Getting started with Exasol \u2013 Sessions and auditing - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png\",\"datePublished\":\"2020-10-05T12:07:59+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png\",\"width\":1306,\"height\":370},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with Exasol \u2013 Sessions and auditing\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\/\/x.com\/westermanndanie\"],\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Getting started with Exasol \u2013 Sessions and auditing - dbi Blog","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.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/","og_locale":"en_US","og_type":"article","og_title":"Getting started with Exasol \u2013 Sessions and auditing","og_description":"This is the fourth post in the series about Exasol and this time it is about sessions and auditing. If you are interested in the previous posts you can find them here: Getting started with Exasol \u2013 Setting up an environment Getting started with Exasol \u2013 Loading data from PostgreSQL Getting started with Exasol \u2013 [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/","og_site_name":"dbi Blog","article_published_time":"2020-10-05T12:07:59+00:00","og_image":[{"width":1306,"height":370,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png","type":"image\/png"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Getting started with Exasol \u2013 Sessions and auditing","datePublished":"2020-10-05T12:07:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/"},"wordCount":601,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png","keywords":["Exasol","MPP"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/","url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/","name":"Getting started with Exasol \u2013 Sessions and auditing - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png","datePublished":"2020-10-05T12:07:59+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/Screenshot-at-14-24-08.png","width":1306,"height":370},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-exasol-sessions-and-auditing\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting started with Exasol \u2013 Sessions and auditing"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=14766"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/14766\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/14771"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=14766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=14766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=14766"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=14766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}