---
title: "Cómo enviar un acceso temporal a una base de datos"
url: https://uselinkpilot.com/es/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely
description: "Crea un usuario limitado y con expiración, envía la contraseña con un enlace de un solo uso y no por correo, protege la conexión y cierra la cuenta a tiempo."
lang: es
---

Seguridad (https://uselinkpilot.com/es/blog/category/security)

# Cómo enviar de forma segura un acceso temporal a una base de datos a un colaborador externo

Crea un usuario limitado y con expiración, envía la contraseña con un enlace de un solo uso y no por correo, protege la conexión y cierra la cuenta a tiempo.

LinkPilot Team (https://uselinkpilot.com/es/author/linkpilot-team) · Las personas que desarrollan y gestionan LinkPilot en TetraCore, LLC 25 de octubre de 2026 · Sobre LinkPilot (https://uselinkpilot.com/es/about)

Un colaborador externo que tiene que arreglar una importación, optimizar una consulta o migrar una tabla suele necesitar un acceso a la base de datos para hacerlo. El riesgo rara vez es el colaborador. Es el propio acceso: creado con prisas, más amplio que la tarea, pegado en un correo y todavía activo seis meses después de pagar la factura.

La solución es una rutina corta. Decide si de verdad hace falta acceso directo, crea un usuario limitado que ya tenga fecha de fin, envía la contraseña con un enlace secreto de un solo uso (https://uselinkpilot.com/es/tools/free-secret-link-generator) en lugar de un mensaje que guarda copias, protege la ruta de red y cierra la cuenta cuando termine el trabajo. Esta guía recorre cada paso, con los comandos exactos donde ayudan.

## ¿Necesita el colaborador acceso directo a la base de datos?

Empieza por la tarea, no por la petición. «Arreglar la importación» puede significar leer una tabla o tener acceso de escritura a medio esquema. Pregunta qué operación, qué entorno y qué tablas, y luego busca una forma más barata de darle eso.

- **Una base de datos de staging** con una copia reciente y anonimizada cubre la mayoría de los trabajos de diagnóstico y migración sin exponer registros reales de clientes.
- **Una API de la aplicación o de administración** suele bastar cuando el colaborador tiene que cambiar datos y no el esquema.
- **Una réplica de lectura** da a los trabajos de análisis de solo lectura un sitio donde ejecutarse sin tocar la base principal.

Si nada de eso encaja y el acceso a producción es inevitable, escribe una nota de una línea con el motivo. Esa nota será la justificación cuando alguien audite el acceso más adelante.

## Crea un usuario limitado que ya tenga expiración

Nunca entregues un acceso compartido ni las credenciales de un empleado. Un usuario dedicado es lo que te permite ver lo que hizo el colaborador, restringir lo que puede alcanzar y retirarlo sin afectar a nadie más. Fija la expiración del usuario al crearlo, para que el acceso termine aunque se te olvide.

En PostgreSQL, un usuario que solo puede leer dos tablas y deja de funcionar en una fecha fija se crea así:

```sql
CREATE ROLE contractor_jo LOGIN PASSWORD 'generated-elsewhere'
  VALID UNTIL '2026-11-08 18:00+00';
GRANT CONNECT ON DATABASE app TO contractor_jo;
GRANT USAGE ON SCHEMA public TO contractor_jo;
GRANT SELECT ON orders, order_items TO contractor_jo;
```

MySQL tiene `CREATE USER ... PASSWORD EXPIRE INTERVAL 14 DAY`, y los servicios gestionados como RDS, Cloud SQL y Supabase permiten hacer lo mismo desde sus consolas o con tokens de corta duración basados en IAM. Usa lo que admita tu plataforma, y genera la contraseña con un gestor de contraseñas en lugar de inventarla.

Concede los permisos mínimos para completar la tarea concreta. En un trabajo de diagnóstico, eso es `SELECT` sobre tablas específicas. En una migración, acceso de escritura a los objetos que van a cambiar y a nada más. Los roles de propietario y de superusuario nunca son la respuesta correcta para una cuenta temporal.

## Cómo enviar un acceso temporal a una base de datos a un colaborador externo

La contraseña es la única parte de la entrega que tiene que mantenerse en secreto. El host, el puerto, el nombre de la base de datos y el usuario le sirven a un atacante, pero no le bastan, así que pueden ir en un mensaje normal. Mantén separadas las dos cosas.

1. **Verifica al destinatario** por un canal en el que ya confíes, como el hilo de correo del contrato o una llamada. Las direcciones que imitan a otras son una forma habitual de que una credencial acabe en el buzón equivocado.
2. **Crea un enlace secreto de un solo uso** que contenga solo la contraseña. Con LinkPilot, el texto se cifra en tu navegador antes de guardarse, la copia almacenada se destruye la primera vez que se abre el enlace y puedes elegir una expiración de una hora, 24 horas o siete días. Las cuentas Pro pueden fijar una expiración a medida, añadir una frase de contraseña y ver en un historial de auditoría cuándo se abrió el enlace.
3. **Envía el enlace en el hilo habitual**, con una nota de una línea que diga para qué es y cuándo expira. No incluyas el nombre de usuario en el mismo mensaje que el enlace.
4. **Envía los datos de conexión por separado**: host, puerto, base de datos, usuario y si se exige TLS. Vale un segundo correo o un comentario en un ticket, porque nada de eso es secreto por sí solo.
5. **Comunica la frase de contraseña por otro canal** si has puesto una, por ejemplo por SMS o en una llamada.
6. **Pide al colaborador que confirme** que el enlace se abrió. Si dice que ya se ha visto y él no lo abrió, da la contraseña por expuesta y cámbiala.

La función de compartir de un gestor de contraseñas es una alternativa razonable cuando el colaborador ya está en tu bóveda. Para un encargo puntual, un enlace de un solo uso evita crear una cuenta solo para entregar un valor. La guía enlaces secretos frente a gestores de contraseñas (https://uselinkpilot.com/es/blog/secret-links-vs-password-managers) explica cuándo encaja cada uno.

## Protege la conexión

Un usuario bien limitado en un puerto abierto sigue siendo un problema. Tres controles cierran la mayor parte del hueco.

- **Exige TLS** en la conexión y pide al colaborador que configure `sslmode=require` o su equivalente en el cliente. Muchos clientes pasan a texto sin cifrar sin avisar si no lo exiges.
- **Restringe el origen** con una lista de IP permitidas, una VPN o un bastión. Permitir la dirección del colaborador mientras dure el trabajo se configura rápido y se quita rápido.
- **Comparte solo lo que necesita la tarea.** El colaborador no necesita el diagrama de la red interna, las demás bases de datos del servidor ni la URL de la consola de administración.

Si tu plataforma ofrece tokens IAM de corta duración en lugar de contraseñas fijas, suele ser la mejor opción, y elimina por completo la entrega de la contraseña.

## Vigila la cuenta y ciérrala

Activa el registro de autenticación y de consultas del nuevo usuario antes de que empiece el trabajo, para poder comparar lo que pasó con lo acordado. Los inicios de sesión a horas raras o las consultas a tablas que no tienen que ver con la tarea merecen una pregunta, no una acusación.

Cuando termine la tarea, o cambie su alcance, haz cuatro cosas ese mismo día:

1. **Elimina o desactiva el usuario** y confirma que ya no puede conectarse.
2. **Quita el permiso de red** que añadiste para el colaborador.
3. **Cambia cualquier secreto que viajara junto con el acceso**, por ejemplo una contraseña de la aplicación que estuviera en el mismo ticket.
4. **Deja constancia de la entrega**: quién tuvo acceso, a qué, desde cuándo hasta cuándo y por qué. Guarda el registro, no la contraseña.

Un acceso temporal limitado, con expiración, entregado una sola vez y cerrado a tiempo no es una excepción de seguridad. Es simplemente como debería funcionar el acceso de los colaboradores externos.

## Lecturas relacionadas

- Cómo compartir claves de API de forma segura: https://uselinkpilot.com/es/blog/how-to-share-api-keys-securely
- Compartir enlaces de forma segura para desarrolladores: https://uselinkpilot.com/es/blog/secure-link-sharing-for-developers
- Cómo funcionan los enlaces secretos de un solo uso: https://uselinkpilot.com/es/blog/how-one-time-secret-links-work
- Enlaces que expiran: el secreto se destruye, no solo se redirige: https://uselinkpilot.com/es/blog/expiring-links-security

## Herramientas para este artículo

Generador de enlaces secretos de un solo uso

Comparte una contraseña o una nota con un enlace que solo se abre una vez.
https://uselinkpilot.com/es/tools/free-secret-link-generator

Mensaje que se autodestruye

Envía una nota que desaparece después de leerse una vez.
https://uselinkpilot.com/es/tools/burn-after-read-secret

Generador de enlaces que expiran

Crea enlaces que dejan de funcionar en el momento que fijes.
https://uselinkpilot.com/es/tools/temporary-link

## Preguntas frecuentes

### ¿Es seguro enviar la contraseña de una base de datos por correo?

### ¿Debe un colaborador externo usar el acceso a la base de datos de un empleado?

### ¿Cuánto debe durar un acceso temporal a una base de datos?

### ¿Qué permisos debe recibir un colaborador externo?

### ¿El colaborador debe conectarse a producción o a staging?

### ¿Basta un enlace de un solo uso para proteger el acceso?

## LinkPilot envía un enlace secreto que desaparece en cuanto se abre.

Cifrado en tu navegador, se muestra una vez y después se destruye. Sin cuenta.

Crear un enlace secreto (https://uselinkpilot.com/es/tools/free-secret-link-generator)

## Sigue leyendo

Seguridad

### Cómo crear un enlace temporal seguro para compartir archivos

Elige el enlace temporal según el archivo, crea uno que expire y se destruya tras una descarga, y usa bien una herramienta de secretos con adjuntos.
https://uselinkpilot.com/es/blog/how-to-create-a-temporary-secure-link-for-sharing-files

Seguridad

### Mensajes que se autodestruyen: Signal, WhatsApp, Telegram y cuándo usar un enlace

Cómo funcionan los mensajes temporales en Signal, WhatsApp y Telegram, qué borra cada temporizador, qué no impide ninguno y cuándo es mejor un enlace.
https://uselinkpilot.com/es/blog/self-destructing-message-apps

Seguimiento de enlaces

### Cómo integrar un acortador con dominio propio en Slack

Configura un dominio propio y una app de Slack que acorta enlaces y convierte contraseñas pegadas en enlaces de un solo uso. Revisa vistas previas y clics.
https://uselinkpilot.com/es/blog/how-to-integrate-a-branded-link-shortener-with-slack

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "Inicio",
        "item": "https://uselinkpilot.com/es"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "Blog",
        "item": "https://uselinkpilot.com/es/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "Acceso temporal a una base de datos para un colaborador externo",
        "item": "https://uselinkpilot.com/es/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/es/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely#article",
    "headline": "Acceso temporal a una base de datos para un colaborador externo",
    "description": "Crea un usuario limitado y con expiración, envía la contraseña con un enlace de un solo uso y no por correo, protege la conexión y cierra la cuenta a tiempo.",
    "inLanguage": "es",
    "datePublished": "2026-10-25",
    "dateModified": "2026-10-25",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Organization",
      "@id": "https://uselinkpilot.com/author/linkpilot-team#organization",
      "name": "LinkPilot Team",
      "url": "https://uselinkpilot.com/es/author/linkpilot-team"
    },
    "publisher": {
      "@type": "Organization",
      "name": "LinkPilot",
      "url": "https://uselinkpilot.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://uselinkpilot.com/logo-512.png",
        "width": 512,
        "height": 512
      }
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://uselinkpilot.com/es/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "¿Es seguro enviar la contraseña de una base de datos por correo?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No. El correo deja una copia en la bandeja de salida de quien lo envía, en el buzón del destinatario, en cada dispositivo sincronizado y en las copias de seguridad de los dos proveedores de correo. Envía la contraseña con un enlace secreto de un solo uso y deja el correo para los datos que no son secretos."
        }
      },
      {
        "@type": "Question",
        "name": "¿Debe un colaborador externo usar el acceso a la base de datos de un empleado?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No. Dale al colaborador su propio usuario. Así puedes ver lo que hizo ese usuario, fijarle su propia expiración y eliminarlo sin tocar el acceso de nadie más."
        }
      },
      {
        "@type": "Question",
        "name": "¿Cuánto debe durar un acceso temporal a una base de datos?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Lo suficiente para el trabajo acordado más un pequeño margen para la revisión. Fija la expiración en el propio usuario de la base de datos y también en el enlace con el que enviaste la contraseña, y si el alcance no está claro, acórtala en lugar de ampliarla."
        }
      },
      {
        "@type": "Question",
        "name": "¿Qué permisos debe recibir un colaborador externo?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "Los mínimos para completar la tarea concreta. Acceso de lectura a las tablas específicas para un trabajo de diagnóstico, acceso de escritura solo a los objetos que va a modificar y nunca un rol de superusuario ni de propietario."
        }
      },
      {
        "@type": "Question",
        "name": "¿El colaborador debe conectarse a producción o a staging?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "A staging o a una copia anonimizada siempre que el trabajo lo permita. Si producción es inevitable, deja por escrito el motivo, restringe mucho el usuario y revisa después los registros de actividad."
        }
      },
      {
        "@type": "Question",
        "name": "¿Basta un enlace de un solo uso para proteger el acceso?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "No. El enlace protege la entrega de la contraseña. El usuario de la base de datos, sus permisos, su expiración y la ruta de red tienen que configurarse bien de todos modos, y el usuario se tiene que eliminar al final igualmente."
        }
      }
    ],
    "inLanguage": "es"
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```