Compartir a través de


Administración de roles de Postgres

Importante

Esta característica se encuentra en versión preliminar pública en las siguientes regiones: westus, westus2, eastuseastus2, centralussouthcentralusnortheuropewesteuropeaustraliaeastbrazilsouthcanadacentralcentralindia, , . southeastasiauksouth

Se crea automáticamente un rol de Postgres para la identidad de Azure Databricks del propietario de la instancia de base de datos de Lakebase.

Inicialmente, solo el propietario de la instancia puede iniciar sesión y acceder a la instancia a través de Postgres. Para permitir que otras identidades de Azure Databricks inicien sesión en la instancia de base de datos, la identidad de Azure Databricks debe tener un rol de Postgres correspondiente.

En esta página se describe cómo agregar y administrar roles adicionales basados en identidades de Azure Databricks en PostgreSQL.

Creación de roles de Postgres y concesión de privilegios para identidades de Azure Databricks

Cree roles de Postgres mediante la interfaz de usuario de Azure Databricks o las consultas de PostgreSQL.

Nota:

Las acciones de administración de roles se rigen por los permisos concedidos en la instancia de base de datos. Asegúrese de que tiene el nivel de acceso adecuado antes de intentar administrar roles.

Interfaz de usuario

Los usuarios con CAN USE permiso en la instancia de base de datos pueden ver los roles de Postgres existentes asociados a identidades de Azure Databricks o agregar un rol para su propia identidad a la instancia.

Además, los usuarios con CAN MANAGE pueden crear roles para otras identidades de Azure Databricks, incluidos los privilegios adicionales, y quitar roles para cualquier identidad de Azure Databricks.

Puede asignar permisos adicionales a los usuarios, grupos o entidades de servicio deseados en la página de información general de instancias de base de datos .

  1. Haga clic en Calcular en la barra lateral del área de trabajo.

  2. Haga clic en Instancias de base de datos.

  3. Haga clic en la pestaña Permissions (Permisos).

  4. Haga clic en Agregar rol de PostgreSQL en la parte superior derecha.

  5. Introduzca un usuario, grupo o principal de servicio en Identidad del espacio de trabajo y seleccione la identidad de Azure Databricks. Debe seleccionar una identidad de Azure Databricks que aún no tenga un rol de Postgres en la instancia.

  6. Seleccione una Pertenencia a rol. Si tiene CAN MANAGE permiso en la instancia de base de datos, puede agregar pertenencia al databricks_superuser rol y habilitar algunos atributos de rol.

  7. Seleccione los atributos de PostgreSQL que se van a conceder al nuevo rol.

    • CREATEDB: concede permiso para crear nuevas bases de datos.
    • CREATEROLE: concede permiso para crear nuevos roles.
    • BYPASS RLS: otorga permiso para pasar por alto toda la seguridad a nivel de fila en la instancia.
  8. Haga clic en Confirmar.

PostgreSQL

Antes de crear nuevos roles de Postgres, compruebe que cumple los siguientes requisitos:

  • Debe tener los permisos CREATE y CREATE ROLE en la base de datos.
  • Debe autenticarse e iniciar sesión en Postgres como identidad de Azure Databricks (usuario, entidad de servicio o grupo). Las sesiones autenticadas de Native Postgres no pueden crear roles de Azure Databricks.
  • El token de autenticación debe ser válido y no expirado en el momento de la creación del rol.

