다음을 통해 공유


Microsoft.DocumentDB 데이터베이스계정/mongodbRoleDefinitions 2022-08-15

Bicep 리소스 정의

databaseAccounts/mongodbRoleDefinitions 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.

resource symbolicname 'Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions@2022-08-15' = {
  parent: resourceSymbolicName
  name: 'string'
  properties: {
    databaseName: 'string'
    privileges: [
      {
        actions: [
          'string'
        ]
        resource: {
          collection: 'string'
          db: 'string'
        }
      }
    ]
    roleName: 'string'
    roles: [
      {
        db: 'string'
        role: 'string'
      }
    ]
    type: int
  }
}

속성 값

Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions

이름 묘사
이름 리소스 이름 string(필수)
부모 Bicep에서 자식 리소스에 대한 부모 리소스를 지정할 수 있습니다. 자식 리소스가 부모 리소스 외부에서 선언된 경우에만 이 속성을 추가해야 합니다.

자세한 내용은 부모 리소스외부의 자식 리소스 참조하세요.
형식 리소스의 기호 이름: databaseAccounts
속성 Azure Cosmos DB Mongo 역할 정의를 만들고 업데이트하는 속성입니다. MongoRoleDefinitionResource

MongoRoleDefinitionResource

이름 묘사
데이터베이스 이름 이 역할 정의에 대한 액세스 권한이 부여되는 데이터베이스 이름입니다. 문자열
권한을 역할 정의에 포함된 권한 집합입니다. 이렇게 하면 전체 데이터베이스 계정 또는 기본 데이터베이스/컬렉션에 이 역할 정의를 적용할 수 있습니다. 데이터베이스보다 높은 범위는 권한으로 적용할 수 없습니다. 권한[]
roleName 역할 정의에 대한 사용자 친화적인 이름입니다. 데이터베이스 계정에 대해 고유해야 합니다. 문자열
역할 이 역할 정의에서 상속된 역할 집합입니다. 역할[]
역할 정의가 기본 제공되었는지 또는 사용자가 만들어졌는지 여부를 나타냅니다. 정수 (int)

특권

이름 묘사
작업 허용되는 작업의 배열입니다. 문자열[]
자원 Azure Cosmos DB Mongo DB 리소스. PrivilegeResource

PrivilegeResource

이름 묘사
수집 역할이 적용되는 컬렉션 이름입니다. 문자열
데이터베이스 역할이 적용되는 데이터베이스 이름입니다. 문자열

역할

이름 묘사
데이터베이스 역할이 적용되는 데이터베이스 이름입니다. 문자열
역할 역할 이름입니다. 문자열

ARM 템플릿 리소스 정의

databaseAccounts/mongodbRoleDefinitions 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions 리소스를 만들려면 템플릿에 다음 JSON을 추가합니다.

{
  "type": "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions",
  "apiVersion": "2022-08-15",
  "name": "string",
  "properties": {
    "databaseName": "string",
    "privileges": [
      {
        "actions": [ "string" ],
        "resource": {
          "collection": "string",
          "db": "string"
        }
      }
    ],
    "roleName": "string",
    "roles": [
      {
        "db": "string",
        "role": "string"
      }
    ],
    "type": "int"
  }
}

속성 값

Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions

이름 묘사
API버전 api 버전 '2022-08-15'
이름 리소스 이름 string(필수)
속성 Azure Cosmos DB Mongo 역할 정의를 만들고 업데이트하는 속성입니다. MongoRoleDefinitionResource
리소스 종류 'Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions'

MongoRoleDefinitionResource

이름 묘사
데이터베이스 이름 이 역할 정의에 대한 액세스 권한이 부여되는 데이터베이스 이름입니다. 문자열
권한을 역할 정의에 포함된 권한 집합입니다. 이렇게 하면 전체 데이터베이스 계정 또는 기본 데이터베이스/컬렉션에 이 역할 정의를 적용할 수 있습니다. 데이터베이스보다 높은 범위는 권한으로 적용할 수 없습니다. 권한[]
roleName 역할 정의에 대한 사용자 친화적인 이름입니다. 데이터베이스 계정에 대해 고유해야 합니다. 문자열
역할 이 역할 정의에서 상속된 역할 집합입니다. 역할[]
역할 정의가 기본 제공되었는지 또는 사용자가 만들어졌는지 여부를 나타냅니다. 정수 (int)

특권

이름 묘사
작업 허용되는 작업의 배열입니다. 문자열[]
자원 Azure Cosmos DB Mongo DB 리소스. PrivilegeResource

PrivilegeResource

이름 묘사
수집 역할이 적용되는 컬렉션 이름입니다. 문자열
데이터베이스 역할이 적용되는 데이터베이스 이름입니다. 문자열

역할

이름 묘사
데이터베이스 역할이 적용되는 데이터베이스 이름입니다. 문자열
역할 역할 이름입니다. 문자열

사용 예제

Terraform(AzAPI 공급자) 리소스 정의

