Delen via


Machtigingen instellen voor resources in Databricks Asset Bundles

In dit artikel wordt beschreven hoe u machtigingen instelt voor Azure Databricks-taken, Delta Live Tables-pijplijnen en MLOps-stacks in Databricks Asset Bundles. Bekijk wat zijn Databricks Asset Bundles?.

In Azure Databricks-bundelconfiguratiebestanden kunt u machtigingen definiëren die van toepassing zijn op alle resources die in de bundel zijn gedefinieerd, of u kunt een of meer machtigingen definiëren om toe te passen op specifieke resources.

Notitie

Machtigingen mogen niet overlappen. Met andere woorden, machtigingen voor een gebruiker, groep of service-principal kunnen niet worden gedefinieerd in zowel de toewijzing op het hoogste niveau permissions als binnen de resources toewijzing.

Machtigingen definiëren die moeten worden toegepast op alle resources

U kunt machtigingen definiëren die moeten worden toegepast op alle experimenten, taken, modellen en pijplijnen die zijn gedefinieerd met resources behulp van de toewijzing op het hoogste niveau permissions . Zie machtigingen.

Machtigingen definiëren voor een specifieke resource

U kunt de permissions toewijzing in een experiment, taak, model of pijplijndefinitie resources gebruiken om een of meer machtigingen voor die resource te definiëren.

Elke machtiging in de permissions toewijzing moet de volgende twee toewijzingen bevatten:

  • Respectievelijk user_name, group_nameof service_principal_name, met de naam van de gebruiker, groep of service-principal.
  • level, met de naam van het machtigingsniveau. Toegestane machtigingsniveaus voor elke resource zijn het volgende:
    • Experimenten: CAN_EDITen CAN_MANAGE CAN_READ.
    • Taken: CAN_MANAGE, CAN_MANAGE_RUN, , CAN_VIEWen IS_OWNER.
    • Modellen: CAN_EDIT, CAN_MANAGE, CAN_MANAGE_STAGING_VERSIONS, , en CAN_READCAN_MANAGE_PRODUCTION_VERSIONS.
    • Pijplijnen: CAN_MANAGE, CAN_RUN, en CAN_VIEWIS_OWNER.

Zie voor meer informatie over specifieke machtigingsniveaus:

Notitie

Toegestane machtigingsniveaus voor resources kunnen niet noodzakelijkerwijs worden toegepast op resources met behulp van de toewijzing op het hoogste niveau permissions . Zie machtigingen voor geldige machtigingsniveaus voor de permissions toewijzing.

In de volgende syntaxis ziet u hoe u meerdere machtigingen declareert voor elk resourcetype, hetzij in de toewijzing op het hoogste niveau resources of een resources toewijzing binnen een doel (weglatingstekens geven aan dat inhoud wordt weggelaten, ter beknoptheid):

# ...
resources:
  experiments:
    <some-programmatic-identifier-for-this-experiment>:
      # ...
      permissions:
        - user_name: <user-name> # Or:
          group_name: <group-name> # Or:
          service_principal_name: <service-principal-name>
          level: <permission-level>
      # ...
  jobs:
    <some-programmatic-identifier-for-this-job>:
      # ...
      permissions:
        - user_name: <user-name> # Or:
          group_name: <group-name> # Or:
          service_principal_name: <service-principal-name>
          level: <permission-level>
      # ...
  models:
    <some-programmatic-identifier-for-this-model>:
      # ...
      permissions:
        - user_name: <user-name> # Or:
          group_name: <group-name> # Or:
          service_principal_name: <service-principal-name>
          level: <permission-level>
      # ...
  pipelines:
    <some-programmatic-identifier-for-this-pipeline>:
      # ...
      permissions:
        - user_name: <user-name> # Or:
          group_name: <group-name-1> # Or:
          service_principal_name: <service-principal-name>
          level: <permission-level>
      # ...

targets:
  <some-programmatic-identifier-for-this-target>:
    resources:
      experiments:
        <some-programmatic-identifier-for-this-experiment>:
          # ...
          permissions:
            - user_name: <user-name> # Or:
              group_name: <group-name> # Or:
              service_principal_name: <service-principal-name>
              level: <permission-level>
          # ...
      jobs:
        <some-programmatic-identifier-for-this-job>:
          # ...
          permissions:
            - user_name: <user-name> # Or:
              group_name: <group-name> # Or:
              service_principal_name: <service-principal-name>
              level: <permission-level>
          # ...
      models:
        <some-programmatic-identifier-for-this-model>:
          # ...
          permissions:
            - user_name: <user-name> # Or:
              group_name: <group-name> # Or:
              service_principal_name: <service-principal-name>
              level: <permission-level>
          # ...
      pipelines:
        <some-programmatic-identifier-for-this-pipeline>:
          # ...
          permissions:
            - user_name: <user-name> # Or:
              group_name: <group-name> # Or:
              service_principal_name: <service-principal-name>
              level: <permission-level>
          # ...
    # ...

Machtigingen die zijn gedeclareerd voor een resource in de toewijzing op het hoogste niveau resources , worden gecombineerd met machtigingen die zijn gedeclareerd voor dezelfde resources toewijzing in een afzonderlijk doel. Bijvoorbeeld, gezien de volgende resources toewijzing voor dezelfde resource op zowel het hoogste niveau als in een doel (weglatingstekens geven de weggelaten inhoud aan, voor beknoptheid):

bundle:
  name: my-bundle

resources:
  jobs:
    my-job:
      # ...
      permissions:
        - user_name: someone@example.com
          level: CAN_VIEW
      # ...

targets:
  dev:
    # ...
    resources:
      jobs:
        my-job:
          # ...
          permissions:
            - user_name: someone@example.com
              level: CAN_RUN
          # ...

Wanneer u voor dit voorbeeld uitvoert databricks bundle validate , ziet de resulterende grafiek er als volgt uit (weglatingstekens geven de weggelaten inhoud aan, ter beknoptheid):

{
  "...": "...",
  "resources": {
    "jobs": {
      "my-job": {
        "permissions": [
          {
            "level": "CAN_VIEW",
            "user_name": "someone@example.com"
          },
          {
            "level": "CAN_RUN",
            "user_name": "someone@example.com"
          }
        ],
        "...": "..."
      }
    }
  }
}