{"id":15130,"date":"2025-09-04T20:32:19","date_gmt":"2025-09-04T18:32:19","guid":{"rendered":"https:\/\/hopla.tech\/?p=15130"},"modified":"2025-10-22T17:23:27","modified_gmt":"2025-10-22T15:23:27","slug":"rls-row-level-security-en-postgresql","status":"publish","type":"post","link":"https:\/\/hopla.tech\/en\/rls-row-level-security-en-postgresql\/","title":{"rendered":"RLS (Row Level Security) en PostgreSQL"},"content":{"rendered":"<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>En entornos donde m\u00faltiples usuarios acceden a la misma base de datos, es habitual que queramos controlar qu\u00e9 registros espec\u00edficos puede ver o modificar cada usuario. Por ejemplo, en una aplicaci\u00f3n bancaria, un cliente no deber\u00eda poder ver la cuenta de otro cliente, aunque ambos datos est\u00e9n en la misma tabla.<\/p>\n\n\n\n<p>Para este tipo de escenarios, PostgreSQL ofrece una caracter\u00edstica muy potente: <strong>Row Level Security (RLS)<\/strong>, o seguridad a nivel de fila. Es una alternativa r\u00e1pida, fiable y muy \u00fatil a la encriptaci\u00f3n u otros mecanismos mucho m\u00e1s intrusivos en el sistema.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-que-es-rls\">\u00bfQu\u00e9 es RLS?<\/h2>\n\n\n\n<p>RLS es una funcionalidad de PostgreSQL que permite definir reglas de acceso a nivel de fila dentro de una tabla. En lugar de solo asignar permisos globales de <code>SELECT<\/code>, <code>INSERT<\/code>, <code>UPDATE<\/code> o <code>DELETE<\/code> sobre toda la tabla, con RLS podemos establecer pol\u00edticas que filtren autom\u00e1ticamente las filas a las que un usuario puede acceder o modificar.<\/p>\n\n\n\n<p>Esto significa que la restricci\u00f3n se aplica dentro del motor de la base de datos, no en la l\u00f3gica de la aplicaci\u00f3n. As\u00ed, aunque un usuario intente ejecutar un <code>SELECT * FROM ...<\/code>, solo obtendr\u00e1 las filas que cumplan las pol\u00edticas que le correspondan.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ventajas-de-rls\">Ventajas de RLS<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Transparencia para el aplicativo<\/strong>: Las restricciones se aplican directamente en la base de datos.<\/li>\n\n\n\n<li><strong>Control de seguridad avanzado<\/strong>: Con unos pocos comandos de administraci\u00f3n, se pueden establecer reglas claras.<\/li>\n\n\n\n<li><strong>Escenarios ideales<\/strong>: Aunque no debe usarse de forma universal, es especialmente \u00fatil en soluciones multitenant.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-activando-rls\">Activando RLS<\/h2>\n\n\n\n<p>Por defecto, RLS est\u00e1 desactivado. Para activarlo en una tabla, debemos usar el siguiente comando:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE nombre_tabla ENABLE ROW LEVEL SECURITY;\n<\/code><\/pre>\n\n\n\n<p>A partir de ese momento, PostgreSQL evaluar\u00e1 las pol\u00edticas (<code>POLICY<\/code>) que definamos para decidir qu\u00e9 filas puede ver, insertar, actualizar o borrar cada usuario.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-ejemplo-practico-de-rls\">Ejemplo pr\u00e1ctico de RLS<\/h2>\n\n\n\n<p>A continuaci\u00f3n, veremos un caso pr\u00e1ctico para entender c\u00f3mo funciona RLS. Trabajaremos con una tabla llamada <code>clientes<\/code>, un administrador y dos usuarios (<code>juan<\/code> y <code>jose<\/code>). Cada usuario solo podr\u00e1 ver y modificar sus propios datos, mientras que el administrador tendr\u00e1 acceso completo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-1-preparacion-del-entorno\">1. Preparaci\u00f3n del entorno<\/h3>\n\n\n\n<p>Primero, creamos la tabla y los usuarios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE clientes (\n    id SERIAL PRIMARY KEY,\n    nombre TEXT,\n    CCC TEXT -- cuenta bancaria\n);\n\nCREATE USER administrador PASSWORD 'aaa';\nCREATE USER juan PASSWORD 'bbb';\nCREATE USER jose PASSWORD 'ccc';\n\nINSERT INTO clientes (nombre, CCC) VALUES ('juan', '998877');\nINSERT INTO clientes (nombre, CCC) VALUES ('jose', '887766');\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-2-activar-rls\">2. Activar RLS<\/h3>\n\n\n\n<p>Activamos RLS en la tabla <code>clientes<\/code>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALTER TABLE clientes ENABLE ROW LEVEL SECURITY;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-3-crear-las-politicas\">3. Crear las pol\u00edticas<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-administrador-con-acceso-total\">Administrador con acceso total<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE POLICY admin_all\nON clientes\nTO administrador\nUSING (true)\nWITH CHECK (true);\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-usuarios-normales-solo-ven-sus-propias-filas\">Usuarios normales: solo ven sus propias filas<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE POLICY all_view\nON clientes\nFOR SELECT\nUSING (current_user = nombre);\n<\/code><\/pre>\n\n\n\n<p>La condici\u00f3n <code>current_user = nombre<\/code> asegura que solo puedan consultar la fila cuyo campo <code>nombre<\/code> coincida con su usuario de base de datos.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-usuarios-normales-solo-modifican-sus-propias-filas\">Usuarios normales: solo modifican sus propias filas<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE POLICY user_mod\nON clientes\nFOR UPDATE\nUSING (current_user = nombre)\nWITH CHECK (current_user = nombre);\n<\/code><\/pre>\n\n\n\n<p>Esto limita las actualizaciones para que un usuario no pueda editar datos de otros.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-4-asignar-permisos-complementarios\">4. Asignar permisos complementarios<\/h3>\n\n\n\n<p>Asignamos los permisos necesarios para cada tipo de usuario:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-- Administrador: permisos totales\nGRANT SELECT, INSERT, UPDATE, DELETE ON clientes TO administrador;\n\n-- Usuarios normales: permisos limitados\nGRANT SELECT (nombre, CCC) ON clientes TO public;\nGRANT UPDATE (nombre) ON clientes TO public;\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-5-probando-el-rls\">5. Probando el RLS<\/h3>\n\n\n\n<p>Veamos qu\u00e9 sucede al acceder con distintos usuarios:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-como-administrador\">Como administrador:<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\\c postgres administrador\nSELECT * FROM clientes;\n<\/code><\/pre>\n\n\n\n<p><strong>Resultado:<\/strong> Muestra todas las filas.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-como-juan\">Como juan:<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\\c postgres juan\nSELECT nombre, CCC FROM clientes;\n<\/code><\/pre>\n\n\n\n<p><strong>Resultado:<\/strong> Solo muestra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>juan | 998877\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-como-jose\">Como jose:<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>\\c postgres jose\nSELECT nombre, CCC FROM clientes;\n<\/code><\/pre>\n\n\n\n<p><strong>Resultado:<\/strong> Solo muestra:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>jose | 887766\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-beneficios-de-rls\">Beneficios de RLS<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Seguridad dentro del motor<\/strong>: Las restricciones no dependen del c\u00f3digo de la aplicaci\u00f3n.<\/li>\n\n\n\n<li><strong>Escalabilidad<\/strong>: Se pueden manejar muchos usuarios con pol\u00edticas claras y centralizadas.<\/li>\n\n\n\n<li><strong>Flexibility<\/strong>: Es posible crear pol\u00edticas diferentes para <code>SELECT<\/code>, <code>UPDATE<\/code>, <code>DELETE<\/code> o <code>INSERT<\/code>.<\/li>\n\n\n\n<li><strong>Menos riesgo de fugas de datos<\/strong>: Incluso si alguien ejecuta consultas directas, seguir\u00e1 limitado.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>The <strong>Seguridad a nivel de fila (RLS)<\/strong> en PostgreSQL es una herramienta fundamental para sistemas multiusuario que manejan informaci\u00f3n sensible. Al establecer pol\u00edticas claras y aplicarlas directamente en la base de datos, reducimos riesgos y aseguramos que cada usuario solo pueda acceder a los datos que le corresponden.<\/p>\n\n\n\n<p>Con el ejemplo anterior, hemos visto c\u00f3mo un administrador puede tener acceso completo mientras que cada usuario ve \u00fanicamente sus propios registros. Esta l\u00f3gica se puede adaptar a sistemas mucho m\u00e1s complejos, como aplicaciones financieras, sistemas m\u00e9dicos o plataformas multiempresa.<\/p>\n\n\n\n<p>No dejes de seguir lo \u00faltimo en seguridad inform\u00e1tica y buenas pr\u00e1cticas para tu empresa, mantente actualizado en:<br><strong><a href=\"https:\/\/hopla.tech\/en\/hopla-insights\/\">Hopla! Insights<\/a><\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>En entornos donde m\u00faltiples usuarios acceden a la misma base de datos, es habitual que queramos controlar qu\u00e9 registros espec\u00edficos puede ver o modificar cada usuario. Por ejemplo, en una aplicaci\u00f3n bancaria, un cliente no deber\u00eda poder ver la cuenta de otro cliente, aunque ambos datos est\u00e9n en la misma tabla. Para este tipo de [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":15137,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[325,284],"tags":[437,177,436,438,377],"class_list":["post-15130","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ciberseguridad","category-postgresql","tag-ejemplo-practico-rls","tag-postgresql","tag-rls","tag-rls-en-postgresql","tag-seguridad-en-bases-de-datos"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>RLS en PostgreSQL: Qu\u00e9 es, c\u00f3mo activarlo y ejemplo pr\u00e1ctico<\/title>\n<meta name=\"description\" content=\"Descubre qu\u00e9 es RLS en PostgreSQL, c\u00f3mo activarlo y sus beneficios. Aprende con un ejemplo pr\u00e1ctico c\u00f3mo mejorar la seguridad a nivel de fila.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hopla.tech\/en\/rls-row-level-security-en-postgresql\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RLS (Row Level Security) en PostgreSQL\" \/>\n<meta property=\"og:description\" content=\"Descubre qu\u00e9 es RLS en PostgreSQL, c\u00f3mo activarlo y sus beneficios. Aprende con un ejemplo pr\u00e1ctico c\u00f3mo mejorar la seguridad a nivel de fila.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hopla.tech\/en\/rls-row-level-security-en-postgresql\/\" \/>\n<meta property=\"og:site_name\" content=\"Hopla! Tech\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-04T18:32:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-22T15:23:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/09\/RLS-row-level-security-en-postgresql.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Hopla!\u00a0Tech\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@HoplaSoftware\" \/>\n<meta name=\"twitter:site\" content=\"@HoplaSoftware\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hopla!\u00a0Tech\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated 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:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/\"},\"author\":{\"name\":\"Hopla!\u00a0Tech\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/person\\\/9cf81e385f7a2f68085449a2e16e1d22\"},\"headline\":\"RLS (Row Level Security) en PostgreSQL\",\"datePublished\":\"2025-09-04T18:32:19+00:00\",\"dateModified\":\"2025-10-22T15:23:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/\"},\"wordCount\":629,\"publisher\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/RLS-row-level-security-en-postgresql.webp\",\"keywords\":[\"ejemplo pr\u00e1ctico RLS\",\"postgresql\",\"RLS\",\"RLS en PostgreSQL\",\"seguridad en bases de datos\"],\"articleSection\":[\"Ciberseguridad\",\"Postgresql\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/\",\"url\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/\",\"name\":\"RLS en PostgreSQL: Qu\u00e9 es, c\u00f3mo activarlo y ejemplo pr\u00e1ctico\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/RLS-row-level-security-en-postgresql.webp\",\"datePublished\":\"2025-09-04T18:32:19+00:00\",\"dateModified\":\"2025-10-22T15:23:27+00:00\",\"description\":\"Descubre qu\u00e9 es RLS en PostgreSQL, c\u00f3mo activarlo y sus beneficios. Aprende con un ejemplo pr\u00e1ctico c\u00f3mo mejorar la seguridad a nivel de fila.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/RLS-row-level-security-en-postgresql.webp\",\"contentUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2025\\\/09\\\/RLS-row-level-security-en-postgresql.webp\",\"width\":1200,\"height\":675,\"caption\":\"RLS en PostgreSQL\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/rls-row-level-security-en-postgresql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/hopla.tech\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"RLS (Row Level Security) en PostgreSQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#website\",\"url\":\"https:\\\/\\\/hopla.tech\\\/\",\"name\":\"Hopla! Tech\",\"description\":\"The enterprise software and consultancy company\",\"publisher\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#organization\"},\"alternateName\":\"Hopla!\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/hopla.tech\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#organization\",\"name\":\"Hopla! Tech\",\"alternateName\":\"Hopla!\",\"url\":\"https:\\\/\\\/hopla.tech\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Hopla-by-BTW-b-3.webp\",\"contentUrl\":\"https:\\\/\\\/hopla.tech\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Hopla-by-BTW-b-3.webp\",\"width\":274,\"height\":115,\"caption\":\"Hopla! Tech\"},\"image\":{\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/HoplaSoftware\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/hopla-software\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@hoplasoftware7485\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/hopla.tech\\\/#\\\/schema\\\/person\\\/9cf81e385f7a2f68085449a2e16e1d22\",\"name\":\"Hopla!\u00a0Tech\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g\",\"caption\":\"Hopla!\u00a0Tech\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"RLS en PostgreSQL: Qu\u00e9 es, c\u00f3mo activarlo y ejemplo pr\u00e1ctico","description":"Descubre qu\u00e9 es RLS en PostgreSQL, c\u00f3mo activarlo y sus beneficios. Aprende con un ejemplo pr\u00e1ctico c\u00f3mo mejorar la seguridad a nivel de fila.","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:\/\/hopla.tech\/en\/rls-row-level-security-en-postgresql\/","og_locale":"en_GB","og_type":"article","og_title":"RLS (Row Level Security) en PostgreSQL","og_description":"Descubre qu\u00e9 es RLS en PostgreSQL, c\u00f3mo activarlo y sus beneficios. Aprende con un ejemplo pr\u00e1ctico c\u00f3mo mejorar la seguridad a nivel de fila.","og_url":"https:\/\/hopla.tech\/en\/rls-row-level-security-en-postgresql\/","og_site_name":"Hopla! Tech","article_published_time":"2025-09-04T18:32:19+00:00","article_modified_time":"2025-10-22T15:23:27+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/09\/RLS-row-level-security-en-postgresql.webp","type":"image\/webp"}],"author":"Hopla!\u00a0Tech","twitter_card":"summary_large_image","twitter_creator":"@HoplaSoftware","twitter_site":"@HoplaSoftware","twitter_misc":{"Written by":"Hopla!\u00a0Tech","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#article","isPartOf":{"@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/"},"author":{"name":"Hopla!\u00a0Tech","@id":"https:\/\/hopla.tech\/#\/schema\/person\/9cf81e385f7a2f68085449a2e16e1d22"},"headline":"RLS (Row Level Security) en PostgreSQL","datePublished":"2025-09-04T18:32:19+00:00","dateModified":"2025-10-22T15:23:27+00:00","mainEntityOfPage":{"@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/"},"wordCount":629,"publisher":{"@id":"https:\/\/hopla.tech\/#organization"},"image":{"@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/09\/RLS-row-level-security-en-postgresql.webp","keywords":["ejemplo pr\u00e1ctico RLS","postgresql","RLS","RLS en PostgreSQL","seguridad en bases de datos"],"articleSection":["Ciberseguridad","Postgresql"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/","url":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/","name":"RLS en PostgreSQL: Qu\u00e9 es, c\u00f3mo activarlo y ejemplo pr\u00e1ctico","isPartOf":{"@id":"https:\/\/hopla.tech\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#primaryimage"},"image":{"@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/09\/RLS-row-level-security-en-postgresql.webp","datePublished":"2025-09-04T18:32:19+00:00","dateModified":"2025-10-22T15:23:27+00:00","description":"Descubre qu\u00e9 es RLS en PostgreSQL, c\u00f3mo activarlo y sus beneficios. Aprende con un ejemplo pr\u00e1ctico c\u00f3mo mejorar la seguridad a nivel de fila.","breadcrumb":{"@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#primaryimage","url":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/09\/RLS-row-level-security-en-postgresql.webp","contentUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/09\/RLS-row-level-security-en-postgresql.webp","width":1200,"height":675,"caption":"RLS en PostgreSQL"},{"@type":"BreadcrumbList","@id":"https:\/\/hopla.tech\/rls-row-level-security-en-postgresql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/hopla.tech\/"},{"@type":"ListItem","position":2,"name":"RLS (Row Level Security) en PostgreSQL"}]},{"@type":"WebSite","@id":"https:\/\/hopla.tech\/#website","url":"https:\/\/hopla.tech\/","name":"Hopla! Tech","description":"The enterprise software and consultancy company","publisher":{"@id":"https:\/\/hopla.tech\/#organization"},"alternateName":"Hopla!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hopla.tech\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/hopla.tech\/#organization","name":"Hopla! Tech","alternateName":"Hopla!","url":"https:\/\/hopla.tech\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/hopla.tech\/#\/schema\/logo\/image\/","url":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/12\/Hopla-by-BTW-b-3.webp","contentUrl":"https:\/\/hopla.tech\/wp-content\/uploads\/2025\/12\/Hopla-by-BTW-b-3.webp","width":274,"height":115,"caption":"Hopla! Tech"},"image":{"@id":"https:\/\/hopla.tech\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/HoplaSoftware","https:\/\/www.linkedin.com\/company\/hopla-software\/","https:\/\/www.youtube.com\/@hoplasoftware7485"]},{"@type":"Person","@id":"https:\/\/hopla.tech\/#\/schema\/person\/9cf81e385f7a2f68085449a2e16e1d22","name":"Hopla!\u00a0Tech","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/74a9053adf21148080273a18b879a3392f96e141e511a337179a4438f6bde966?s=96&d=mm&r=g","caption":"Hopla!\u00a0Tech"}}]}},"_links":{"self":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts\/15130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/comments?post=15130"}],"version-history":[{"count":6,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts\/15130\/revisions"}],"predecessor-version":[{"id":15139,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/posts\/15130\/revisions\/15139"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/media\/15137"}],"wp:attachment":[{"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/media?parent=15130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/categories?post=15130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hopla.tech\/en\/wp-json\/wp\/v2\/tags?post=15130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}