{"id":27865,"date":"2023-09-18T06:40:03","date_gmt":"2023-09-18T04:40:03","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=27865"},"modified":"2023-09-21T09:24:12","modified_gmt":"2023-09-21T07:24:12","slug":"oracle-sql-firewall-with-oracle-23c","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/","title":{"rendered":"Oracle to the rescue of MGM with SQL Firewall?"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"h-introduction\">Introduction<\/h2>\n\n\n\n<p>It is true that it&#8217;s a somewhat daring title, and it&#8217;s unlikely that SQL firewall has changed anything about <a href=\"https:\/\/www.reuters.com\/business\/casino-giant-caesars-confirms-data-breach-2023-09-14\/\">the attack that several casinos in Las Vegas suffered last week<\/a>. However, the opportunity was too good to pass up on this topic. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"365\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7-1024x365.jpeg\" alt=\"\" class=\"wp-image-27871\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7-1024x365.jpeg 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7-300x107.jpeg 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7-768x273.jpeg 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7-1536x547.jpeg 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg 1618w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>As I write this blog, Las Vegas casinos are experiencing a series of cyberattacks. It turns out that at the same time, OracleCloud World is taking place in Las Vegas, and one of its flagship products, the database, offers a new feature in its 23c version called &#8216;SQL firewall.&#8217; So, the opportunity was too good not to write a short blog about this new functionality. I would like to emphasize here that this is only a very brief overview of all the features of DBMS_SQL_FIREWALL. Oracle provides <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/23\/dbseg\/using-sql-firewall.html#GUID-E16DAF38-B4D3-439D-8D01-A8B39AB76C62\">extensive documentation<\/a> on this package\/feature, and you will find several blogs on the internet that go beyond the tests below (have a look in my conclusion)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-how-does-sql-firewall-work\">How does SQL Firewall work?<\/h2>\n\n\n\n<p>The principle of the package is very simple and is illustrated through the image below, which has been taken from the Oracle documentation:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"288\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sql_firewall_flow.png\" alt=\"\" class=\"wp-image-27866\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sql_firewall_flow.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sql_firewall_flow-300x113.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\"><em>SQL Firewall flow &#8211; Source: <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/23\/dbseg\/using-sql-firewall.html\">Oracle documentation<\/a><\/em><\/figcaption><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>First, we capture the standard activity of an application (<em>Capture SQL Activities<\/em>). Naturally, the capture must run for a sufficient amount of time to cover all specific scenarios. <\/li>\n\n\n\n<li>By examining this activity (<em>Review<\/em>), we ensure that there is nothing abnormal. <\/li>\n\n\n\n<li>We generate the list (<em>Generate Allow-List<\/em>) of allowed execution contexts. This list can be modified if necessary by adding or removing specific executions using the following package procedures: DBMS_SQL_FIREWALL.ADD_ALLOWED_CONTEXT, DBMS_SQL_FIREWALL.DELETE_ALLOWED_CONTEXT, and DBMS_SQL_FIREWALL.DELETE_ALLOWED_SQL.<\/li>\n\n\n\n<li>We enable the list (<em>Enable Allow-List<\/em>).<\/li>\n\n\n\n<li>We monitor (<em>Monitor<\/em>) the operation using the DBA_SQL_FIREWALL_VIOLATIONS dictionary view.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-example\">Example<\/h2>\n\n\n\n<p>For this example I will need two users: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>schema_owner who is the owner of the tables &amp; views of the application<\/li>\n\n\n\n<li>app_user who needs to access to the application<\/li>\n<\/ul>\n\n\n\n<p>We could use a specific user to manage database firewall by providing him the sql_firewall_admin role but as stated in my introduction I&#8217;ll keep this example very short and simple. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-users-creation\">Users creation<\/h3>\n\n\n\n<p>Creation of the user schema_owner:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; create user schema_owner identified by schema_owner quota unlimited on users;\ngrant connect,resource to schema_owner;\ngrant create session grant any privilege to schema_owner;\nUser created.\n<\/code><\/pre>\n\n\n\n<p>Creation of the user app_user:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; create user app_user identified by app_user;\ngrant create session to app_user;\ngrant select any table on schema schema_owner to app_user;\nUser created.\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-objects-creation\">Objects creation<\/h3>\n\n\n\n<p>Now we will create few objects in our schema_owner schema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; CREATE TABLE schema_owner.customers\n( customer_id number(10) NOT NULL,\ncustomer_name varchar2(50) NOT NULL,\ncity varchar2(50),\ncredit_card number(16),\nCONSTRAINT customers_pk PRIMARY KEY (customer_id)\n);\nTable created.\n\nSQL&gt; create view schema_owner.non_sensitive_view as select customer_name, city from schema_owner.customers;\n\nView created.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-data-insertion\">Data insertion<\/h3>\n\n\n\n<p>We will now insert data in our table:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; insert into schema_owner.customers values (001,'steulet','Delemont',00001111222233334444);\ninsert into schema_owner.customers values (002,'errard','Courrendlin',2222333344445555);\ninsert into schema_owner.customers values (003,'frund','Porrendutry',7777888899990000)\n1 row created.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-start-the-capture-of-the-statements-capture-sql-activities\">Start the capture of the statements (Capture SQL Activities)<\/h3>\n\n\n\n<p>Before being able to capture the statements, we have to be sure that SQL Firewall is enabled: <\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>SQL&gt; select status\nfrom dba_sql_firewall_status; \nSTATUS\n------------\nDISABLED<\/code><\/pre>\n<\/div><\/div>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; exec dbms_sql_firewall.enable;\n\nPL\/SQL procedure successfully completed.<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; select status\nfrom dba_sql_firewall_status;\nSTATUS\n------------\nEnable<\/code><\/pre>\n\n\n\n<p>We can now start the capure process of the standard context for the user app_user using the below procedure: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; begin\ndbms_sql_firewall.create_capture (\nusername =&gt; 'app_user',\ntop_level_only =&gt; false,\nstart_capture =&gt; true);\nend;\n \nPL\/SQL procedure successfully completed.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-let-s-run-the-application\">Let&#8217;s run the application<\/h3>\n\n\n\n<p>We now need to run the application for the necessary duration in order to collect all user context information related to those who will be querying the application. We will greatly simplify this phase by simply performing a select on the view we created earlier. This select will be done in a separate session using the application user login &amp; password: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;oracle@grs-oraclecloudinstance bin]$ .\/sqlplus app_user\/app_user@free\n\nSQL*Plus: Release 23.0.0.0.0 - Developer-Release on Mon Sep 18 03:16:56 2023\nVersion 23.2.0.0.0Copyright (c) 1982, 2023, Oracle. All rights reserved.Connected to:\nOracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release\nVersion 23.2.0.0.0\nSQL&gt; set linesize 200 pagesize 40\nSQL&gt; select * from schema_owner.non_sensitive_view;\n\nCUSTOMER_NAME                                      CITY\n-------------------------------------------------- ---------------------------------\nsteulet                                            Delemont\nerrard                                             Courrendlin<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-let-s-stop-the-capture\">Let&#8217;s stop the capture<\/h3>\n\n\n\n<p>We can admit that the application ran for the necessary duration in order to catch all the contextual information and we stop the capture: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; exec dbms_sql_firewall.stop_capture('app_user');\nPL\/SQL procedure successfully completed.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-let-s-have-a-look-on-what-we-captured-review\">Let&#8217;s have a look on what we captured (Review)<\/h3>\n\n\n\n<p>When querying dba_sql_fiewall_capture_logs, one can view the logs as demonstrated below: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; column commande_type format a9\ncolumn current_user format a10\ncolumn client_program format a20\ncolumn os_user format a8\ncolumn ip_address format a10\ncolumn sql_text format a30\nselect command_type, current_user, client_program, os_user, ip_address, sql_text from dba_sql_firewall_capture_logs where username='APP_USER';\n\nCOMMAND_TYPE CURRENT_US CLIENT_PROGRAM       OS_USER  IP_ADDRESS SQL_TEXT\n------------ ---------- -------------------- -------- ---------- ------------------------------\nSELECT       APP_USER   sqlplus@grs-oraclecl oracle   10.0.0.79  SELECT * FROM SCHEMA_OWNER.NON\n                        oudinstance (TNS V1-                     _SENSITIVE_VIEW\n                        V3)\n\nSELECT       APP_USER   sqlplus@grs-oraclecl oracle   Local      SELECT DECODE (USER,:\"SYS_B_0\"\n                        oudinstance (TNS V1-                     ,XS_SYS_CONTEXT (:\"SYS_B_1\",:\"\n                        V3)                                      SYS_B_2\"),USER) FROM SYS.DUAL\n\nSELECT       APP_USER   sqlplus@grs-oraclecl oracle   10.0.0.79  SELECT DECODE (USER,:\"SYS_B_0\"\n                        oudinstance (TNS V1-                     ,XS_SYS_CONTEXT (:\"SYS_B_1\",:\"\n                        V3)                                      SYS_B_2\"),USER) FROM SYS.DUAL\n  \n<\/code><\/pre>\n\n\n\n<p>To read the output more easily you will find a screenshot below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"772\" height=\"215\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/printoutput.png\" alt=\"\" class=\"wp-image-27867\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/printoutput.png 772w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/printoutput-300x84.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/printoutput-768x214.png 768w\" sizes=\"auto, (max-width: 772px) 100vw, 772px\" \/><figcaption class=\"wp-element-caption\"><em>Output of the SQL command<\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-let-s-generate-the-allow-list-generate-allow-list\">Let&#8217;s generate the allow list (Generate Allow-List)<\/h3>\n\n\n\n<p>Using DBMS_SQL_FIREWALL.GENERATE_ALLOW_LIST we generate the allow_list: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; exec DBMS_SQL_FIREWALL.GENERATE_ALLOW_LIST ('APP_USER');\nPL\/SQL procedure successfully completed.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-let-s-enable-protect-our-database-enable-allow-list\">Let&#8217;s enable protect our database (Enable Allow-List)<\/h3>\n\n\n\n<p>Using the below procedure we will activate the allow list and block violations:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL&gt; begin\ndbms_sql_firewall.enable_allow_list (\nusername =&gt; 'app_user',\nenforce =&gt; dbms_sql_firewall.enforce_all,\nblock =&gt; true);\nend;\n\/ \n\nPL\/SQL procedure successfully completed.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-about-a-test\">What about a test?<\/h3>\n\n\n\n<p>Let&#8217;s run a query that hasn&#8217;t been run before. We get a SQL Firewall violation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;oracle@grs-oraclecloudinstance bin]$ .\/sqlplus app_user\/app_user@free\n\nSQL&gt; select credit_card from schema_owner.customers;\nselect credit_card from schema_owner.customers\n*\nERROR at line 1:\nORA-47605: SQL Firewall violation<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-what-can-we-find-in-the-log\">What can we find in the log?<\/h3>\n\n\n\n<p>Inspecting the log we can have some details regarding the rule violation: <\/p>\n\n\n\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group\"><div class=\"wp-block-group__inner-container is-layout-constrained wp-block-group-is-layout-constrained\">\n<pre class=\"wp-block-code\"><code>SQL&gt; select sql_text,\nfirewall_action,\nip_address,\ncause,\noccurred_at\nfrom dba_sql_firewall_violations;<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>SQL_TEXT                       FIREWAL IP_ADDRESS CAUSE                OCCURRED_AT\n------------------------------ ------- ---------- -------------------- -------------\nSELECT CREDIT_CARD FROM SCHEMA Blocked 10.0.0.79  SQL violation        18-SEP-23 04.08.54.371122 AM +00:00\n_OWNER.CUSTOMERS<\/code><\/pre>\n<\/div><\/div>\n<\/div><\/div>\n\n\n\n<p>To read the output more easily you will find a screenshot below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"83\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sqlplus.png\" alt=\"\" class=\"wp-image-27868\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sqlplus.png 903w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sqlplus-300x28.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/sqlplus-768x71.png 768w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><figcaption class=\"wp-element-caption\"><em>Output of the SQL command<\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2>\n\n\n\n<p>Oracle provides a series of tools to control data access. SQL Firewall is added to the list of these tools, such as DBM_CRYPTO, TDE, Oracle Virtual Private Database, to name just a few. SQL Firewall is used in this blog to block queries, but it can also be configured for query monitoring only. It\u2019s also interesting to note that we can use Oracle Data Pump to export and import SQL Firewall captures and allow-list metadata. Of course on large volume of Data SQL Firewall can have an impact on performance (I didn&#8217;t test it). In such a context Oracle recommends the two below measures: <\/p>\n\n\n\n<ul class=\"wp-block-list\" id=\"GUID-229866B6-7CE6-4C32-AD7C-B5448FF9F72A__UL_QX1_S12_NWB\">\n<li>Allocate at least an additional 2G to the&nbsp;<code>LARGE_POOL_SIZE<\/code>&nbsp;parameter setting, on top of the existing&nbsp;<code>LARGE_POOL_SIZE<\/code>&nbsp;requirement.<\/li>\n\n\n\n<li>Resize the&nbsp;<code>SGA_TARGET<\/code>&nbsp;parameter setting to include this additional requirement. Ensure that the final size is 8G or more.<\/li>\n<\/ul>\n\n\n\n<p>Among the different blogs that address this topic we can find: <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/blogs.oracle.com\/coretec\/post\/23c-sql-firewall\">23c Oracle Firewall from Rob Watson<\/a><\/li>\n\n\n\n<li><a href=\"http:\/\/www.petefinnigan.com\/weblog\/archives\/00001517.htm\">SQL Firewall Oracle 23c from Pete Finnigan<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/oracle-base.com\/articles\/23c\/sql-firewall-23c\">SQL Firewall in Oracle Database 23c from Oracle-Base (Tim)<\/a><br><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction It is true that it&#8217;s a somewhat daring title, and it&#8217;s unlikely that SQL firewall has changed anything about the attack that several casinos in Las Vegas suffered last week. However, the opportunity was too good to pass up on this topic. As I write this blog, Las Vegas casinos are experiencing a series [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":27871,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[2833,96,2564],"type_dbi":[],"class_list":["post-27865","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-23c","tag-oracle","tag-security-3"],"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>Oracle to the rescue of MGM with SQL Firewall? - dbi Blog<\/title>\n<meta name=\"description\" content=\"Learn how Oracle SQL Firewall enhances database security, preventing unauthorized access and ensuring data protection\" \/>\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\/oracle-sql-firewall-with-oracle-23c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle to the rescue of MGM with SQL Firewall?\" \/>\n<meta property=\"og:description\" content=\"Learn how Oracle SQL Firewall enhances database security, preventing unauthorized access and ensuring data protection\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-18T04:40:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-21T07:24:12+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1618\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gr\u00e9gory Steulet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gr\u00e9gory Steulet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 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\/oracle-sql-firewall-with-oracle-23c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/\"},\"author\":{\"name\":\"Gr\u00e9gory Steulet\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/7609faada8e4d63e04a28ae29e227098\"},\"headline\":\"Oracle to the rescue of MGM with SQL Firewall?\",\"datePublished\":\"2023-09-18T04:40:03+00:00\",\"dateModified\":\"2023-09-21T07:24:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/\"},\"wordCount\":875,\"commentCount\":2,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg\",\"keywords\":[\"23c\",\"Oracle\",\"Security\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/\",\"name\":\"Oracle to the rescue of MGM with SQL Firewall? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg\",\"datePublished\":\"2023-09-18T04:40:03+00:00\",\"dateModified\":\"2023-09-21T07:24:12+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/7609faada8e4d63e04a28ae29e227098\"},\"description\":\"Learn how Oracle SQL Firewall enhances database security, preventing unauthorized access and ensuring data protection\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg\",\"width\":1618,\"height\":576,\"caption\":\"MGM got hacked\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Oracle to the rescue of MGM with SQL Firewall?\"}]},{\"@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\/7609faada8e4d63e04a28ae29e227098\",\"name\":\"Gr\u00e9gory Steulet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/e1531483285469fe17ea7a769ce5d8a8a01847185e4245d9c4d22c575c7c6d3e?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/e1531483285469fe17ea7a769ce5d8a8a01847185e4245d9c4d22c575c7c6d3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/e1531483285469fe17ea7a769ce5d8a8a01847185e4245d9c4d22c575c7c6d3e?s=96&d=mm&r=g\",\"caption\":\"Gr\u00e9gory Steulet\"},\"description\":\"Gr\u00e9gory Steulet has more than ten years of experience in database and infrastructure management, engineering, and optimization. He is specialized in Oracle technologies and high availability solutions (Oracle DataGuard, Data Replication Block Device). His expertise also includes Avaloq banking applications, as well as the open source field (MySQL, Unix\/Linux, etc.). Gr\u00e9gory Steulet is \\\"Oracle Certified Professional 10g\\\", \\\"MySQL Cluster 5.1 Certified\\\", and \\\"Avaloq Certified Professional 2.6\\\". Prior to joining dbi services, Gr\u00e9gory Steulet was Senior Consultant at Trivadis in Lausanne. He also worked as IT Administrator at Box Telecom in Miami Beach, Florida (USA). Gr\u00e9gory Steulet has an Executive MBA from the International Institute of Management in Technology, Fribourg (CH). He also holds a Bachelor's Degree in Business Administration and Computer Science from the University of Applied Sciences Western Switzerland. His branch-related experience covers Telecommunications, Financial Services \/ Banking, Logistics, Pharma etc.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/gregory-steulet\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle to the rescue of MGM with SQL Firewall? - dbi Blog","description":"Learn how Oracle SQL Firewall enhances database security, preventing unauthorized access and ensuring data protection","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\/oracle-sql-firewall-with-oracle-23c\/","og_locale":"en_US","og_type":"article","og_title":"Oracle to the rescue of MGM with SQL Firewall?","og_description":"Learn how Oracle SQL Firewall enhances database security, preventing unauthorized access and ensuring data protection","og_url":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/","og_site_name":"dbi Blog","article_published_time":"2023-09-18T04:40:03+00:00","article_modified_time":"2023-09-21T07:24:12+00:00","og_image":[{"width":1618,"height":576,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg","type":"image\/jpeg"}],"author":"Gr\u00e9gory Steulet","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Gr\u00e9gory Steulet","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/"},"author":{"name":"Gr\u00e9gory Steulet","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/7609faada8e4d63e04a28ae29e227098"},"headline":"Oracle to the rescue of MGM with SQL Firewall?","datePublished":"2023-09-18T04:40:03+00:00","dateModified":"2023-09-21T07:24:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/"},"wordCount":875,"commentCount":2,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg","keywords":["23c","Oracle","Security"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/","url":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/","name":"Oracle to the rescue of MGM with SQL Firewall? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg","datePublished":"2023-09-18T04:40:03+00:00","dateModified":"2023-09-21T07:24:12+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/7609faada8e4d63e04a28ae29e227098"},"description":"Learn how Oracle SQL Firewall enhances database security, preventing unauthorized access and ensuring data protection","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2023\/09\/6BE9A03F-58CB-4DD1-91AF-2A67D64C47F7.jpeg","width":1618,"height":576,"caption":"MGM got hacked"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/oracle-sql-firewall-with-oracle-23c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Oracle to the rescue of MGM with SQL Firewall?"}]},{"@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\/7609faada8e4d63e04a28ae29e227098","name":"Gr\u00e9gory Steulet","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/e1531483285469fe17ea7a769ce5d8a8a01847185e4245d9c4d22c575c7c6d3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/e1531483285469fe17ea7a769ce5d8a8a01847185e4245d9c4d22c575c7c6d3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e1531483285469fe17ea7a769ce5d8a8a01847185e4245d9c4d22c575c7c6d3e?s=96&d=mm&r=g","caption":"Gr\u00e9gory Steulet"},"description":"Gr\u00e9gory Steulet has more than ten years of experience in database and infrastructure management, engineering, and optimization. He is specialized in Oracle technologies and high availability solutions (Oracle DataGuard, Data Replication Block Device). His expertise also includes Avaloq banking applications, as well as the open source field (MySQL, Unix\/Linux, etc.). Gr\u00e9gory Steulet is \"Oracle Certified Professional 10g\", \"MySQL Cluster 5.1 Certified\", and \"Avaloq Certified Professional 2.6\". Prior to joining dbi services, Gr\u00e9gory Steulet was Senior Consultant at Trivadis in Lausanne. He also worked as IT Administrator at Box Telecom in Miami Beach, Florida (USA). Gr\u00e9gory Steulet has an Executive MBA from the International Institute of Management in Technology, Fribourg (CH). He also holds a Bachelor's Degree in Business Administration and Computer Science from the University of Applied Sciences Western Switzerland. His branch-related experience covers Telecommunications, Financial Services \/ Banking, Logistics, Pharma etc.","url":"https:\/\/www.dbi-services.com\/blog\/author\/gregory-steulet\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/27865","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=27865"}],"version-history":[{"count":8,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/27865\/revisions"}],"predecessor-version":[{"id":27881,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/27865\/revisions\/27881"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/27871"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=27865"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=27865"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=27865"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=27865"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}