<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Security on Ivan Luminaria</title><link>https://ivanluminaria.com/en/tags/security/</link><description>Recent content in Security on Ivan Luminaria</description><generator>Hugo</generator><language>en</language><lastBuildDate>Thu, 26 Feb 2026 09:34:00 +0100</lastBuildDate><atom:link href="https://ivanluminaria.com/en/tags/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Roles and Users in PostgreSQL: Why Everything Is (Only) a ROLE</title><link>https://ivanluminaria.com/en/posts/postgresql/postgresql_roles_and_users/</link><pubDate>Tue, 10 Feb 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/postgresql/postgresql_roles_and_users/</guid><description>&lt;p&gt;The first time I seriously worked with PostgreSQL I was coming from
years of other databases. I looked for the &lt;code&gt;CREATE USER&lt;/code&gt; command. I found it.
Then I saw &lt;code&gt;CREATE ROLE&lt;/code&gt;. Then &lt;code&gt;ALTER USER&lt;/code&gt;. Then &lt;code&gt;ALTER ROLE&lt;/code&gt;.&lt;br&gt;
For a few minutes I thought: &amp;ldquo;Alright, someone here enjoys confusing
people.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Actually, no. PostgreSQL is far more consistent than it appears.
It is just consistent in its own way.&lt;/p&gt;
&lt;h2 id="in-postgresql-there-are-no-users-there-are-roles" class="relative group"&gt;In PostgreSQL there are no users. There are roles. &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#in-postgresql-there-are-no-users-there-are-roles" aria-label="Anchor"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;The key is this: &lt;strong&gt;in PostgreSQL everything is a ROLE&lt;/strong&gt;.&lt;/p&gt;</description></item><item><title>Users, Roles and Privileges in Oracle: Why GRANT ALL Is Never the Answer</title><link>https://ivanluminaria.com/en/posts/oracle/oracle-roles-privileges/</link><pubDate>Tue, 27 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/oracle/oracle-roles-privileges/</guid><description>&lt;p&gt;It has happened to me more than once: I walk into an Oracle environment and find the same situation. Every application user connected as the schema owner, with the DBA role granted. Developers, batch jobs, reporting tools — all running with the same privileges as the user that owns the tables.&lt;/p&gt;
&lt;p&gt;When you ask why, the answer is always some variation of: &amp;ldquo;This way everything works without permission issues.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Sure. Everything works. Until the day a developer runs a &lt;code&gt;DROP TABLE&lt;/code&gt; on the wrong table. Or a batch import does a &lt;code&gt;TRUNCATE&lt;/code&gt; on a production table thinking it is in the test environment. Or someone runs a &lt;code&gt;DELETE FROM customers&lt;/code&gt; without a &lt;code&gt;WHERE&lt;/code&gt; clause.&lt;/p&gt;</description></item><item><title>MySQL Users: Why 'mario' and 'mario'@'localhost' Are Not the Same Person</title><link>https://ivanluminaria.com/en/posts/mysql/mysql-users-and-hosts/</link><pubDate>Tue, 13 Jan 2026 08:03:00 +0100</pubDate><guid>https://ivanluminaria.com/en/posts/mysql/mysql-users-and-hosts/</guid><description>&lt;p&gt;A few weeks ago a client calls me. Pragmatic tone, seemingly trivial request:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;I need to create a user on MySQL for an application that needs to access a database. Can you take care of it?&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Sure. &lt;code&gt;CREATE USER&lt;/code&gt;, &lt;span class="glossary-tip" tabindex="0" data-glossary-desc="SQL command to assign specific privileges to a user or role on databases, tables or columns. In MySQL 8 it no longer creates users implicitly." data-glossary-url="https://ivanluminaria.com/en/glossary/grant/" data-glossary-more="Read more →"&gt;`GRANT`&lt;/span&gt;
, next.&lt;/p&gt;</description></item></channel></rss>