Privilegios y objetos protegibles en el metastore de Hive

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

Un privilegio es un derecho concedido a una entidad de seguridad para operar en un objeto protegible del 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 del metastore de Hive heredado. Si usa Unity Catalog, consulte Privilegios y objetos protegibles en Unity Catalog.

Objetos protegibles en el metastore de Hive

Un objeto protegible es un objeto definido en el metastore en el que se pueden conceder privilegios a una entidad de seguridad.

Para administrar los privilegios de cualquier objeto, debe ser su propietario o administrador.

Sintaxis

  securable_object
    { ANY FILE |
      CATALOG [ catalog_name ] |
      { SCHEMA | DATABASE } schema_name |
      FUNCTION function_name |
      [ TABLE ] table_name |
      VIEW view_name
      }

Parámetros

  • ANY FILE

    Controla el acceso al sistema de archivos subyacente.

  • CATALOGcatalog_name

    Controla el acceso a todo el catálogo de datos.

  • { SCHEMA | DATABASE }schema_name

    Controla el acceso a un esquema.

  • FUNCTIONfunction_name

    Controla el acceso a una función con nombre.

  • [ TABLE ]table_name

    Controla el acceso a una tabla administrada o externa.

  • VIEWview_name

    Controla el acceso a las vistas de SQL.

Modelo de herencia

Los objetos protegibles en el metastore de Hive son jerárquicos y los privilegios se heredan hacia abajo. Esto significa que conceder o denegar un privilegio en CATALOG concede o deniega automáticamente el privilegio a todos los esquemas del catálogo. De igual modo, todos los objetos de del esquema heredan los privilegios concedidos a un objeto de ese esquema. Este patrón se cumple para todos los objetos protegibles.

Si se deniegan privilegios de usuario en una tabla, el usuario no podrá ver la tabla cuando intente enumerar todas las tablas del esquema. Si se deniegan privilegios de usuario en un esquema, el usuario no podrá ver el esquema cuando intente enumerar todos los esquemas del catálogo.

Tipos de privilegio

En la tabla siguiente se muestran qué privilegio está asociado a cada objeto protegible.

Tipo de privilegio ANONYMOUS FUNCTION ANY FILE CATALOG SCHEMA FUNCTION TABLE VIEW
CREATE
MODIFY
READ_METADATA
SELECT
USAGE
  • 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.

  • CREATE

    Cree objetos dentro del catálogo o esquema.

  • MODIFY

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

    Si securable_object es hive_metastore o un esquema dentro de él, al conceder MODIFY se concederá MODIFY en todas las tablas y vistas actuales y futuras dentro del objeto protegible.

  • READ_METADATA

    Detecte el objeto protegible en SHOW e interrogue el objeto en DESCRIBE.

    Si el objeto protegible es el catálogo hive_metastore o un esquema de él, al conceder READ_METADATA se concederá READ_METADATA en todas las tablas y vistas actuales y futuras dentro del objeto protegible.

  • READ FILES

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

  • 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 USAGE en el esquema y el catálogo del objeto.

    Si el objeto protegible es hive_metastore o un esquema dentro de él, al conceder SELECT se concederá SELECT en todas las tablas y vistas actuales y futuras dentro del objeto protegible.

  • USAGE

    Obligatorio, pero no suficiente para hacer referencia a los objetos de un catálogo o esquema. La entidad de seguridad también debe tener privilegios en los objetos protegibles individuales.

  • WRITE FILES

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

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 USAGE ON SCHEMA some_schema FROM `alf@melmak.et`;