Privilegios y objetos protegibles en el metastore de Hive
Se aplica a: Databricks SQL Databricks Runtime
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 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.
CATALOG
catalog_nameControla el acceso a todo el catálogo de datos.
{ SCHEMA | DATABASE }
schema_nameControla el acceso a un esquema.
FUNCTION
function_nameControla el acceso a una función con nombre.
[ TABLE ]
table_nameControla el acceso a una tabla administrada o externa.
VIEW
view_nameControla 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 | Sí | Sí | |||||
MODIFY | Sí | Sí | Sí | Sí | |||
READ_METADATA | Sí | Sí | Sí | Sí | |||
SELECT | Sí | Sí | Sí | Sí | Sí | Sí | Sí |
USAGE | Sí | Sí |
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, INSERTo MERGE INTO la tabla.
Si securable_object es
hive_metastore
o un esquema dentro de él, al concederMODIFY
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 concederREAD_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 necesitaSELECT
en la tabla, vista o función, así comoUSAGE
en el esquema y el catálogo del objeto.Si el objeto protegible es
hive_metastore
o un esquema dentro de él, al concederSELECT
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`;