Use la databricks_create_role función para agregar y crear roles de PostgreSQL basados en identidad de Azure Databricks. La extensión databricks_auth de PostgreSQL personalizada proporciona la databricks_create_role función .

  1. Cree la databricks_auth extensión. Cada base de datos de Postgres debe tener su propia extensión.

    CREATE EXTENSION IF NOT EXISTS databricks_auth;
    
  2. Use la databricks_create_role función para agregar y crear nuevos roles de Postgres para identidades de Azure Databricks. El rol aún no debe existir. Si existe un rol con el mismo nombre, elimínelo antes de crear el rol de Azure Databricks basado en identidad.

    SELECT databricks_create_role('identity_name', 'identity_type');
    

    Los identity_name parámetros y identity_type dependen del tipo de identidad de Azure Databricks:

    • Usuario de Azure Databricks:

      • identity_name: correo electrónico del usuario, por ejemplo, myuser@databricks.com
      • tipo_de_identidad: USER
      SELECT databricks_create_role('myuser@databricks.com','USER');
      
    • Entidad de servicio de Azure Databricks:

      • identity_name: ID de aplicación del Principal de servicio, por ejemplo, 8c01cfb1-62c9-4a09-88a8-e195f4b01b08
      • tipo_de_identidad: SERVICE_PRINCIPAL
      SELECT databricks_create_role('8c01cfb1-62c9-4a09-88a8-e195f4b01b08','SERVICE_PRINCIPAL');
      
    • Grupo de Azure Databricks:

      • identity_name: nombre del grupo (distingue mayúsculas de minúsculas): My Group 123
      • tipo_de_identidad: GROUP
      SELECT databricks_create_role('My Group 123','GROUP');
      
  3. Un rol creado con databricks_create_role solo tiene privilegios concedidos a PUBLIC después de la creación. Para conceder o revocar privilegios adicionales, use los comandos GRANT estándar de administración de privilegios de Postgres y REVOKE.

    Conceda al rol permiso de lectura para acceder a una tabla.

    GRANT SELECT ON "my_schema"."my_table" TO <role-name>;
    

    Quite el acceso de escritura a una tabla del rol.

    REVOKE INSERT, UPDATE, DELETE ON TABLE "my_schema"."my_table" FROM <role-name>;
    

    Revoque todo acceso a una base de datos del rol.

    REVOKE CONNECT ON DATABASE "example_database" FROM <role-name>;
    

Visualización de roles de identidad de Azure Databricks

Interfaz de usuario

Puede ver qué usuarios, grupos y principales del servicio tienen un rol correspondiente de Postgres en la página de vista general de instancias de base de datos.

  1. Haga clic en Calcular en la barra lateral del área de trabajo.
  2. Haga clic en Instancias de base de datos.
  3. Haga clic en la pestaña Permissions (Permisos).

PostgreSQL

Use consultas de PostgreSQL para enumerar todos los roles de identidad de Azure Databricks creados de forma predeterminada y a partir del uso de la función databricks_create_role, use la función databricks_list_roles en la extensión databricks_auth. Esta lista incluye a todos los usuarios, entidades de servicio y grupos de Azure Databricks que se han agregado para autenticarse como roles de Postgres.

CREATE EXTENSION IF NOT EXISTS databricks_auth;
SELECT * from databricks_list_roles;

Eliminar un rol de Postgres basado en identidad de Azure Databricks

Interfaz de usuario

No se puede deshacer la eliminación de un rol. Puede volver a crear un rol, pero cualquier reasignación de propiedad de objeto no es reversible sin quitar el nuevo rol que posee objetos reasignados.

  1. Haga clic en Calcular en la barra lateral del área de trabajo.
  2. Haga clic en Instancias de base de datos.
  3. Haga clic en la pestaña Permissions (Permisos).
  4. Para la identidad de rol que desea quitar, en el lado derecho, haga clic en el icono de menú Kebab..
  5. Haga clic en Quitar rol.
  6. Si necesita quitar un rol propietario de objetos, active Reasignar objetos de propiedad. Esto reasignará todos los objetos de propiedad reasignables (bases de datos, esquemas y tablas) al otro rol y, a continuación, quitará los objetos que no se puedan reasignar.
  7. Haga clic en Confirmar.

PostgreSQL

Un rol de Postgres asociado a la identidad de Azure Databricks se puede eliminar igual que cualquier otro rol de Postgres. Para más información, consulte la documentación de PostgreSQL sobre la eliminación de roles. Después de que se elimine un rol basado en identidad de Azure Databricks, no se puede utilizar para la autenticación con base en tokens ni para acceder a PostgreSQL.