Consultas para a tabela ACICollaborationAudit

Quantas vezes um recurso recebeu subvenções por execução de pipeline?

Devolver o número de vezes que o acesso foi concedido aos recursos durante a execução do pipeline. Agrupado pelo tipo de concessão: Elegibilidade (por participante no modo de produção), Referenciado (por participante no modo de teste) ou Proprietário (pelo proprietário do recurso).

//=================================================================================================================================================================
// summarize by CorrelationId groups audits by pipeline run. For more details about summarize see: https://docs.microsoft.com/en-us/azure/data-explorer/kusto/query/summarizeoperator
ACICollaborationAudit
| summarize PipelineExecutedOn=max(TimeGenerated), ResourceAccessGrantCount=count(), EntitlementResult=array_strcat(make_set(EntitlementResult), ',') by CorrelationId, GrantType, TargetResourceId
| project-away CorrelationId
| order by PipelineExecutedOn desc, TargetResourceId asc
| top 100 by PipelineExecutedOn;

Que direitos foi concedido ao meu recurso?

Encontre os direitos que foram concedidos aos recursos de CI. Pode ser utilizado para consultar um recurso específico.

//==============================================================================================
// For specific results, insert values in the let statements and uncomment the where filters within the query
// let partialResourceId = "<Full or Partial resource name (DataAsset, DataSet or Script) to look for (e.g. "dataassets/e2etest2020qqigqeqp">");
ACICollaborationAudit
| where GrantType == 'Entitlement'
//| where TargetResourceId has partialResourceId
| extend ShortOperationName=tostring(array_slice(split(OperationName, '/'), -1, -1)[0])
| summarize TimeGenerated=max(TimeGenerated), EntitlementResult=array_strcat(make_set(EntitlementResult), ','), 
            GrantSource=any(GrantSource), GrantSourceType=any(GrantSourceType),
            TargetResourceId=any(TargetResourceId), TargetResourceType=any(TargetResourceType), ParticipantName=any(ParticipantName),
            OperationName=any(ShortOperationName)
    by GrantCorrelationId
| project-away GrantCorrelationId
| order by TimeGenerated desc
| limit 100;

A que recursos foi concedido acesso por um direito?

Localize os recursos de CI que tinham direito a acesso. Pode ser utilizado para consultar uma elegibilidade específica.

//============================================================================================
// For specific results, insert values in the let statements and uncomment the where filters within the query
// let entitlementOrContract = "<Full or Partial entitlement (or contract) name to look for (e.g. "proposals/e2etest2020qytcbkar","entitlements/e2etest2020nzutiqca">");
ACICollaborationAudit 
| where GrantType == 'Entitlement'
//| where GrantSource has entitlementOrContract
| extend ShortOperationName=tostring(array_slice(split(OperationName, '/'), -1, -1)[0])
| summarize TimeGenerated=max(TimeGenerated), EntitlementResult=array_strcat(make_set(EntitlementResult), ','),
            TargetResourceId=any(TargetResourceId), TargetResourceType=any(TargetResourceType), 
            ParticipantName=any(ParticipantName), GrantSource=any(GrantSource), GrantSourceType=any(GrantSourceType),
            OperationName=any(ShortOperationName)
    by GrantCorrelationId
| project-away GrantCorrelationId
| order by TimeGenerated desc
| limit 100;

A que participantes foi concedido acesso ao meu recurso?

Localize os participantes a quem foi concedido acesso aos recursos de CI. Pode ser utilizado para consultar um recurso específico.

//=====================================================================================================
// For specific results, insert values in the let statements and uncomment the where filters within the query
// let partialParticipantName = "<Full or Partial participant (or tenant) name to look for (e.g. "propmtion.dept@contoso">");
ACICollaborationAudit 
| where GrantType == 'Entitlement'
//| where ParticipantName contains partialParticipantName
| extend ShortOperationName=tostring(array_slice(split(OperationName, '/'), -1, -1)[0])
| summarize TimeGenerated=max(TimeGenerated), EntitlementResult=array_strcat(make_set(EntitlementResult), ','),
            TargetResourceId=any(TargetResourceId), TargetResourceType=any(TargetResourceType), 
            GrantSource=any(GrantSource), GrantSourceType=any(GrantSourceType),
            OperationName=any(ShortOperationName), ParticipantName=any(ParticipantName)
    by GrantCorrelationId
| project-away GrantCorrelationId
| order by TimeGenerated desc
| limit 100;