Conceitos de desenvolvedor do Catálogo de Dados do Azure
Importante
O Catálogo de Dados do Azure está sendo desativado em 15 de maio de 2024.
Não é mais possível criar novas contas do Catálogo de Dados do Azure.
Para obter recursos do catálogo de dados, use o serviço Microsoft Purview que oferece governança de dados unificada para todo o seu patrimônio de dados.
Se você já estiver usando o Catálogo de Dados do Azure, precisará criar um plano de migração para sua organização se mudar para o Microsoft Purview até 15 de maio de 2024.
O Catálogo de Dados do Microsoft Azure é um serviço de nuvem totalmente gerenciado que fornece recursos para descoberta de fonte de dados e metadados de fonte de dados de crowdsourcing. Os desenvolvedores podem usar o serviço por meio de suas APIs REST. Entender os conceitos implementados no serviço é importante para os desenvolvedores integrarem com êxito o Catálogo de Dados do Azure.
Principais conceitos
O modelo conceitual do Catálogo de Dados do Azure baseia-se em quatro conceitos principais: o Catálogo, Usuários, Ativos e Anotações.
Catálogo
Um Catálogo é o contêiner de nível superior para todos os metadados armazenados por uma organização. Há um Catálogo alocado por conta do Azure. Catálogos estão vinculados a uma assinatura do Azure, mas somente um Catálogo pode ser criado para uma conta do Azure, mesmo que uma conta tenha várias assinaturas.
Um catálogo contém Usuários e Ativos.
Usuários
Os usuários são entidades de segurança que têm permissões para executar ações (pesquisar no catálogo, adicionar, editar ou remover itens etc.) no Catálogo.
Há várias funções de que um usuário pode ter. Para obter informações sobre funções, confira a seção Funções e a Autorização.
Usuários individuais e grupos de segurança podem ser adicionados.
O Catálogo de Dados do Azure usa o Microsoft Entra ID para gerenciamento de identidade e acesso. Cada usuário do catálogo deve ser um membro do Active Directory para a conta.
Ativos
Um Catálogo contém ativos de dados. Ativos são a unidade de granularidade gerenciada pelo catálogo.
A granularidade de um ativo varia de acordo com a fonte de dados. Para SQL Server ou Banco de Dados Oracle, um ativo pode ser uma Tabela ou Exibição. Para o SQL Server Analysis Services, um ativo pode ser uma Medida, uma Dimensão ou um KPI (Indicador de Chave de Desempenho). Para SQL Server Reporting Services, um ativo é um Relatório.
Um Ativo é o item que você adiciona ou remove de um Catálogo. Ele é a unidade do resultado obtido com a Pesquisa.
Um Ativo é composto de seu nome, local e tipo, bem como anotações que o descrevem melhor.
Anotações
As anotações são itens que representam os metadados sobre os ativos.
Exemplos de anotações são descrições, marcas, esquemas, documentações etc. Confira a seção Modelo de objeto de ativo para ver uma lista completa dos tipos de ativos e de anotações.
Anotações de crowdsourcing e perspectiva do usuário (multiplicidade de opinião)
Um aspecto importante do Catálogo de Dados do Azure é como ele dá suporte ao crowdsourcing de metadados no sistema. Em vez de uma abordagem de wiki, em que há apenas uma opinião e o último editor vence, o modelo do Catálogo de Dados do Azure permite que várias opiniões coexistam no sistema.
Essa abordagem reflete o mundo real dos dados da empresa onde diferentes usuários podem ter diferentes perspectivas sobre um determinado ativo:
- Um administrador de banco de dados pode fornecer informações sobre contratos de nível de serviço ou a janela de processamento disponível para operações de ETL em massa
- Um administrador de dados pode fornecer informações sobre os processos de negócios aos quais o ativo se aplica ou as classificações que a empresa aplicou a ele
- Um analista financeiro pode fornecer informações sobre como os dados são usados durante tarefas de relatório de fim de período
Para dar suporte a esse exemplo, cada usuário (como o DBA, o administrador de dados e o analista) pode adicionar uma descrição para uma única tabela que foi registrada no Catálogo. Todas as descrições são mantidas no sistema e exibidas no portal do Catálogo de Dados do Azure.
Esse padrão é aplicado à maioria dos itens no modelo de objeto. Portanto, tipos de objeto na carga JSON normalmente sã0 matrizes para as propriedades em que você esperaria um singleton.
Por exemplo, na raiz do ativo fica uma matriz dos objetos de descrição. A propriedade de matriz é denominada "Descrições". Um objeto de descrição tem uma propriedade - descrição. O padrão é que cada usuário que digita descrição obtém um objeto de descrição criado para o valor fornecido pelo usuário.
A UX pode escolher como exibir a combinação. Existem três padrões diferentes para exibição.
- O padrão mais simples é "Mostrar tudo". Nesse padrão, todos os objetos são mostrados em um modo de exibição de lista. A experiência do usuário do portal do Catálogo de Dados do Azure usa esse padrão para descrição.
- Outro padrão é "Mesclar". Neste padrão, todos os valores dos diferentes usuários são mesclados, removendo valores duplicados. Exemplos desse padrão no UX do portal do Catálogo de Dados do Azure são as propriedades de marcas e especialistas.
- Um terceiro padrão é "último editor vence". Nesse padrão é mostrado apenas o valor digitado mais recente. friendlyName é um exemplo desse padrão.
Modelo de objeto de ativo
Como apresentado na seção Conceitos Principais, o modelo de objeto Catálogo de Dados do Azure inclui itens que podem ser ativos ou anotações. Itens têm propriedades que podem ser obrigatórias ou opcionais. Algumas propriedades se aplicam a todos os itens. Algumas propriedades se aplicam a todos os ativos. Algumas propriedades se aplicam somente alguns tipos específicos de ativo.
Propriedades do sistema
Nome da propriedade | Tipo de dados | Comentários |
---|---|---|
timestamp | Datetime | A hora da última modificação do item. Esse campo é gerado pelo servidor quando um item é inserido e sempre que um item é atualizado. O valor dessa propriedade é ignorado na entrada de operações de publicação. |
ID | Uri | URL absoluta do item (somente leitura). É o URI endereçável exclusivo do item. O valor dessa propriedade é ignorado na entrada de operações de publicação. |
tipo | String | O tipo de ativo (somente leitura). |
etag | String | Uma cadeia de caracteres correspondente à versão do item que pode ser usado para controle de simultaneidade otimista ao executar operações que atualizam itens no catálogo. "*" pode ser usado para fazer correspondência com qualquer valor. |
Propriedades comuns
Essas propriedades se aplicam a todos os tipos de ativos de raiz e todos os tipos de anotação.
Nome da propriedade | Tipo de dados | Comentários |
---|---|---|
fromSourceSystem | Booliano | Indica se os dados do item são derivados de um sistema de origem (como o Banco de Dados do SQL Server ou o Oracle Database) ou criados por um usuário. |
Propriedades comuns de raiz
Essas propriedades se aplicam a todos os tipos de ativos de raiz.
Nome da propriedade | Tipo de dados | Comentários |
---|---|---|
name | String | Um nome derivado das informações de local da fonte de dados |
dsl | DataSourceLocation | Descreve com exclusividade a fonte de dados e é um dos identificadores do ativo. (Consulte a seção de identidade dupla). A estrutura da dsl varia de acordo com o protocolo e o tipo de origem. |
dataSource | DataSourceInfo | Mais detalhes sobre o tipo de ativo. |
lastRegisteredBy | SecurityPrincipal | Descreve o usuário que registrou esse ativo por último. Contém a ID exclusiva do usuário (o UPN) e um nome de exibição (lastName e firstName). |
containerID | String | ID do ativo de contêiner da fonte de dados. Não há suporte para essa propriedade no tipo Contêiner. |
Propriedades comuns de anotação não singleton
Essas propriedades se aplicam a todos os tipos de anotação não singleton (anotações com permissão para existir em número superior a uma por ativo).
Nome da propriedade | Tipo de dados | Comentários |
---|---|---|
chave | String | Um usuário especificado chave que identifica exclusivamente a anotação na coleção atual. O comprimento da chave não pode exceder 256 caracteres. |
Tipos de ativos de raiz
Tipos de ativos de raiz são os tipos que representam os vários tipos de ativos de dados que podem ser registrados no catálogo. Para cada tipo de raiz, há uma exibição que descreve o ativo e as anotações incluídas nela. O nome da exibição deve ser usado no segmento de URL correspondente {view_name} ao publicar um ativo usando a API REST.
Tipo de ativo (nome de exibição) | Mais propriedades | Tipo de dados | Anotações permitidas | Comentários |
---|---|---|---|---|
Tabela ("tabelas") | Descrição | Uma Tabela representa quaisquer dados tabulares. Por exemplo: Tabela SQL, Exibição SQL, Tabela Tabular do Analysis Services, dimensão do multidimensional do Analysis Services, Tabela do Oracle, etc. | ||
FriendlyName | ||||
Marca | ||||
Esquema | ||||
ColumnDescription | ||||
ColumnTag | ||||
Especialista | ||||
Visualizar | ||||
AccessInstruction | ||||
TableDataProfile | ||||
ColumnDataProfile | ||||
ColumnDataClassification | ||||
Documentação | ||||
Medida ("medidas") | Descrição | Esse tipo representa uma medida do Analysis Services. | ||
FriendlyName | ||||
Marca | ||||
Especialista | ||||
AccessInstruction | ||||
Documentação | ||||
medida | Coluna | Metadados que descrevem a medida. | ||
isCalculated | Booliano | Especifica se a medida é calculada ou não. | ||
measureGroup | String | Especifica se a medida é calculada ou não. | ||
KPI ("kpis") | Descrição | |||
FriendlyName | ||||
Marca | ||||
Especialista | ||||
AccessInstruction | ||||
Documentação | ||||
measureGroup | String | Contêiner físico para a medida. | ||
goalExpression | String | Uma expressão numérica MDX ou um cálculo que retorna o valor alvo do KPI. | ||
valueExpression | String | Uma expressão numérica MDX que retorna o valor real do KPI. | ||
statusExpression | String | Uma expressão MDX que representa o estado do KPI em um point-in-time. | ||
trendExpression | String | Uma expressão MDX que avalia o valor do KPI ao longo do tempo. A tendência pode ser qualquer critério com base no tempo e que seja útil em um contexto empresarial específico. | ||
Relatório ("relatórios") | Descrição | Esse tipo representa um relatório do SQL Server Reporting Services. | ||
FriendlyName | ||||
Marca | ||||
Especialista | ||||
AccessInstruction | ||||
Documentação | ||||
assetCreatedDate | String | |||
assetCreatedDate | String | |||
assetModifiedDate | String | |||
assetModifiedBy | String | |||
Relatório ("relatórios") | Descrição | Esse tipo representa um contêiner de outros ativos, como um banco de dados SQL, um contêiner de Blobs do Azure ou um modelo do Analysis Services. | ||
Marca | ||||
Especialista | ||||
AccessInstruction | ||||
Documentação |
Tipos de anotação
Tipos de anotação representam tipos de metadados que podem ser atribuídos a outros tipos no catálogo.
Tipo de anotação (nome de exibição aninhado) | Mais propriedades | Tipo de dados | Comentários |
---|---|---|---|
Descrição ("descrições") | Esta propriedade contém uma descrição de um ativo. Cada usuário do sistema pode adicionar sua própria descrição. Somente o usuário pode editar o Objeto de descrição. (Os Administradores e Proprietários de ativos podem excluir o objeto Descrição, mas não editá-lo). O sistema mantém as descrições dos usuários separadamente. Desta maneira, há uma matriz de descrições de cada ativo (uma para cada usuário que contribuiu com conhecimento sobre o ativo, além de possivelmente uma contendo informações derivadas da fonte de dados). | ||
descrição | string | Uma descrição curta (duas a três linhas) do ativo. | |
Marca ("marcas") | Esta propriedade define uma marca de um ativo. Cada usuário do sistema pode adicionar várias marcas para um ativo. Somente o usuário que criou os objetos Marca pode editá-los. (Administradores e Proprietários de Ativos podem excluir o objeto Marca, mas não editá-lo). O sistema mantém as marcas dos usuários separadamente. Portanto, há uma matriz de objetos Tag em cada ativo. | ||
marcação | string | Uma marca que descreve o ativo. | |
FriendlyName ("friendlyName") | Esta propriedade contém um nome amigável de um ativo. FriendlyName é uma anotação singleton: apenas um FriendlyName pode ser adicionado a um ativo. Somente o usuário que criou o objeto FriendlyName pode editá-lo. (Proprietários de ativos e Administradores podem excluir o objeto FriendlyName, mas não editá-lo). O sistema mantém os nomes amigáveis dos usuários separadamente. | ||
friendlyName | string | Um nome amigável do ativo. | |
FriendlyName ("friendlyName") | Esta propriedade contém um nome amigável de um ativo. FriendlyName é uma anotação singleton: apenas um FriendlyName pode ser adicionado a um ativo. Somente o usuário que criou o objeto FriendlyName pode editá-lo. (Proprietários de ativos e Administradores podem excluir o objeto FriendlyName, mas não editá-lo). O sistema mantém os nomes amigáveis dos usuários separadamente. | ||
friendlyName | string | Um nome amigável do ativo. | |
Esquema ("esquema") | O Esquema descreve a estrutura dos dados. Ela lista os nomes de atributo (coluna, atributo, campo etc.), tipos e também outros metadados. Essa informação é derivada da fonte de dados. Esquema é uma anotação singleton: somente um esquema pode ser adicionado a um ativo. | ||
colunas | Column[] | Uma matriz de objetos de coluna. Eles descrevem a coluna com informações derivadas da fonte de dados. | |
ColumnDescription ("columnDescriptions") | Esta propriedade contém uma descrição de uma coluna. Cada usuário do sistema pode adicionar suas próprias descrições para várias colunas (no máximo uma por coluna). Somente o usuário que criou os objetos ColumnDescription pode editá-los. (Os Administradores e Proprietários de ativos podem excluir o objeto ColumnDescription, mas não editá-lo). O sistema mantém as descrições de coluna dos usuários separadamente. Desta maneira, há uma matriz de objetos ColumnDescription de cada ativo (uma por coluna para cada usuário que contribuiu com conhecimento sobre a coluna, além de possivelmente uma contendo informações derivadas da fonte de dados). A ColumnDescription é livremente vinculada ao Esquema, de modo que pode ficar fora de sincronia. ColumnDescription pode descrever uma coluna que não existe mais no esquema. Cabe ao gravador manter a descrição e o esquema em sincronia. A fonte de dados também pode ter informações de descrição de colunas e são outros objetos ColumnDescription que seriam criados ao executar a ferramenta. | ||
columnName | String | O nome da coluna à qual essa descrição se refere. | |
descrição | String | Uma descrição curta (duas a três linhas) da coluna. | |
ColumnTag ("columnTags") | Esta propriedade contém uma marca de uma coluna. Cada usuário do sistema pode adicionar várias marcas para uma determinada coluna e pode adicionar marcas a múltiplas colunas. Somente o usuário que criou os objetos ColumnTag pode editá-los. (Administradores e Proprietários de Ativos podem excluir o objeto ColumnTag, mas não editá-lo). O sistema mantém as marcas de coluna dos usuários separadamente. Portanto, há uma matriz de objetos ColumnTag em cada ativo. A ColumnTag é livremente vinculada ao esquema, de modo que pode ficar fora de sincronia. ColumnTag pode descrever uma coluna que não existe mais no esquema. Cabe ao escritor manter a marca de coluna e o esquema em sincronia. | ||
columnName | String | O nome da coluna à qual essa marca se refere. | |
marcação | String | Uma marca que descreve a coluna. | |
Especialista ("especialistas") | Essa propriedade contém um usuário que é considerado um especialista no conjunto de dados. As opiniões dos especialistas (descrições) borbulham até o topo da experiência do usuário ao listar descrições. Cada usuário pode especificar seus próprios especialistas. Somente esse usuário pode editar o objeto de especialistas. (Administradores e proprietários de Ativos podem excluir o objeto Especialista, mas não editá-lo.) | ||
especialista | SecurityPrincipal | ||
Visualização ("visualizações") | A visualização contém um instantâneo das primeiras 20 linhas de dados para o ativo. A Visualização só faz sentido para alguns tipos de ativos (faz sentido para Tabela, mas não para Medida). | ||
versão prévia | object[] | A matriz de objetos que representa uma coluna. Cada objeto tem um mapeamento de propriedade para uma coluna com um valor para a linha da coluna. | |
AccessInstruction ("accessInstructions") | |||
Tipo MIME | string | O tipo mime do conteúdo. | |
content | string | As instruções para obter acesso a esse ativo de dados. O conteúdo pode ser uma URL, um endereço de email ou um conjunto de instruções. | |
TableDataProfile ("tableDataProfiles") | |||
numberOfRows | int | O número de linhas no conjunto de dados. | |
tamanho | longo | O tamanho em bytes do conjunto de dados. | |
schemaModifiedTime | string | A hora da última modificação do esquema. | |
dataModifiedTime | string | A hora da última modificação do conjunto de dados (os dados foram adicionados, modificados ou excluídos). | |
ColumnsDataProfile ("columnsDataProfiles") | |||
colunas | ColumnDataProfile[] | Uma matriz de perfis de dados da coluna. | |
ColumnDataClassification ("columnDataClassifications") | |||
columnName | String | O nome da coluna à qual essa classificação se refere. | |
classificação | String | A classificação dos dados nesta coluna. | |
Documentação ("documentação") | Um determinado ativo pode ter apenas uma documentação associada a ele. | ||
Tipo MIME | string | O tipo mime do conteúdo. | |
content | string | O conteúdo da documentação. |
Tipos comuns
Tipos comuns podem ser usados como os tipos de propriedades, mas não são Itens.
Tipo comum | Propriedades | Tipo de dados | Comentários |
---|---|---|---|
DataSourceInfo | sourceType | string | Descreve o tipo de fonte de dados. Por exemplo: SQL Server, banco de dados Oracle etc. |
objectType | string | Descreve o tipo de objeto na fonte de dados. Por exemplo: Tabela, Exibição do SQL Server. | |
DataSourceLocation | protocolo | string | Obrigatória. Descreve um protocolo usado para se comunicar com a fonte de dados. Por exemplo: tds para o SQL Server, oracle para o Oracle etc. Confira Especificação de referência de fonte de dados – Estrutura DSL para obter a lista de protocolos com suporte no momento. |
address | Dicionário<cadeia de caracteres, objeto> | Obrigatória. O endereço é um conjunto de dados específicos do protocolo que é usado para identificar a fonte de dados que está sendo referenciada. Os dados de endereço no escopo de determinado protocolo, o que significa que ele é inútil sem o conhecimento do protocolo. | |
autenticação | string | Opcional. O esquema de autenticação usado para se comunicar com a fonte de dados. Por exemplo: windows, oauth etc. | |
connectionProperties | Dicionário<cadeia de caracteres, objeto> | Opcional. Informações adicionais sobre como se conectar a uma fonte de dados. | |
DataSourceLocation | O back-end não executa nenhuma validação das propriedades fornecidas no Microsoft Entra ID durante a publicação. | ||
upn | string | Obrigatória. Endereço de email exclusivo do usuário. Precisa ser especificado se a objectId não foi fornecida ou no contexto da propriedade "lastRegisteredBy", caso contrário, é opcional. | |
objectId | Guid | Opcional. Identidade do usuário ou do grupo de segurança do Microsoft Entra. Opcional. Precisa ser especificado se o UPN não foi fornecido, caso contrário, é opcional. | |
firstName | string | Nome do usuário (para fins de exibição). Opcional. Válido somente no contexto da propriedade "lastRegisteredBy". Não pode ser especificado quando a entidade de segurança é fornecida para "funções", "permissões" e "especialistas". | |
lastName | string | Sobrenome do usuário (para fins de exibição). Opcional. Válido somente no contexto da propriedade "lastRegisteredBy". Não pode ser especificado quando a entidade de segurança é fornecida para "funções", "permissões" e "especialistas". | |
Coluna | name | string | Nome da coluna ou do atributo. |
tipo | string | Tipo de dados da coluna ou do atributo. Os tipos permitidos dependem sourceType de dados do ativo. Há suporte apenas para um subconjunto de tipos. | |
maxLength | int | O comprimento máximo permitido para a coluna ou atributo. Derivado da fonte de dados. Aplicável somente a alguns tipos de fontes. | |
precisão | int | A precisão para a coluna ou atributo. Derivado da fonte de dados. Aplicável somente a alguns tipos de fontes. | |
isNullable | isNullable | Se a coluna tem permissão para ter um valor nulo ou não. Derivado da fonte de dados. Aplicável somente a alguns tipos de fontes. | |
expressão | string | Se o valor for uma coluna calculada, esse campo contém a expressão que expresse este valor. Derivado da fonte de dados. Aplicável somente a alguns tipos de fontes. | |
ColumnDataProfile | columnName | string | Nome da coluna. |
tipo | string | O tipo da coluna. | |
min | string | O valor mínimo no conjunto de dados. | |
max | string | O valor máximo no conjunto de dados. | |
avg | double | O valor médio no conjunto de dados. | |
stdev | double | O desvio padrão para o conjunto de dados | |
nullCount | int | A contagem de valores nulos no conjunto de dados. | |
distinctCount | int | A contagem de valores distintos no conjunto de dados. |
Identidade do ativo
O Catálogo de Dados do Azure usa as propriedades de identidade e “protocol” do recipiente de propriedades “address” da propriedade "dsl" do DataSourceLocation para gerar a identidade do ativo que é usado para abordar o ativo dentro do Catálogo. Por exemplo, o protocolo TDS tem as propriedades de identidade "server", "database", "schema" e "object". As combinações das propriedades de protocolo e identidade são usadas para gerar a identidade do Ativo de Tabela do SQL Server. O Catálogo de Dados do Azure fornece vários protocolos de fonte de dados internos que são listados em Especificação de referência da fonte de dados - Estrutura de DSL. O conjunto de protocolos com suporte pode ser estendido por meio de programação (confira a referência da API REST do Catálogo de Dados). Administradores do Catálogo podem registrar protocolos de fonte de dados personalizados. A tabela a seguir descreve as propriedades necessárias para registrar um protocolo personalizado.
Especificação de protocolo de fonte de dados personalizados
Há três tipos diferentes de especificações de protocolo de fonte de dados. Veja abaixo os tipos, seguidos por uma tabela das respectivas propriedades.
DataSourceProtocol
Propriedades | Tipo de dados | Comentários |
---|---|---|
namespace | string | O namespace do protocolo. O namespace deve ter de 1 a 255 caracteres, conter uma ou mais partes não vazias separadas por ponto (.). Cada parte deve ter de 1 a 255 caracteres, começar com uma letra e conter somente letras e números. |
name | string | O nome do protocolo. O nome deve ter de 1 a 255 caracteres, começar com uma letra ou número e conter apenas letras, números e hífen (-). |
identityProperties | DataSourceProtocolIdentityProperty[] | Lista de propriedades de identidade, deve conter pelo menos uma, mas no máximo 20 propriedades. Por exemplo: “server”, “database”, “schema” e “object” são propriedades de identidade do protocolo “tds”. |
identitySets | DataSourceProtocolIdentitySet[] | Lista de conjuntos de identidade. Define conjuntos de propriedades de identidade que representam a identidade do ativo válido. Deve conter pelo menos um, mas no máximo 20 conjuntos. Por exemplo: {"server", "database", "schema" e "object"} é um conjunto de identidade para o protocolo TDS, que define a identidade do ativo de Tabela do SQL Server. |
DataSourceProtocolIdentityProperty
Propriedades | Tipo de dados | Comentários |
---|---|---|
name | string | O nome da propriedade. Cada parte deve ter de 1 a 100 caracteres, começar com uma letra e conter somente letras e números. |
tipo | string | O tipo da propriedade. Os valores com suporte são: “bool”, “boolean”, “byte”, “guid”, “int”, “integer”, “long”, “string” e “url” |
ignoreCase | bool | Indica se o caso deve ser ignorado ao usar o valor da propriedade. Só pode ser especificado para propriedades com o tipo "string". O valor padrão é falso. |
urlPathSegmentsIgnoreCase | bool[] | Indica se o caso deve ser ignorado para cada segmento do caminho da URL. Só pode ser especificado para propriedades com o tipo "url". O valor padrão é [falso]. |
DataSourceProtocolIdentitySet
Propriedades | Tipo de dados | Comentários |
---|---|---|
name | string | O nome do conjunto de identidade. |
properties | string[] | A lista de propriedades de identidade incluída em um conjunto de identidades. Ela não pode conter duplicatas. Cada propriedade referenciada pelo conjunto de identidades deve ser definida na lista "identityProperties" do protocolo. |
Funções e autorização
O Catálogo de Dados do Microsoft Azure fornece recursos de autorização para operações CRUD de ativos e anotações.
O Catálogo de Dados do Azure usa dois mecanismos de autorização:
- Autorização baseada em função
- Autorização baseada em permissão
Funções
Há três funções: Administrador, Proprietário e Colaborador. Cada função tem seu escopo e direitos que são resumidos na tabela a seguir.
Função | Escopo | Direitos |
---|---|---|
Administrador | Catálogo (todos os ativos/anotações no catálogo) | Read, Delete, ViewRoles, ChangeOwnership, ChangeVisibility, ViewPermissions |
Proprietário | Cada ativo (item raiz) | Read, Delete, ViewRoles, ChangeOwnership, ChangeVisibility, ViewPermissions |
Colaborador | Cada ativo e anotação individuais | Read*, Update, Delete, ViewRoles |
Observação
*Todos os direitos são revogados se Read à direita do item é revogado do Colaborador
Observação
Os direitos Read, Update, Delete e ViewRoles são aplicáveis a qualquer item (ativo ou anotação) enquanto TakeOwnership, ChangeOwnership, ChangeVisibility e ViewPermissions só são aplicáveis ao ativo de raiz. Excluir aplica-se a um item e a subitens ou a um item único abaixo dele. Por exemplo, excluir um ativo também exclui todas as anotações desse ativo.
Permissões
A permissão funciona como uma lista de entradas de controle de acesso. Cada entrada de controle de acesso atribui o conjunto de direitos a uma entidade de segurança. Permissões só podem ser especificadas em um ativo (ou seja, item de raiz) e aplicam-se ao ativo e a todos os subelementos.
Durante a visualização do Catálogo de Dados do Azure, somente o direito Read tem suporte na lista de permissões para permitir que o cenário restrinja a visibilidade de um ativo.
Por padrão qualquer usuário autenticado tem o direito Read para qualquer item do catálogo, a menos que a visibilidade esteja restrita ao conjunto de entidades nas permissões.
API REST
As solicitações de exibição de item PUT e POST podem ser usadas para controlar funções e permissões. Além do conteúdo do item, é possível especificar duas propriedades do sistema, roles e permissions.
Observação
permissões aplica-se somente a um item raiz. Proprietário só é aplicável a um item raiz. Por padrão, quando um item é criado no catálogo, seu Colaborador é definido como o usuário autenticado no momento. Se o item deve ser atualizado por todos os usuários, o Colaborador deverá ser definido como a entidade de segurança especial <Everyone> na propriedade roles quando o item for publicado pela primeira vez (veja o exemplo a seguir). O Colaborador não pode ser alterado e permanece o mesmo durante o tempo de vida de um item (até mesmo o Administrador ou o Proprietário não têm o direito de alterar o Colaborador). O único valor permitido para a configuração explícita do Colaborador é <Everyone>: Colaborador só pode ser um usuário que criou um item ou <Everyone>.
Exemplos
Defina o Colaborador como <Everyone> ao publicar um item.
A entidade de segurança especial <Everyone> tem a objectId "00000000-0000-0000-0000-000000000201".
POSThttps://api.azuredatacatalog.com/catalogs/default/views/tables/?api-version=2016-03-30
Observação
Algumas implementações de cliente HTTP podem reemitir solicitações automaticamente em resposta a um 302 do servidor, mas normalmente removem cabeçalhos de autorização da solicitação. Como o cabeçalho de Autorização é necessário para fazer solicitações ao Catálogo de Dados do Azure, você deve garantir que o cabeçalho de Autorização ainda seja fornecido ao emitir novamente uma solicitação para um local de redirecionamento especificado pelo Catálogo de Dados do Azure. O código de exemplo a seguir demonstra isso usando o objeto HttpWebRequest .NET.
Corpo
{
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
]
}
Atribua proprietários e restrinja a visibilidade de um item de raiz existente: PUThttps://api.azuredatacatalog.com/catalogs/default/views/tables/042297b0...1be45ecd462a?api-version=2016-03-30
{
"roles": [
{
"role": "Owner",
"members": [
{
"objectId": "c4159539-846a-45af-bdfb-58efd3772b43",
"upn": "user1@contoso.com"
},
{
"objectId": "fdabd95b-7c56-47d6-a6ba-a7c5f264533f",
"upn": "user2@contoso.com"
}
]
}
],
"permissions": [
{
"principal": {
"objectId": "27b9a0eb-bb71-4297-9f1f-c462dab7192a",
"upn": "user3@contoso.com"
},
"rights": [
{
"right": "Read"
}
]
},
{
"principal": {
"objectId": "4c8bc8ce-225c-4fcf-b09a-047030baab31",
"upn": "user4@contoso.com"
},
"rights": [
{
"right": "Read"
}
]
}
]
}
Observação
Em PUT, não é obrigatório especificar uma carga de item no corpo. PUT pode ser usado para atualizar apenas funções e/ou permissões.