Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se explica cómo conceder, revocar e inspeccionar privilegios en objetos protegibles del catálogo de Unity y cómo administrar la propiedad del objeto. Para obtener información conceptual sobre el modelo de permisos, la herencia de privilegios y la propiedad, consulte Conceptos del modelo de permisos del catálogo de Unity.
¿Quién puede administrar privilegios?
En principio, los usuarios no tienen acceso a los datos de un metastore. Los administradores de cuentas de Azure Databricks, los administradores del área de trabajo y los administradores de metastore tienen privilegios predeterminados para administrar el Unity Catalog. Consulte Privilegios de administrador en Unity Catalog.
Todos los objetos protegibles de Unity Catalog tienen un propietario. Los propietarios de objetos tienen todos los privilegios en ese objeto, incluida la capacidad de conceder privilegios a otras entidades de seguridad. Los propietarios pueden conceder a otros usuarios el privilegio MANAGE en el objeto, lo que permite a los usuarios administrar privilegios en el objeto. Consulte Administración de la propiedad del objeto.
Los privilegios pueden ser concedidos por cualquiera de los siguientes:
- Propietario del objeto.
- Propietario del catálogo o esquema que contiene el objeto .
- Un usuario con
MANAGEprivilegios sobre el objeto. - Un administrador de metastore.
Los administradores de cuentas también pueden conceder privilegios directamente en un metastore.
Privilegios del catálogo de áreas de trabajo
Si el área de trabajo se ha habilitado automáticamente para Unity Catalog, el área de trabajo se adjunta a un metastore de forma predeterminada y se crea un catálogo de áreas de trabajo para el área de trabajo del metastore. Los administradores del área de trabajo son los propietarios predeterminados del catálogo de áreas de trabajo. Como propietarios, pueden administrar privilegios en el catálogo de áreas de trabajo y en todos los objetos secundarios.
Todos los usuarios del área de trabajo reciben el privilegio USE CATALOG en el catálogo de áreas de trabajo. Los usuarios del área de trabajo también reciben los privilegios USE SCHEMA, CREATE TABLE, CREATE VOLUME, CREATE MODEL, CREATE FUNCTION, y CREATE MATERIALIZED VIEW en el default esquema del catálogo.
Para obtener más información, consulte Habilitación automática de Unity Catalog.
Mostrar, conceder y revocar privilegios
Puede administrar privilegios para objetos de metastore mediante comandos SQL, la CLI de Databricks, el proveedor de Databricks Terraform o el Explorador de catálogos.
En los comandos SQL siguientes, reemplace estos valores de marcador de posición:
-
<privilege-type>es un tipo de privilegio de Unity Catalog. Consulte Tipos de privilegios. -
<securable-type>: El tipo de objeto protegible, comoCATALOGoTABLE. Consulte Objetos protegibles -
<securable-name>: nombre del objeto protegible. Si el tipo protegible esMETASTORE, no proporcione el nombre protegible. Se supone que es el metastore asociado al área de trabajo. -
<principal>es un usuario, una entidad de servicio (representada por su valor applicationId) o un grupo. Debe incluir usuarios, entidades de servicio y nombres de grupo que incluyan caracteres especiales en acentos graves (` `). Consulte Entidad de seguridad.
Mostrar concesiones en un objeto
Nota
Actualmente, los usuarios con el privilegio MANAGE en un objeto no pueden ver todas las concesiones para ese objeto en el INFORMATION_SCHEMA. En su lugar, el INFORMATION_SCHEMA solo muestra concesiones propias en el objeto. Este comportamiento se corregirá en el futuro.
Los usuarios con privilegios de MANAGE pueden ver todas las concesiones en un objeto mediante comandos SQL o el Explorador de catálogos. Consulte Administración de privilegios en Unity Catalog.
Permisos necesarios::
- Los administradores de metastore, los usuarios con el privilegio
MANAGEen el objeto, el propietario del objeto o el propietario del catálogo o esquema que contiene el objeto pueden ver todas las concesiones en el objeto. - Si no dispone de los permisos anteriores, solo puede ver sus propias concesiones en el objeto.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- Seleccione el objeto, como un catálogo, un esquema, una tabla o una vista.
- Vaya a la pestaña Permisos.
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL. Puede mostrar concesiones en una entidad de seguridad específica, o puede mostrar todas las concesiones en un objeto protegible.
SHOW GRANTS [principal] ON <securable-type> <securable-name>
Por ejemplo, el siguiente comando muestra todas las concesiones en un esquema denominado default en el catálogo primario denominado main:
SHOW GRANTS ON SCHEMA main.default;
El comando devuelve:
principal actionType objectType objectKey
------------- ------------- ---------- ------------
finance-team CREATE TABLE SCHEMA main.default
finance-team USE SCHEMA SCHEMA main.default
Mostrar mis concesiones en un objeto
Permisos necesarios: siempre puede ver sus propias concesiones en un objeto.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- Seleccione el objeto, como un catálogo, un esquema, una tabla o una vista.
- Vaya a la pestaña Permisos. Si no es propietario del objeto o un administrador metastore, solo podrá ver sus propias concesiones en el objeto.
SQL
Ejecute el siguiente comando SQL en un cuaderno o editor de consultas SQL para ver las concesiones en un objeto.
SHOW GRANTS `<user>@<domain-name>` ON <securable-type> <securable-name>
Concesión de permisos en un objeto
Permisos necesarios: administrador de Metastore, el privilegio MANAGE en el objeto, el propietario del objeto o el propietario del catálogo o esquema que contiene el objeto.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- Seleccione el objeto, como un catálogo, un esquema, una tabla o una vista.
- Vaya a la pestaña Permisos.
- Haga clic en Conceder.
- Escriba la dirección de correo electrónico de un usuario o el nombre de un grupo.
- Seleccione los permisos que quiere conceder.
- Haga clic en OK.
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL.
GRANT <privilege-type> ON <securable-type> <securable-name> TO <principal>
Por ejemplo, el siguiente comando concede a un grupo denominado finance-team acceso para crear tablas en un esquema denominado default con el catálogo primario denominado main:
GRANT CREATE TABLE ON SCHEMA main.default TO `finance-team`;
GRANT USE SCHEMA ON SCHEMA main.default TO `finance-team`;
GRANT USE CATALOG ON CATALOG main TO `finance-team`;
Tenga en cuenta que los modelos registrados son un tipo de función. Para conceder un privilegio sobre un modelo se debe usar GRANT ON FUNCTION. Por ejemplo, para conceder al grupo ml-team-acme el EXECUTE privilegio en el modelo prod.ml_team.iris_model, usaría:
GRANT EXECUTE ON FUNCTION prod.ml_team.iris_model TO `ml-team-acme`;
Revocar permisos en un objeto
Permisos necesarios: administrador de Metastore, el privilegio MANAGE en el objeto, el propietario del objeto o el propietario del catálogo o esquema que contiene el objeto.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- Seleccione el objeto, como un catálogo, un esquema, una tabla o una vista.
- Vaya a la pestaña Permisos.
- Seleccione un privilegio que se haya concedido a un usuario, una entidad de servicio o un grupo.
- Haga clic en Revocar.
- Para confirmar, haga clic en Revoke (Revocar).
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL.
REVOKE <privilege-type> ON <securable-type> <securable-name> FROM <principal>
Por ejemplo, el siguiente comando revoca un grupo denominado finance-team acceso para crear tablas en un esquema denominado default con el catálogo primario denominado main:
REVOKE CREATE TABLE ON SCHEMA main.default FROM `finance-team`;
Una instrucción REVOKE se realiza correctamente incluso si no se concedieron los privilegios especificados en primer lugar. Garantiza que los privilegios no estén presentes, independientemente de su estado anterior.
Mostrar concesiones en un metastore
Permisos necesarios: administrador Metastore o administrador de cuenta. También puede ver sus propias concesiones en un metastore.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- En la parte superior del panel Catálogo, haga clic en el
y seleccione Metastore.
- Haga clic en la pestaña Permissions (Permisos).
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL. Puede mostrar concesiones en una entidad de seguridad específica o puede mostrar todas las concesiones en un metastore.
SHOW GRANTS [principal] ON METASTORE
Concesión de permisos en un metastore
Permisos necesarios: administrador Metastore o administrador de cuenta.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- En la parte superior del panel Catálogo, haga clic en el
y seleccione Metastore.
- En la pestaña Permisos, haga clic en Conceder.
- Escriba la dirección de correo electrónico de un usuario o el nombre de un grupo.
- Seleccione los permisos que quiere conceder.
- Haga clic en OK.
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL.
GRANT <privilege-type> ON METASTORE TO <principal>;Cuando se conceden privilegios en un metastore, no se incluye el nombre de metastore, ya que se presupone el metastore que está asociado al área de trabajo.
Revocar permisos en un metastore
Permisos necesarios: administrador Metastore o administrador de cuenta.
Explorador de catálogo
- En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
- En la parte superior del panel Catálogo, haga clic en el
y seleccione Metastore.
- En la pestaña Permisos, seleccione un usuario o grupo y haga clic en Revocar.
- Para confirmar, haga clic en Revoke (Revocar).
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL.
REVOKE <privilege-type> ON METASTORE FROM <principal>;Cuando se revocan privilegios en un metastore, no se incluye el nombre de metastore, ya que se presupone el metastore que está asociado al área de trabajo.
Administrar la propiedad del objeto
Ver el propietario de un objeto
Puede usar el Explorador de catálogos o instrucciones SQL para ver el propietario de un objeto.
Permisos necesarios: cualquier usuario con el privilegio BROWSE en el objeto o un elemento primario del objeto puede ver al propietario del objeto.
Explorador de catálogo
En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
Seleccione el objeto, como un catálogo, un esquema, una tabla, una vista, un volumen, una ubicación externa o una credencial de almacenamiento.
Cómo navegar hasta el objeto depende de cada objeto. Los catálogos, esquemas y el contenido de esquemas (como tablas y volúmenes) se pueden seleccionar en el panel izquierdo Catálogo. Puede encontrar otros objetos, como ubicaciones externas o recursos compartidos de Delta Sharing, haciendo clic en el
icono de engranaje encima del panel del Catálogo y seleccionando la categoría de objeto del menú.
Para la mayoría de los objetos, el propietario se muestra en la pestaña Información general de la página de detalles del objeto. Para algunos objetos, como ubicaciones externas, se muestra en la parte superior de la página de detalles del objeto.
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL. Reemplace los valores de marcador de posición:
-
<securable-type>: tipo de objeto protegible, comoCATALOGoTABLE. -
<catalog>: el catálogo principal si está viendo un esquema o el contenido de un esquema. -
<schema>: el esquema primario si está viendo el contenido de un esquema, como una tabla o vista. -
<securable-name>: nombre del objeto protegible.
DESCRIBE <securable-type> EXTENDED <catalog>.<schema>.<securable-name>;
Transferencia de la propiedad
Puede usar el Explorador de catálogos o instrucciones SQL para transferir el propietario de un objeto.
Permisos necesarios: puede transferir la propiedad del objeto si es el propietario actual, un administrador de metastore, el propietario del contenedor (el catálogo de un esquema, el esquema de una tabla) o un usuario con el MANAGE privilegio en el objeto. Los objetos de recurso compartido delta sharing son una excepción: solo un administrador de metastore puede transferir la propiedad del recurso compartido.
Para evitar escalaciones de privilegios, solo un administrador de metastore puede transferir la propiedad de una vista, una función o un modelo a cualquier usuario, entidad de servicio o grupo de la cuenta. Los propietarios y usuarios actuales con el MANAGE privilegio están restringidos a transferir la propiedad a su nombre de usuario o a un grupo del que son miembros.
Sugerencia
La transferencia de la propiedad de una vista o una vista de métrica a un grupo permite la edición colaborativa. Cuando un grupo posee una vista o una vista de métricas, todos los miembros del grupo pueden editar su definición, mientras que el acceso a datos permanece limitado a lo que el grupo tiene permiso para ver. Para obtener instrucciones detalladas, consulte Habilitación de la edición colaborativa.
Nota
Las vistas materializadas y las tablas de streaming creadas con Databricks SQL pueden tener la propiedad transferida. Para obtener más información, consulte Cambiar el propietario de una vista materializada y Cambiar el propietario de una tabla de streaming.
Las vistas materializadas y las tablas de transmisión creadas con las canalizaciones declarativas de Lakeflow Spark no pueden tener su propiedad transferida directamente. En su lugar, cambie el usuario de ejecución del flujo de trabajo que es propietario de los conjuntos de datos. Con la siguiente actualización, el propietario se actualizará al usuario de ejecución. Consulte Establecimiento del usuario de ejecución.
Explorador de catálogo
En el área de trabajo de Azure Databricks, haga clic en
Catálogo.
Seleccione el objeto, como un catálogo, un esquema, una tabla, una vista, una ubicación externa o una credencial de almacenamiento.
Cómo navegar hasta el objeto depende de cada objeto. Los catálogos, esquemas y el contenido de esquemas (como tablas y volúmenes) se pueden seleccionar en el panel izquierdo Catálogo. Puede encontrar otros objetos, como ubicaciones externas o recursos compartidos de Delta Sharing, haciendo clic en el
icono de engranaje encima del panel del Catálogo y seleccionando la categoría de objeto del menú.
Para la mayoría de los objetos, el propietario se muestra en la pestaña Información general de la página de detalles del objeto. Para algunos objetos, como ubicaciones externas, se muestra en la parte superior de la página de detalles del objeto.
Haga clic en el
icono de edición situado junto al Propietario.Busque y seleccione un grupo, un usuario o una entidad de servicio.
Haz clic en Guardar.
SQL
Ejecute el siguiente comando SQL en un cuaderno o en un editor de consultas SQL. Reemplace los valores de marcador de posición:
-
<securable-type>: El tipo de objeto protegible, comoCATALOGoTABLE.METASTOREno se admite como un objeto protegible en este comando. -
<securable-name>: nombre del objeto protegible. Si va a modificar un esquema o el contenido de un esquema, debe usar el espacio de nombres completo de tres niveles (catalog.schema.object), a menos que ya haya especificado el catálogo primario o el esquema. -
<principal>es un usuario, una entidad de servicio (representada por su valor applicationId) o un grupo. Debe incluir usuarios, entidades de servicio y nombres de grupo que incluyan caracteres especiales en acentos graves (` `). Consulte Entidad de seguridad.
ALTER <securable-type> <securable-name> OWNER TO <principal>;
Por ejemplo, para transferir la propiedad de la tabla de orders al grupo accounting:
ALTER TABLE mycatalog.myschema.orders OWNER TO `accounting`;