databaseAccounts/mongodbRoleDefinitions 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions 리소스를 만들려면 템플릿에 다음 Terraform을 추가합니다.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions@2022-08-15"
  name = "string"
  parent_id = "string"
  body = {
    properties = {
      databaseName = "string"
      privileges = [
        {
          actions = [
            "string"
          ]
          resource = {
            collection = "string"
            db = "string"
          }
        }
      ]
      roleName = "string"
      roles = [
        {
          db = "string"
          role = "string"
        }
      ]
      type = int
    }
  }
}

속성 값

Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions

이름 묘사
이름 리소스 이름 string(필수)
parent_id 이 리소스의 부모인 리소스의 ID입니다. 형식의 리소스 ID: databaseAccounts
속성 Azure Cosmos DB Mongo 역할 정의를 만들고 업데이트하는 속성입니다. MongoRoleDefinitionResource
리소스 종류 "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions@2022-08-15"

MongoRoleDefinitionResource

이름 묘사
데이터베이스 이름 이 역할 정의에 대한 액세스 권한이 부여되는 데이터베이스 이름입니다. 문자열
권한을 역할 정의에 포함된 권한 집합입니다. 이렇게 하면 전체 데이터베이스 계정 또는 기본 데이터베이스/컬렉션에 이 역할 정의를 적용할 수 있습니다. 데이터베이스보다 높은 범위는 권한으로 적용할 수 없습니다. 권한[]
roleName 역할 정의에 대한 사용자 친화적인 이름입니다. 데이터베이스 계정에 대해 고유해야 합니다. 문자열
역할 이 역할 정의에서 상속된 역할 집합입니다. 역할[]
역할 정의가 기본 제공되었는지 또는 사용자가 만들어졌는지 여부를 나타냅니다. 정수 (int)

특권

이름 묘사
작업 허용되는 작업의 배열입니다. 문자열[]
자원 Azure Cosmos DB Mongo DB 리소스. PrivilegeResource

PrivilegeResource

이름 묘사
수집 역할이 적용되는 컬렉션 이름입니다. 문자열
데이터베이스 역할이 적용되는 데이터베이스 이름입니다. 문자열

역할

이름 묘사
데이터베이스 역할이 적용되는 데이터베이스 이름입니다. 문자열
역할 역할 이름입니다. 문자열

사용 예제

Terraform 샘플

Cosmos DB Mongo 역할 정의를 배포하는 기본 예제입니다.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
  # Base name used to derive all other resource names. Override in terraform.tfvars for uniqueness.
}

variable "location" {
  type    = string
  default = "eastus"
}

locals {
  # Cosmos DB account names must be globally unique, 3-44 chars, lowercase letters or numbers only.
  account_name = lower(replace(var.resource_name, "-", ""))
  db_name      = "${lower(var.resource_name)}db"
  role_name    = "${lower(var.resource_name)}role"
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "databaseAccount" {
  type      = "Microsoft.DocumentDB/databaseAccounts@2024-08-15"
  parent_id = azapi_resource.resourceGroup.id
  name      = local.account_name
  location  = var.location
  body = {
    kind = "MongoDB"
    properties = {
      backupPolicy = null
      capabilities = [
        { name = "EnableMongoRoleBasedAccessControl" },
        { name = "EnableMongo" }
      ]
      consistencyPolicy = {
        defaultConsistencyLevel = "Strong"
        maxIntervalInSeconds    = 5
        maxStalenessPrefix      = 100
      }
      databaseAccountOfferType           = "Standard"
      defaultIdentity                    = "FirstPartyIdentity"
      disableKeyBasedMetadataWriteAccess = false
      disableLocalAuth                   = false
      enableAnalyticalStorage            = false
      enableAutomaticFailover            = false
      enableBurstCapacity                = false
      enableFreeTier                     = false
      enableMultipleWriteLocations       = false
      enablePartitionMerge               = false
      ipRules                            = []
      isVirtualNetworkFilterEnabled      = false
      locations = [{
        failoverPriority = 0
        isZoneRedundant  = false
        locationName     = var.location
      }]
      minimalTlsVersion           = "Tls12"
      networkAclBypass            = "None"
      networkAclBypassResourceIds = []
      publicNetworkAccess         = "Enabled"
      virtualNetworkRules         = []
    }
  }
}

resource "azapi_resource" "mongodbDatabase" {
  type      = "Microsoft.DocumentDB/databaseAccounts/mongodbDatabases@2021-10-15"
  parent_id = azapi_resource.databaseAccount.id
  name      = local.db_name
  body = {
    properties = {
      options = {}
      resource = {
        id = local.db_name
      }
    }
  }
}

resource "azapi_resource" "mongodbRoleDefinition" {
  type      = "Microsoft.DocumentDB/databaseAccounts/mongodbRoleDefinitions@2022-11-15"
  parent_id = azapi_resource.databaseAccount.id
  name      = "${local.db_name}.${local.role_name}"
  body = {
    properties = {
      databaseName = local.db_name
      roleName     = local.role_name
      type         = 1
    }
  }
  depends_on = [azapi_resource.mongodbDatabase]
}