Administrar roles

Los roles de Postgres controlan el acceso a las bases de datos, esquemas, tablas y otros objetos de base de datos de Postgres. Use la interfaz de usuario de Lakebase para crear y administrar roles para el equipo.

Nota:

Antes de trabajar con roles, consulte cómo conectarse a la base de datos y autenticarse mediante tokens de OAuth o autenticación de contraseña nativa de Postgres.

Introducción al rol

Al crear un proyecto, se crea automáticamente un rol de Postgres para la identidad de Databricks (por ejemplo, user@databricks.com). Este rol posee la base de datos predeterminada databricks_postgres y es miembro de , lo que le da amplios privilegios para administrar objetos de base de databricks_superuserdatos. Puede crear roles adicionales en la rama predeterminada del proyecto o en ramas secundarias.

Si gestionas tu proyecto con Terraform y quieres poner este rol implícito de propietario bajo gestión de IaC, consulta Configuración típica de un proyecto de Lakebase con Terraform para ver el patrón de replace_existing adopción.

Si utiliza paquetes de automatización declarativa en su lugar, consulte Configuración típica de un proyecto de Lakebase con paquetes de automatización declarativa para seguir el mismo patrón.

Nota:

El estado de rol de Postgres es independiente entre ramas. Al crear una rama, esta refleja los roles, las bases de datos, la pertenencia a roles y los privilegios de Postgres de la rama principal en el momento de la bifurcación. Después de la ramificación, cada rama evoluciona de forma independiente: los roles y las bases de datos que se crean, los GRANT y los REVOKE que se aplican, y los atributos de rol o la pertenencia a roles que se modifican en una rama no tienen ningún efecto en ninguna otra rama, incluida la rama principal. No hay sincronización automática del estado de rol entre ramas.

Permisos del proyecto (CAN USE, CAN MANAGE) funcionan de forma diferente: se aplican a todo el proyecto y a todas sus ramas. Consulte Administración de permisos de proyecto.

Creación de un rol

Use el cuadro de diálogo Agregar rol en la aplicación Lakebase para crear un rol de OAuth para una identidad de Databricks o un rol nativo de contraseña de Postgres.

Creación de un rol de OAuth

Los roles de OAuth están vinculados a una identidad de Azure Databricks (usuario, entidad de servicio o grupo) y se autentican mediante tokens de OAuth, que expiran después de una hora.

Al crear una rama secundaria, refleja el rol de la rama principal y el estado de la base de datos en el momento de la bifurcación. Después de eso, el estado de rol de cada rama evoluciona de forma independiente. En el caso de los grupos, solo se admiten grupos de nivel de área de trabajo.

Opcionalmente, conceda databricks_superuser (hereda pg_read_all_data, pg_write_all_datay pg_monitor) o atributos de Postgres estándar (CREATEDB, CREATEROLE, BYPASSRLS). Consulte Atributos de rol en la documentación de PostgreSQL.

Para crear un rol OAuth, abre el proyecto y selecciona Resumen en la barra lateral. Selecciona la pestaña Roles y Bases de Datos , haz clic en Añadir rol, selecciona la pestaña OAuth , selecciona una identidad en el desplegable Principal , configura permisos y haz clic en Añadir.

Agregar rol: pestaña OAuth

Nota:

También puede crear roles de OAuth mediante la databricks_auth extensión con SQL o la API REST. Consulte Creación de roles de Postgres.

Creación de un rol de contraseña

Los roles de contraseña usan una contraseña estática de Postgres y no están vinculados a una identidad de Azure Databricks. Son útiles para aplicaciones o herramientas que requieren credenciales de base de datos tradicionales.

La aplicación Lakebase genera automáticamente una contraseña segura. Cópielo inmediatamente después de la creación; no se vuelve a mostrar. Si necesita una contraseña personalizada, establézcala más adelante mediante SQL. Se aplican los mismos permisos opcionales del rol OAuth (databricks_superuser, CREATEDB, CREATEROLE, BYPASSRLS). Los nombres de rol deben ser identificadores de Postgres válidos y no pueden superar los 63 caracteres.

Para crear un rol de contraseña, vaya ala pestaña>>, escriba un nombre de rol, configure permisos, haga clic en Agregar y copie la contraseña generada.

Agregar rol: pestaña Contraseña

Visualización de roles

Para ver todos los roles de una rama, vaya a la pestaña Roles y bases de datos de la rama en la aplicación Lakebase.

Lista de roles

Administración de conexiones de contraseña

Las conexiones con contraseña están desactivadas por defecto para los nuevos proyectos de Lakebase. Los proyectos existentes no se ven afectados por esta configuración predeterminada.

