<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Database Security on 4n6Post</title><link>https://4n6post.com/tags/database-security/</link><description>Recent content in Database Security on 4n6Post</description><atom:link href="https://4n6post.com/tags/database-security/index.xml" rel="self" type="application/rss+xml"/><item><title>SQL Navigator</title><link>https://4n6post.com/dockers/sql-navigator/</link><pubDate>2026-09-20</pubDate><description>&lt;p&gt;SQL Navigator is a web-based SQL learning tool designed for cybersecurity training and education. It provides an interactive environment for practicing SQL queries and understanding database security concepts.&lt;/p&gt;
&lt;h2 id="portainer-stack"&gt;Portainer Stack&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Ref:&lt;/strong&gt; &lt;a href="https://github.com/jonesckevin/sql-navigator"&gt;https://github.com/jonesckevin/sql-navigator&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="../images/sql-navigator_example.png" alt="SQL Navigator Example"&gt;&lt;/p&gt;
&lt;h2 id="docker-run"&gt;Docker Run&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;
&lt;details class="code-block-collapsible" open&gt;
&lt;summary class="code-block-header"&gt;
&lt;span class="code-language"&gt;bash&lt;/span&gt;
&lt;span class="code-line-count"&gt;2 lines&lt;/span&gt;
&lt;/summary&gt;
&lt;div class="code-block-content"&gt;
&lt;pre class="line-numbers language-bash"&gt;&lt;code class="language-bash"&gt;&lt;span class="line-number" data-line="1"&gt;&lt;/span&gt;docker pull jonesckevin/sql-navigator:latest
&lt;span class="line-number" data-line="2"&gt;&lt;/span&gt;docker run -d -p 9000:8080 --name sql-navigator -v &amp;#34;./data/exports:/app/exports&amp;#34; jonesckevin/sql-navigator:latest&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;/div&gt;&lt;h2 id="docker-compose"&gt;Docker Compose&lt;/h2&gt;
&lt;div class="code-block-wrapper"&gt;
&lt;details class="code-block-collapsible" open&gt;
&lt;summary class="code-block-header"&gt;
&lt;span class="code-language"&gt;yaml&lt;/span&gt;
&lt;span class="code-line-count"&gt;33 lines&lt;/span&gt;
&lt;/summary&gt;
&lt;div class="code-block-content"&gt;
&lt;pre class="line-numbers language-yaml"&gt;&lt;code class="language-yaml"&gt;&lt;span class="line-number" data-line="1"&gt;&lt;/span&gt;# SQL Navigator
&lt;span class="line-number" data-line="2"&gt;&lt;/span&gt;# https://github.com/jonesckevin/sql-navigator
&lt;span class="line-number" data-line="3"&gt;&lt;/span&gt;
&lt;span class="line-number" data-line="4"&gt;&lt;/span&gt;services:
&lt;span class="line-number" data-line="5"&gt;&lt;/span&gt; sql-navigator:
&lt;span class="line-number" data-line="6"&gt;&lt;/span&gt; image: jonesckevin/sql-navigator:latest
&lt;span class="line-number" data-line="7"&gt;&lt;/span&gt; container_name: SQL-Navigator
&lt;span class="line-number" data-line="8"&gt;&lt;/span&gt; ports:
&lt;span class="line-number" data-line="9"&gt;&lt;/span&gt; - &amp;#34;9002:8080&amp;#34;
&lt;span class="line-number" data-line="10"&gt;&lt;/span&gt; volumes:
&lt;span class="line-number" data-line="11"&gt;&lt;/span&gt; - ${DATA_DIR:-./data}/exports:/app/exports
&lt;span class="line-number" data-line="12"&gt;&lt;/span&gt; - ${DATA_DIR:-./data}/uploads:/app/uploads
&lt;span class="line-number" data-line="13"&gt;&lt;/span&gt; environment:
&lt;span class="line-number" data-line="14"&gt;&lt;/span&gt; # ── Authentication ──
&lt;span class="line-number" data-line="15"&gt;&lt;/span&gt; # Override any of these by setting them in the shell or a .env file.
&lt;span class="line-number" data-line="16"&gt;&lt;/span&gt; APP_USERNAME: ${APP_USERNAME:-admin}
&lt;span class="line-number" data-line="17"&gt;&lt;/span&gt; APP_PASSWORD: ${APP_PASSWORD:-changeme}
&lt;span class="line-number" data-line="18"&gt;&lt;/span&gt; # Set SECRET_KEY to a random 32&amp;#43; character string before production use.
&lt;span class="line-number" data-line="19"&gt;&lt;/span&gt; SECRET_KEY: ${SECRET_KEY:-defaultsecretkey1234567890abcdef}
&lt;span class="line-number" data-line="20"&gt;&lt;/span&gt; # ── Session ──
&lt;span class="line-number" data-line="21"&gt;&lt;/span&gt; SESSION_TIMEOUT_DAYS: ${SESSION_TIMEOUT_DAYS:-7}
&lt;span class="line-number" data-line="22"&gt;&lt;/span&gt; # ── HTTPS ──
&lt;span class="line-number" data-line="23"&gt;&lt;/span&gt; # Set REQUIRE_HTTPS=true when running behind a TLS-terminating proxy.
&lt;span class="line-number" data-line="24"&gt;&lt;/span&gt; REQUIRE_HTTPS: ${REQUIRE_HTTPS:-false}
&lt;span class="line-number" data-line="25"&gt;&lt;/span&gt; # ── Runtime security hardening ──
&lt;span class="line-number" data-line="26"&gt;&lt;/span&gt; security_opt:
&lt;span class="line-number" data-line="27"&gt;&lt;/span&gt; - no-new-privileges:true
&lt;span class="line-number" data-line="28"&gt;&lt;/span&gt; cap_drop:
&lt;span class="line-number" data-line="29"&gt;&lt;/span&gt; - ALL
&lt;span class="line-number" data-line="30"&gt;&lt;/span&gt; read_only: true
&lt;span class="line-number" data-line="31"&gt;&lt;/span&gt; tmpfs:
&lt;span class="line-number" data-line="32"&gt;&lt;/span&gt; - /tmp:mode=1777
&lt;span class="line-number" data-line="33"&gt;&lt;/span&gt; restart: unless-stopped&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/details&gt;
&lt;/div&gt;</description></item></channel></rss>