Credenciais usadas para acessar a biblioteca de cliente do Banco de Dados Elástico

Aplica-se a:Banco de Dados SQL do Azure

A biblioteca de cliente do Banco de Dados Elástico usa três tipos diferentes de credenciais para acessar o gerenciador de mapa de fragmento. Dependendo da necessidade, use a credencial com o menor nível de acesso possível.

  • Credenciais de gerenciamento: para criar ou manipular um gerenciador de mapa de fragmentos. (Consulte o glossário.)
  • Credenciais de acesso: para acessar um gerenciador de mapa de fragmentos existente para obter informações sobre fragmentos.
  • As credenciais de conexão: para conectar a fragmentos.

Consulte Gerenciamento de bancos de dados e logons no Banco de Dados SQL do Azure

Sobre as credenciais de gerenciamento

As credenciais de gerenciamento são usadas para criar um objeto ShardMapManager (Java, .NET) para aplicativos que lidam com mapas de fragmento. (Por exemplo, consulte Adicionando um fragmento usando ferramentas do Banco de Dados Elástico e Roteamento dependente de dados). O usuário da biblioteca cliente de escala elástica cria os usuários do SQL e os logons do SQL e verifica se cada um recebeu as permissões de leitura/gravação no banco de dados de mapa de fragmentos global e também em todos os bancos de dados de fragmentos. Essas credenciais são usadas para manter o mapa do fragmento globais e os mapas de fragmento local quando as alterações para o mapa do fragmento são executadas. Por exemplo, use as credenciais de gerenciamento para criar o objeto do gerenciador de mapa de fragmentos usando GetSqlShardMapManager (Java, .NET):

// Obtain a shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmAdminConnectionString,ShardMapManagerLoadPolicy.Lazy);

A variável smmAdminConnectionString é uma cadeia de conexão que contém as credenciais de gerenciamento. A ID de usuário e a senha fornecem acesso de leitura/gravação ao banco de dados de mapa de fragmentos e aos fragmentos individuais. A cadeia de conexão de gerenciamento também inclui o nome do servidor e o nome do banco de dados para identificar o banco de dados de mapa do fragmento global. Aqui está uma cadeia de conexão típica para essa finalidade:

"Server=<yourserver>.database.windows.net;Database=<yourdatabase>;User ID=<yourmgmtusername>;Password=<yourmgmtpassword>;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;"

Não use valores no formato "username@server" e, em vez disso, use somente o valor "username". Isso ocorre porque as credenciais devem funcionar no banco de dados do Gerenciador de mapa do fragmento e fragmentos individuais, que podem estar em servidores diferentes.

Credenciais de acesso

Ao criar um gerenciador de mapa de fragmentos em um aplicativo que não administra mapas de fragmentos, use credenciais que tenham permissões somente leitura no mapa de fragmentos global. As informações recuperadas do mapa de fragmentos global com essas credenciais são usadas para o roteamento dependente de dados e para popular o cache do mapa de fragmentos no cliente. As credenciais são fornecidas por meio do mesmo padrão de chamada para GetSqlShardMapManager:

// Obtain shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmReadOnlyConnectionString, ShardMapManagerLoadPolicy.Lazy);  

Observe o uso de smmReadOnlyConnectionString para refletir o uso de credenciais diferentes para esse acesso em nome dos usuários não administradores; essas credenciais não devem fornecer permissões de gravação ao mapa de fragmentos global.

As credenciais de conexão

Credenciais adicionais são necessárias ao usar o método OpenConnectionForKey (Java, .NET) para acessar um fragmento associado a uma chave de fragmentação. Essas credenciais precisam fornecer permissões para acesso somente leitura às tabelas de mapa de fragmento local que residem no fragmento. Isso é necessário para executar a validação de conexão para roteamento dependentes de dados sobre o fragmento. Este snippet de código permite o acesso a dados no contexto do roteamento dependente de dados:

using (SqlConnection conn = rangeMap.OpenConnectionForKey<int>(targetWarehouse, smmUserConnectionString, ConnectionOptions.Validate))

Neste exemplo, smmUserConnectionString contém a cadeia de conexão para as credenciais do usuário. Para o Banco de Dados SQL do Azure, aqui está uma cadeia de conexão típica para as credenciais do usuário:

"User ID=<yourusername>; Password=<youruserpassword>; Trusted_Connection=False; Encrypt=True; Connection Timeout=30;"  

Assim como acontece com as credenciais de administrador, não use valores no formato "username@server". Em vez disso, use "username". Observe que a cadeia de conexão não contém um nome do servidor e banco de dados. Isso ocorre porque a chamada OpenConnectionForKey redireciona automaticamente a conexão para o fragmento correto com base na chave. Portanto, o nome do banco de dados e o nome do servidor não são fornecidos.

Confira também

Gerenciamento de bancos de dados e logons no Banco de Dados SQL do Azure

Protegendo o Banco de Dados SQL

Trabalhos de Banco de Dados elástico

Recursos adicionais

Ainda não está usando ferramentas de banco de dados elástico? Confira nosso Guia de Introdução. Em caso de dúvidas, entre em contato conosco na página de perguntas do Microsoft Q&A para Banco de Dados SQL e, para solicitações de recursos, adicione novas ideias ou vote em ideias existentes no Fórum de comentários sobre o Banco de Dados SQL.