VENDAS: 1-800-867-1389

Gerenciando federações de bancos de dados (Banco de Dados SQL do Azure)

Atualizado: abril de 2014

As declarações, funções e exibições Transact-SQL podem ser usadas para criar, alterar e monitorar federações. Este tópico fornece informações sobre como administrar federações.

Cada federação começa com uma raiz e um membro inicial de federação. Eles são criados ao usar a instrução CREATE FEDERATION. Depois da criação da federação, uma estrutura de tabela federada pode ser criada conectando-se à raiz da federação com a instrução USE FEDERATION e, em seguida, usando CREATE TABLE com a cláusula FEDERATED ON.

Para dimensionar uma federação, a instrução ALTER FEDERATION pode ser usada para dividir um membro de federação existente em novos membros. A operação SPLIT identifica o membro a ser dividido por meio do valor de chave de federação especificado como parte da operação. O membro da federação é dividido no valor especificado, resultando em dois novos membros que contêm a soma total de linhas contidas anteriormente no membro de origem.

Também é possível usar ALTER FEDERATION para reduzir o número de membros da federação por meio da operação DROP AT. O intervalo de valores de chave de federação cobertos anteriormente pelo membro removido é transferido para um membro adjacente; no entanto, os dados anteriormente associados a esse intervalo não são preservados por essa operação.

noteObservação
Os membros da federação não podem ser criados nem removidos com os comandos CREATE DATABASE ou DROP DATABASE.

A instrução DROP FEDERATION pode ser usada para remover uma federação, incluindo todos os membros da federação e outros metadados e objetos lógicos associados.

Além disso, a instrução ALTER DATABASE tem suporte total em membros da federação.

Embora seja possível se conectar diretamente com os bancos de dados físicos que contenham os dados de federação, não é o método de conexão ideal, pois se baseia no conhecimento dos nomes dos bancos de dados membros individuais. A instrução USE FEDERATION oferece uma conectividade mais fácil direcionando todas as conexões por meio da raiz da federação, e não requer que você saiba os nomes dos bancos de dados membros individuais, somente o nome e a chave da federação.

É possível filtrar as conexões usando a cláusula WITH FILTERING=ON, para que as operações na conexão se restrinjam apenas à unidade da federação atômica correspondente ao valor da chave. Com a filtragem ativada, o processador de consultas adiciona um predicado que contém o valor da chave da federação na coluna a cada consulta que se refere a uma tabela federada.

WarningAviso
Uma unidade de federação atômica não é um limite de segurança, e o processador de consultas não garante o isolamento completo das informações entre as unidades dentro do mesmo membro da federação. Não confie na filtragem como mecanismo de isolamento de segurança.

Para determinar se uma conexão está filtrada ou não, sys.dm_exec_sessions retorna uma coluna is_filtered. O tipo de dados desta coluna é bit; 1 é retornado se a conexão for filtrada, caso contrário, 0. Se a conexão for filtrada, é possível determinar o valor de filtragem usando FEDERATION_FILTERING_VALUE.

A autenticação para bancos de dados que contenham federações é a mesma para bancos de dados sem federações. No entanto, a configuração das entidades de segurança, como usuários e funções, é limitada ao banco de dados de raiz da federação, e elas não são replicadas automaticamente a qualquer um dos membros da federação.

Os membros da federação não podem ter usuários com logons. Em vez disso, as contas de usuário criadas em um membro da federação são vinculadas à conta do mesmo nome na raiz da federação. As funções dentro dos membros da federação são gerenciadas como em um banco de dados não federado.

Quando o primeiro membro da federação é criado, a conta que executa a instrução se torna a proprietária do membro. Para adicionar uma entidade a partir da raiz de federação ao membro da federação, o proprietário do banco de dados deve criar um usuário no membro da federação com a instrução CREATE USER e vincular um usuário a uma entidade existente no banco de dados da raiz da federação usando a instrução ALTER USER. O nome de usuário deve ser exatamente igual ao nome da entidade em sys.database_principals na raiz da federação. Não há suporte para a vinculação de usuários a funções ou a outros tipos de entidades que não sejam usuários.

noteObservação
Se o nome de usuário não corresponder exatamente a um nome de entidade existente na raiz da federação, a instrução não funcionará, exibindo a seguinte mensagem de erro:

‘user_name’ não é um user_name válido ou você não tem permissão

Usuários e funções no banco de dados de raiz da federação são criados da mesma forma que para um banco de dados não federado.

Os usuários vinculados podem ser usados como contas de usuários regulares em um membro da federação. Eles podem participar de cláusulas EXECUTE AS e podem ser adicionados a funções. Com EXECUTE AS, a cláusula WITH NO REVERT não tem suporte porque usuários vinculados não têm confiança e dbchaining habilitados.

As exibições a seguir fornecem informações sobre operações da federação. As informações são relatadas por essas exibições enquanto a operação está em execução e são removidas logo após o seu término.

 

Exibição da operação da federação Descrição

sys.dm_federation_operations

Retorna informações sobre as operações no nível da federação

sys.dm_federation_operation_members

Retorna informações sobre os membros da federação envolvidos em operações

sys.dm_federation_operation_errors

Retorna informações sobre erros ocorridos durante as operações da federação

sys.dm_federation_operation_error_members

Retorna informações sobre os membros da federação envolvidos em operações nas quais ocorreram erros

É possível obter metadados adicionais descrevendo federações, membros e o esquema de distribuição usado na federação nas exibições a seguir. Além disso, sys.databases agora retorna uma coluna denominada Is_federation_member, que contém um valor de bits que indica se um banco de dados é um membro da federação.

 

Tabela de metadados da federação Descrição

sys.federations

Retorna as federações dentro de um banco de dados.

sys.federation_members

Retorna os membros de uma federação.

sys.federation_distributions

Retorna o tipo de distribuição e os tipos de dados usados por uma federação.

sys.federation_member_distributions

Retorna o nome da distribuição e o intervalo coberto por um membro da federação.

sys.federated_table_columns

Retorna informações específicas a federação nas tabelas federadas.

Informações históricas sobre as operações da federação podem ser obtidas nas exibições de histórico da federação. As informações permitem reconstruir as informações da raiz da federação e dos membros, incluindo o intervalo coberto por um membro, para qualquer ponto no tempo. As exibições de histórico da federação são as seguintes:

 

Tabela de histórico da federação Descrição

sys.federation_history

Retorna informações históricas sobre as federações

sys.federation_member_history

Retorna informações históricas sobre os membros da federação

sys.federation_distribution_history

Retorna as informações históricas sobre o tipo de distribuição e o tipo de dados de uma federação

sys.federation_member_distribution_history

Retorna informações históricas sobre o intervalo coberto por um membro da federação

Consulte também

Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários
Mostrar:
© 2014 Microsoft