Para habilitar las conexiones de contraseña, vaya a la configuración>del proyecto Conexiones de base de datos y compruebe Contraseña (roles nativos de Postgres).

Para deshabilitar las conexiones de contraseña, vaya a la configuración>del proyecto Conexiones de base de datos y desactive Contraseña (roles nativos de Postgres). Los roles de contraseña existentes no se eliminan, pero no se pueden autenticar mientras se deshabilitan las conexiones de contraseña.

También puede controlarla mediante punto de conexión de proceso. En la configuración de computación de la rama, seleccione Editar>Conexiones de base de datos y active o desactive Contraseña (roles de Postgres).

Configuración de conexiones de base de datos

Importante

Se trata de un cambio de comportamiento. Si tienes scripts de automatización o pipelines de CI que crean nuevos proyectos en Lakebase y dependen de conexiones nativas con contraseñas de Postgres, ahora debes habilitar explícitamente las conexiones con contraseñas tras la creación del proyecto.

Para habilitar o deshabilitar las conexiones de contraseña mediante programación:

CLI

# Enable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
  --json '{"spec": {"enable_pg_native_login": true}}'

# Disable password connections
databricks postgres update-project projects/<project-id> spec.enable_pg_native_login \
  --json '{"spec": {"enable_pg_native_login": false}}'

SDK de Python

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.postgres import FieldMask, Project, ProjectSpec

w = WorkspaceClient()

# Enable password connections
w.postgres.update_project(
    name="projects/<project-id>",
    project=Project(spec=ProjectSpec(enable_pg_native_login=True)),
    update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()

# Disable password connections
w.postgres.update_project(
    name="projects/<project-id>",
    project=Project(spec=ProjectSpec(enable_pg_native_login=False)),
    update_mask=FieldMask(field_mask=["spec.enable_pg_native_login"]),
).wait()

curl

# Enable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"spec": {"enable_pg_native_login": true}}' | jq

# Disable password connections
curl -X PATCH "https://${DATABRICKS_HOST}/api/2.0/postgres/projects/<project-id>?update_mask=spec.enable_pg_native_login" \
  -H "Authorization: Bearer ${DATABRICKS_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{"spec": {"enable_pg_native_login": false}}' | jq

Para la autenticación, consulte Acerca de la autenticación.

Restablecer una contraseña

Puede restablecer la contraseña de los roles nativos de contraseña de Postgres. Los roles de OAuth usan tokens de OAuth para la autenticación y no tienen contraseñas para restablecer.

Para restablecer la contraseña de un rol:

  1. Vaya a la pestaña Roles y bases de datos de la rama en la aplicación Lakebase.
  2. Seleccione Restablecer contraseña en el menú de roles y haga clic en Restablecer.
  3. Copie la nueva contraseña generada.

Nota:

Al restablecer una contraseña en la aplicación Lakebase, se restablece la contraseña a un valor generado con entropía de 60 bits. Para establecer su propio valor de contraseña, puede restablecer la contraseña mediante el editor de SQL o un cliente SQL como psql con la sintaxis siguiente:

ALTER USER user_name WITH PASSWORD 'new_password';

La contraseña debe tener al menos 12 caracteres con una combinación de minúsculas, mayúsculas, números y caracteres de símbolos. Las contraseñas definidas por el usuario se validan en tiempo de creación para garantizar la entropía de 60 bits.

Obtención de un nuevo token de OAuth

Si usa la autenticación de OAuth y necesita un nuevo token de OAuth (los tokens expiran después de una hora), puede obtener uno del modal connect:

  1. Navegue a su proyecto en la aplicación Lakebase.
  2. Haga clic en Conectar para abrir el modal de conexión de base de datos.
  3. Seleccione el rol de OAuth en la lista desplegable Roles .
  4. Haga clic en Copiar token de OAuth para copiar un nuevo token.

Más información: Conexión con un rol | de OAuthAcerca de la autenticación

Eliminación de un rol

Importante

La eliminación de un rol es una acción permanente que no se puede deshacer y no se puede eliminar un rol propietario de una base de datos. La base de datos debe eliminarse antes de eliminar el rol que posee la base de datos.

Para eliminar un rol:

  1. Vaya a la pestaña Roles y bases de datos de la rama en la aplicación Lakebase.
  2. Seleccione Eliminar rol en el menú rol y confirme la eliminación.

Nota:

La administración de roles de base de datos requiere CAN MANAGE o CAN USE permiso de proyecto. Si no tiene el permiso necesario, verá un mensaje "Permisos necesarios" al intentar una acción relacionada con roles. Póngase en contacto con un administrador del área de trabajo para solicitar acceso. Para obtener más información, consulte Administración de permisos de proyecto.