Privilegios y objetos protegibles en Unity Catalog
Se aplica a: Databricks SQL Databricks Runtime 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
CATALOG
catalog_nameControla el acceso a todo el catálogo de datos.
CONNECTION
connection_nameControla el acceso a la conexión.
EXTERNAL LOCATION
location_nameControla el acceso a una ubicación externa.
FUNCTION
function_nameControla el acceso a una función definida por el usuario.
METASTORE
Controla el acceso al metastore de Unity Catalog asociado al área de trabajo. Al administrar los privilegios en un metastore, no se incluye el nombre del metastore en un comando SQL. Unity Catalog concederá o revocará el privilegio en el metastore asociado al área de trabajo.
REGISTERED MODEL
Controla el acceso a un modelo registrado de MLflow.
SCHEMA
schema_nameControla el acceso a un esquema.
STORAGE CREDENTIAL
credential_nameControla el acceso a una credencial de almacenamiento.
SHARE
share_nameControla el acceso de un recurso compartido a un destinatario.
[ TABLE ]
table_nameControla el acceso a una tabla administrada o externa. Si no se encuentra la tabla, Azure Databricks genera un error TABLE_OR_VIEW_NOT_FOUND.
VIEW
view_nameControla el acceso a una vista. Si no se encuentra la vista, Azure Databricks genera un error TABLE_OR_VIEW_NOT_FOUND.
VOLUME
volume_nameControla el acceso a un volumen. Si el volumen no se puede encontrar, Azure Databricks genera un error.
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 privilegioALL 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 privilegioUSE CATALOG
en el catálogo primario niUSE 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 privilegioUSE 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 privilegioUSE SCHEMA
en el esquema. Para crear una tabla externa, el usuario también requiere el privilegioCREATE 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 privilegioUSE SCHEMA
en el esquema. Para crear un volumen externo, el usuario también requiere el privilegioCREATE 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 privilegioUSE 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 necesitaSELECT
en la tabla, vista o función, así comoUSE CATALOG
en el catálogo del objeto yUSE SCHEMA
en el esquema del objeto.SET SHARE PERMISSION
En Uso compartido delta, este permiso, combinado con
USE SHARE
yUSE RECIPIENT
(o propiedad del destinatario), proporciona a un usuario proveedor la capacidad de conceder a un destinatario acceso a un recurso compartido. Combinado conUSE 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
yUSE 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
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`;