Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
El escalado automático de Lakebase está en Beta en las siguientes regiones: eastus2, westeurope, westus.
El escalado automático de Lakebase es la versión más reciente de Lakebase con proceso de escalado automático, escalado a cero, bifurcación y restauración instantánea. Para ver la comparación de características con Lakebase Provisioned, consulte Elección entre versiones.
Al crear un proyecto, Lakebase crea varios roles de Postgres en el proyecto:
- Un rol de Postgres para la identidad de Azure Databricks del propietario del proyecto (por ejemplo,
user@databricks.com), que posee la base de datos predeterminadadatabricks_postgres - Un
databricks_superuserrol administrativo
La databricks_postgres base de datos se crea para que pueda conectarse y probar Lakebase inmediatamente después de la creación del proyecto.
También se crean varios roles administrados por el sistema. Estos son roles internos que usan los servicios de Azure Databricks para las operaciones de administración, supervisión y datos.
Nota:
Los roles de Postgres controlan el acceso a la base de datos (quién puede consultar datos). Para obtener permisos de proyecto (que pueden administrar la infraestructura), consulte Permisos de proyecto. Para obtener un tutorial sobre cómo configurar ambos, consulte Tutorial: Concesión de acceso de proyecto y base de datos a un nuevo usuario.
Consulte Roles creados previamente y Roles del sistema.
Creación de roles de Postgres
Lakebase admite dos tipos de roles de Postgres para el acceso a bases de datos:
-
Roles de OAuth para identidades de Azure Databricks: Cree estos mediante la
databricks_authextensión y SQL. Permite que las identidades de Azure Databricks (usuarios, entidades de servicio y grupos) se conecten mediante tokens de OAuth. - Roles de contraseña de Postgres nativos: Cree estos mediante la interfaz de usuario de Lakebase o SQL. Use cualquier nombre de rol válido con autenticación de contraseña.
Para obtener instrucciones sobre cómo elegir el tipo de rol que se va a usar, consulte Introducción a la autenticación. Cada uno está diseñado para diferentes casos de uso.
Creación de un rol de OAuth para una identidad de Azure Databricks mediante SQL
Para permitir que las identidades de Azure Databricks (usuarios, entidades de servicio o grupos) se conecten mediante tokens de OAuth, debe crear sus roles de Postgres mediante la databricks_auth extensión . La creación de un rol para un grupo permite que todos los miembros del grupo se autentiquen mediante el rol de grupo, lo que simplifica la administración de permisos.
Para obtener instrucciones detalladas sobre cómo obtener tokens de OAuth en flujos de usuario a máquina y de máquina a máquina, consulte Obtención de un token de OAuth en un flujo de usuario a máquina y Obtención de un token de OAuth en un flujo de máquina a máquina en la documentación de autenticación.
Requisitos previos:
- Debe tener los permisos
CREATEyCREATE ROLEen la base de datos. - Debe autenticarse como una identidad de Azure Databricks con un token de OAuth válido.
- Las sesiones autenticadas de Native Postgres no pueden crear roles de OAuth
Para crear un rol de OAuth:
Cree la
databricks_authextensión. Cada base de datos de Postgres debe tener su propia extensión.CREATE EXTENSION IF NOT EXISTS databricks_auth;Use la
databricks_create_rolefunción para crear un rol de Postgres para la identidad de Azure Databricks:SELECT databricks_create_role('identity_name', 'identity_type');Para un usuario de Azure Databricks:
SELECT databricks_create_role('myuser@databricks.com', 'USER');Para un principal de servicio de Azure Databricks:
SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08', 'SERVICE_PRINCIPAL');Para un grupo de Azure Databricks:
SELECT databricks_create_role('My Group Name', 'GROUP');El nombre del grupo distingue entre mayúsculas y minúsculas y debe coincidir exactamente con la forma en que aparece en el área de trabajo de Azure Databricks. Al crear un rol de Postgres para un grupo, cualquier miembro directo o indirecto (usuario o entidad de servicio) de ese grupo de Databricks puede autenticarse en Postgres como rol de grupo mediante su token de OAuth individual. Esto le permite administrar permisos en el nivel de grupo en Postgres en lugar de mantener los permisos para usuarios individuales.
Conceda permisos de base de datos al rol recién creado.
La databricks_create_role() función crea un rol de Postgres con solo LOGIN permiso. Después de crear el rol, debe conceder los privilegios y permisos de base de datos adecuados en las bases de datos, esquemas o tablas específicos a las que el usuario necesita acceder. Obtenga información sobre cómo: Administrar permisos
Autenticación basada en grupos
Al crear un rol de Postgres para un grupo de Azure Databricks, se habilita la autenticación basada en grupos. Esto permite que cualquier miembro del grupo de Azure Databricks se autentique en Postgres mediante el rol del grupo, lo que simplifica la administración de permisos.
Funcionamiento:
- Cree un rol de Postgres para un grupo de Databricks mediante
databricks_create_role('Group Name', 'GROUP'). - Conceda permisos de base de datos al rol de grupo en Postgres. Consulte Administración de permisos.
- Cualquier miembro directo o indirecto (usuario o entidad de servicio) del grupo de Databricks puede conectarse a Postgres mediante su token de OAuth individual.
- Al conectarse, el miembro se autentica como rol de grupo y hereda todos los permisos concedidos a ese rol.
Flujo de autenticación:
Cuando se conecta un miembro del grupo, especifican el nombre del rol postgres del grupo como nombre de usuario y su propio token de OAuth como contraseña:
export PGPASSWORD='<OAuth token of a group member>'
export GROUP_ROLE_NAME='<pg-case-sensitive-group-role-name>'
psql -h $HOSTNAME -p 5432 -d databricks_postgres -U $GROUP_ROLE_NAME
Consideraciones importantes:
- Validación de pertenencia a grupos: La pertenencia a grupos solo se valida en el momento de la autenticación. Si se quita un miembro del grupo de Azure Databricks después de establecer una conexión, la conexión permanece activa. Se rechazan los nuevos intentos de conexión de los miembros eliminados.
- Ámbito del área de trabajo: Solo se admiten los grupos asignados al mismo área de trabajo de Azure Databricks que el proyecto para la autenticación basada en grupos. Para obtener información sobre cómo asignar grupos a un área de trabajo, consulte Administración de grupos.
-
Distinción entre mayúsculas y minúsculas: El nombre de grupo usado en
databricks_create_role()debe coincidir exactamente con el nombre del grupo tal como aparece en el área de trabajo de Azure Databricks, incluido el caso. - Administración de permisos: La administración de permisos en el nivel de grupo en Postgres es más eficaz que administrar permisos de usuario individuales. Al conceder permisos al rol de grupo, todos los miembros del grupo actuales y futuros heredan esos permisos automáticamente.
Nota:
Los nombres de rol no pueden superar los 63 caracteres y no se permiten algunos nombres. Más información: Administración de roles
Creación de un rol nativo de contraseña de Postgres
Puede crear roles nativos de contraseña de Postgres mediante la interfaz de usuario de Lakebase o los comandos SQL estándar.
Con la interfaz de usuario:
- En la aplicación Lakebase, vaya a la página de información general de la rama y, a continuación, a la pestaña Roles y bases de datos de la rama.
- Haga clic en Agregar rol y especifique un nombre de rol (cualquier nombre de rol válido de Postgres).
- Haga clic en Crear.
- Copie la contraseña generada y proporciónela de forma segura al usuario que usará este rol.
La interfaz de usuario de Lakebase genera automáticamente una contraseña segura con entropía de 60 bits. A los roles creados a través de la interfaz de usuario se les concede automáticamente la pertenencia al databricks_superuser rol, lo que proporciona privilegios amplios de base de datos.
Uso de SQL:
También puede crear roles nativos de contraseña de Postgres mediante comandos estándar de Postgres SQL:
CREATE ROLE role_name WITH LOGIN PASSWORD 'your_secure_password';
Al crear roles con SQL, la contraseña debe tener al menos 12 caracteres con una combinación de caracteres en minúsculas, mayúsculas, números y símbolos. Las contraseñas definidas por el usuario se validan en tiempo de creación para garantizar la entropía de 60 bits.
Visualización de roles de Postgres
Interfaz de usuario
Para ver todos los roles de Postgres del proyecto, vaya a la pestaña Roles y bases de datos de la rama en la aplicación Lakebase. Todos los roles creados en la rama, a excepción de los roles del sistema, se muestran, incluidos los roles nativos de Postgres con autenticación de contraseña.
PostgreSQL
Ver todos los roles con \du el comando :
Puede ver todos los roles de Postgres, incluidos los roles del sistema, mediante el \du metacomando desde cualquier cliente de Postgres (como psql) o el editor sql de Lakebase:
\du
List of roles
Role name | Attributes
-----------------------------+------------------------------------------------------------
cloud_admin | Superuser, Create role, Create DB, Replication, Bypass RLS
my.user@databricks.com | Create role, Create DB, Bypass RLS
databricks_control_plane | Superuser
databricks_gateway |
databricks_monitor |
databricks_reader_12345 | Create role, Create DB, Replication, Bypass RLS
databricks_replicator | Replication
databricks_superuser | Create role, Create DB, Cannot login, Bypass RLS
databricks_writer_12345 | Create role, Create DB, Replication, Bypass RLS
Esto muestra todos los roles y sus atributos (Superusuario, Crear rol, Crear base de datos, etc.).
Quitar un rol de Postgres
Puede quitar los roles basados en identidad de Databricks y los roles nativos de contraseña de Postgres.
Interfaz de usuario
La eliminación de un rol es una acción permanente que no se puede deshacer. 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 cualquier rol de Postgres mediante la interfaz de usuario:
- Vaya a la pestaña Roles y bases de datos de la rama en la aplicación Lakebase.
- Seleccione Eliminar rol en el menú rol y confirme la eliminación.
PostgreSQL
Puede quitar cualquier rol de Postgres mediante comandos estándar de Postgres. Para más información, consulte la documentación de PostgreSQL sobre la eliminación de roles.
Quitar un rol:
DROP ROLE role_name;
Después de quitar un rol basado en identidad de Azure Databricks, esa identidad ya no se puede autenticar en Postgres mediante tokens de OAuth hasta que se crea un nuevo rol.
Roles creados previamente
Una vez creado un proyecto, Azure Databricks crea automáticamente roles de Postgres para la administración de proyectos y la introducción.
| Rol | Description | Privilegios heredados |
|---|---|---|
<project_owner_role> |
La identidad de Azure Databricks del creador del proyecto (por ejemplo, my.user@databricks.com). Este rol posee la base de datos predeterminada databricks_postgres y puede iniciar sesión y administrar el proyecto. |
Miembro de databricks_superuser |
databricks_superuser |
Un rol administrativo interno. Se usa para configurar y administrar el acceso en el proyecto. A este rol se le conceden privilegios amplios. | Hereda de pg_read_all_data, pg_write_all_data, y pg_monitor. |
Más información sobre las funcionalidades y privilegios específicos de estos roles: funcionalidades de rol creadas previamente
Roles del sistema creados por Azure Databricks
Azure Databricks crea los siguientes roles de sistema necesarios para los servicios internos. Puede ver estos roles emitiendo un comando desde \du, desde psql o el Editor de SQL de Lakebase.
| Rol | Propósito |
|---|---|
cloud_admin |
Rol de superusuario usado para la administración de infraestructuras en la nube |
databricks_control_plane |
Rol de superusuario usado por componentes internos de Databricks para las operaciones de administración |
databricks_monitor |
Usado por los servicios de recopilación de métricas internos |
databricks_replicator |
Se usa para las operaciones de replicación de bases de datos |
databricks_writer_<dbid> |
Rol por base de datos usado para crear y administrar tablas sincronizadas |
databricks_reader_<dbid> |
Rol por base de datos que se usa para leer tablas registradas en el catálogo de Unity |
databricks_gateway |
Se usa para conexiones internas para servicios de servicio de datos administrados |
Para obtener información sobre cómo funcionan los roles, los privilegios y las pertenencias a roles en Postgres, use los siguientes recursos en la documentación de Postgres: