Privilegios y objetos protegibles en Unity Catalog

Se aplica a:casilla marcada como Sí Databricks SQL casilla marcada como Sí Databricks Runtime casilla marcada como Sí Solo Unity Catalog

Un privilegio es un derecho concedido a una entidad de seguridad para operar en un objeto protegible en el metastore. El modelo de privilegios y los objetos protegibles difieren en función de si usa un metastore de Unity Catalog o el metastore de Hive heredado. En este artículo se describe el modelo de privilegios de Unity Catalog. Si usa el metastore de Hive, consulte Privilegios y objetos protegibles en el metastore de Hive.

Nota:

En este artículo se hace referencia al modelo de herencia y privilegios del catálogo de Unity en la versión 1.0 del modelo de privilegios. Si ha creado el metastore de Unity Catalog durante la versión preliminar pública (antes del 25 de agosto de 2022), puede actualizar a la versión 1.0 del modelo de privilegios si sigue Actualización a la herencia de privilegios.

Objetos protegibles

Un objeto protegible es un objeto definido en el metastore de Unity Catalog en el que se pueden conceder privilegios a una entidad de seguridad. Para administrar los privilegios de cualquier objeto, debe ser su propietario.

Sintaxis

securable_object
  { CATALOG [ catalog_name ] |
    CONNECTION connection_name |
    EXTERNAL LOCATION location_name |
    FUNCTION function_name |
    METASTORE |
    SCHEMA schema_name |
    SHARE share_name |
    STORAGE CREDENTIAL credential_name |
    [ TABLE ] table_name |
    VIEW view_name |
    VOLUME volume_name
  }

También puede especificar SERVER en lugar de CONNECTION y DATABASE en lugar de SCHEMA.

Parámetros

Modelo de herencia

Los objetos protegibles del catálogo de Unity son jerárquicos y los privilegios se heredan hacia abajo. Esto significa que, al conceder un privilegio en el catálogo, se concede automáticamente dicho privilegio a todos los esquemas actuales y futuros del catálogo. Del mismo modo, todas las tablas y vistas actuales y futuras de un esquema heredan los privilegios concedidos en ese esquema.

Por ejemplo, si concede el privilegio SELECT en un esquema a un usuario, se concede automáticamente al usuario el privilegio SELECT en todas las tablas, vistas y vistas materializadas actuales y futuras del esquema.

Tipos de privilegio

En la tabla siguiente se muestra qué privilegios de Unity Catalog se asocian a qué objetos protegibles de Unity Catalog.

Elemento protegible Privilegios
Metastore CREATE CATALOG, CREATE CONNECTION, CREATE EXTERNAL LOCATION, CREATE PROVIDER, CREATE RECIPIENT, CREATE SHARE, CREATE STORAGE CREDENTIAL, SET SHARE PERMISSION, USE MARKETPLACE ASSETS, USE PROVIDER, USE RECIPIENT, USE SHARE
Catálogo ALL PRIVILEGES, APPLY TAG, BROWSE, CREATE SCHEMA, USE CATALOG

Todos los usuarios tienen USE CATALOG en el catálogo main de manera predeterminada.

Los siguientes tipos de privilegios se aplican a objetos protegibles dentro de un catálogo. Puede conceder estos privilegios en el nivel de catálogo para aplicarlos a los objetos actuales y futuros pertinentes del catálogo.

CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, CREATE FOREIGN CATALOG, READ VOLUME, WRITE VOLUME, EXECUTE, MODIFY, SELECT, USE SCHEMA
Esquema ALL PRIVILEGES, APPLY TAG, CREATE FUNCTION, CREATE TABLE, CREATE MODEL, CREATE VOLUME, USE SCHEMA

Los siguientes tipos de privilegios se aplican a objetos protegibles dentro de un esquema. Puede conceder estos privilegios en el nivel de esquema para aplicarlos a los objetos actuales y futuros pertinentes dentro del esquema.

EXECUTE, MODIFY, SELECT, READ VOLUME, WRITE VOLUME
Tabla ALL PRIVILEGES, APPLY TAG, SELECT, MODIFY
Ver ALL PRIVILEGES, APPLY TAG, SELECT
Volumen ALL PRIVILEGES, READ VOLUME, WRITE VOLUME
Ubicación externa ALL PRIVILEGES, BROWSE, CREATE EXTERNAL TABLE, CREATE EXTERNAL VOLUME, READ FILES, WRITE FILES, CREATE MANAGED STORAGE
Credencial de almacenamiento ALL PRIVILEGES, CREATE EXTERNAL LOCATION, CREATE EXTERNAL TABLE, READ FILES, WRITE FILES
Conexión ALL PRIVILEGES, CREATE FOREIGN CATALOG, USE CONNECTION
Función ALL PRIVILEGES, EXECUTE
Modelo registrado ALL PRIVILEGES, APPLY TAG, EXECUTE
Compartir SELECT (se pueden conceder a RECIPIENT)
Recipient Ninguno
Proveedor Ninguno
  • APPLY TAG

    Aplicar y editar etiquetas en un objeto.

  • ALL PRIVILEGES

    Se usa para conceder o revocar todos los privilegios aplicables al objeto protegible y a sus objetos secundarios sin especificarlos explícitamente. Esto se expande a todos los privilegios disponibles en el momento en que se realizan las comprobaciones de permisos. No concede individualmente al usuario cada privilegio aplicable en el momento de la concesión.

    Cuando ALL PRIVILEGES se revoca, solo se revoca el privilegio ALL PRIVILEGES en sí. Los usuarios conservan cualquier otro privilegio que se les haya concedido por separado.

  • BROWSE

    Importante

    Esta característica está en versión preliminar pública.

    Vea los metadatos de un objeto mediante el Explorador de catálogos, el explorador de esquemas, los resultados de búsqueda, el gráfico de linaje, information_schema, y la API de REST. El usuario no requiere el privilegio USE CATALOG en el catálogo primario ni USE SCHEMA en el esquema primario.

  • CREATE CATALOG

    Cree catálogos en un metastore de Unity Catalog.

  • CREATE CONNECTION

    Cree conexiones externas en un metastore de Unity Catalog.

  • CREATE EXTERNAL LOCATION

    Cree una ubicación externa con la credencial de almacenamiento. Cuando se aplica a una credencial de almacenamiento, permite a un usuario crear una ubicación externa mediante la credencial de almacenamiento. Este privilegio también se debe conceder a un usuario del metastore para permitirle crear una ubicación externa en ese metastore.

  • CREATE EXTERNAL TABLE

    Cree tablas externas mediante la credencial de almacenamiento o la ubicación externa.

  • CREATE EXTERNAL VOLUME

    Crear volúmenes externos mediante la ubicación externa.

  • CREATE FOREIGN CATALOG

    Cree catálogos en una conexión externa. Luego, cada catálogo externo expone los esquemas disponibles en el sistema de destino federado.

  • CREATE FUNCTION

    Cree una función en un esquema. El usuario también requiere el privilegio USE CATALOG en el catálogo y el privilegio USE SCHEMA en el esquema.

  • CREATE MANAGED STORAGE

    Permite a un usuario especificar una ubicación para almacenar tablas administradas a nivel de catálogo o esquema, que reemplaza al almacenamiento raíz predeterminado del metastore de Unity Catalog.

  • CREATE MODEL

    Permite a un usuario crear un modelo registrado de MLflow en el esquema. Dado que los privilegios se heredan, CREATE MODEL también se puede conceder en un catálogo, lo que permite a un usuario crear un modelo registrado en cualquier esquema existente o futuro del catálogo.

    El usuario también debe tener el privilegio USE CATALOG en su catálogo principal yUSE SCHEMA en el esquema principal.

  • CREATE PROVIDER

    (Para destinatarios de datos de Delta Sharing) Cree un proveedor en un metastore de Unity Catalog.

  • CREATE RECIPIENT

    (Para proveedores de datos de Delta Sharing) Cree un destinatario en un metastore de Unity Catalog.

  • CREATE SCHEMA

    Cree un esquema en un catálogo. El usuario también necesita el privilegio USE CATALOG en el catálogo.

  • CREATE SHARE

    (Para proveedores de datos de Delta Sharing) Cree un recurso compartido en un metastore de Unity Catalog.

  • CREATE STORAGE CREDENTIAL

    Cree una credencial de almacenamiento en un metastore de Catálogo de Unity.

  • CREATE TABLE

    Cree una tabla o vista en un esquema. El usuario también requiere el privilegio USE CATALOG en el catálogo y el privilegio USE SCHEMA en el esquema. Para crear una tabla externa, el usuario también requiere el privilegio CREATE EXTERNAL TABLE en la ubicación externa o la credencial de almacenamiento.

  • CREATE VOLUME

    Cree un volumen en un esquema. El usuario también requiere el privilegio USE CATALOG en el catálogo y el privilegio USE SCHEMA en el esquema. Para crear un volumen externo, el usuario también requiere el privilegio CREATE EXTERNAL VOLUME en la ubicación externa.

  • EXECUTE

    Invoque una función definida por el usuario. El usuario también requiere el privilegio USE CATALOG en el catálogo y el privilegio USE SCHEMA en el esquema.

  • MODIFY

    COPY INTO, UPDATE,DELETE, INSERT o MERGE INTO la tabla.

  • READ FILES

    Consulte los archivos directamente mediante la credencial de almacenamiento o la ubicación externa.

  • READ VOLUME

    Consultar archivos dentro del volumen.

  • SELECT

    Consulte una tabla o vista, invoque una función definida por el usuario o anónima, o seleccione ANY FILE. El usuario necesita SELECT en la tabla, vista o función, así como USE CATALOG en el catálogo del objeto y USE SCHEMA en el esquema del objeto.

  • SET SHARE PERMISSION

    En Uso compartido delta, este permiso, combinado con USE SHARE y USE RECIPIENT (o propiedad del destinatario), proporciona a un usuario proveedor la capacidad de conceder a un destinatario acceso a un recurso compartido. Combinado con USE SHARE, ofrece la capacidad de transferir la propiedad de un recurso compartido a otro usuario, grupo o entidad de servicio.

  • USE CATALOG

    Obligatorio, pero no suficiente para hacer referencia a los objetos de un catálogo. La entidad de seguridad también debe tener privilegios en los objetos protegibles individuales. No es necesario que un usuario lea los metadatos de un objeto mediante el privilegio BROWSE.

  • USE CONNECTION

    Se requiere para leer metadatos en una conexión externa o en todas las conexiones externas cuando se usan en el metastore.

  • USE MARKETPLACE ASSETS

    Habilitado de forma predeterminada para todos los metastores de Unity Catalog. En Databricks Marketplace, este privilegio proporciona a un usuario la capacidad de obtener acceso instantáneo o solicitar acceso a los productos de datos compartidos en un anuncio de Marketplace. También permite a un usuario acceder al catálogo de solo lectura que se crea cuando un proveedor comparte un producto de datos. Sin este privilegio, el usuario requeriría los privilegios CREATE CATALOG y USE PROVIDER o el rol de administrador de metastore. Esto le permite limitar el número de usuarios con estos permisos con privilegios.

  • USE PROVIDER

    En Delta Sharing, proporciona a un usuario destinatario acceso de solo lectura a todos los proveedores de un metastore de destinatario y sus recursos compartidos. En combinación con el privilegio CREATE CATALOG, este privilegio permite a un usuario destinatario que no sea un administrador de metastore montar un recurso compartido como catálogo. Esto le permite limitar el número de usuarios con el eficaz rol de administrador de metastore.

  • USE RECIPIENT

    En Uso compartido delta, proporciona a un usuario proveedor acceso de solo lectura a todos los destinatarios de un metastore de proveedor y sus recursos compartidos. Esto permite a un usuario proveedor que no sea un administrador de metastore ver los detalles del destinatario, el estado de autenticación del destinatario y la lista de recursos compartidos que el proveedor haya compartido con el destinatario.

    En Marketplace de Databricks, esto proporciona a los usuarios del proveedor la capacidad de ver las listas y las solicitudes de consumidor en la consola del proveedor.

  • USE SCHEMA

    Obligatorio, pero no suficiente para hacer referencia a los objetos de un esquema. La entidad de seguridad también debe tener privilegios en los objetos protegibles individuales. No es necesario que un usuario lea los metadatos de un objeto mediante el privilegio BROWSE.

  • USE SHARE

    En Uso compartido delta, esto proporciona a un usuario proveedor acceso de solo lectura a todos los recursos compartidos definidos en un metastore de proveedor. Esto permite a un usuario proveedor que no sea un administrador de metastore enumerar recursos compartidos y enumerar los recursos (tablas y cuadernos) en un recurso compartido, junto con los destinatarios del recurso compartido.

    En Marketplace de Databricks, esto proporciona a los usuarios del proveedor la posibilidad de ver detalles sobre los datos compartidos en una lista.

  • WRITE FILES

    Aplique COPY INTO directamente en los archivos que se rigen por la credencial de almacenamiento o la ubicación externa.

  • WRITE VOLUME

    Archivos COPY INTO directamente en un volumen.

Ejemplos

-- Grant a privilege to the user alf@melmak.et
> GRANT SELECT ON TABLE t TO `alf@melmak.et`;

-- Revoke a privilege from the general public group.
> REVOKE USE SCHEMA ON SCHEMA some_schema FROM `alf@melmak.et`;