Credenciais usadas para acessar a biblioteca de cliente do Elastic Database
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 mapas de estilhaços. 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 mapas de estilhaços. (Ver glossário.)
- Credenciais de acesso: para acessar um gerenciador de mapa de estilhaços existente para obter informações sobre fragmentos.
- Credenciais de conexão: para se conectar a fragmentos.
Consulte também Gerir bases de dados e inícios de sessão na Base 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 manipulam mapas de estilhaços. (Por exemplo, ver Adicionar um fragmento usando ferramentas do Elastic Database e roteamento dependente de dados). O usuário da biblioteca de cliente de escala elástica cria os usuários SQL e logons SQL e garante que cada um receba as permissões de leitura/gravação no banco de dados de mapa de estilhaços global e em todos os bancos de dados de estilhaços também. Essas credenciais são usadas para manter o mapa de estilhaços global e os mapas de estilhaços locais quando as alterações no mapa de estilhaços são executadas. Por exemplo, use as credenciais de gerenciamento para criar o objeto do gerenciador de mapas de estilhaços (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. O ID de usuário e a senha fornecem acesso de leitura/gravação ao banco de dados de mapas de estilhaços e 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 de estilhaço 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 na forma de "username@server" — em vez disso, use apenas o valor "username". Isso ocorre porque as credenciais devem funcionar no banco de dados do gerenciador de mapas de estilhaços e em fragmentos individuais, que podem estar em servidores diferentes.
Credenciais de acesso
Ao criar um gerenciador de mapas de estilhaços em um aplicativo que não administra mapas de estilhaços, use credenciais que tenham permissões somente leitura no mapa de estilhaços global. As informações recuperadas do mapa de estilhaços global sob essas credenciais são usadas para roteamento dependente de dados e para preencher o cache do mapa de estilhaços no cliente. As credenciais são fornecidas através do mesmo padrão de chamada para GetSqlShardMapManager:
// Obtain shard map manager.
ShardMapManager shardMapManager = ShardMapManagerFactory.GetSqlShardMapManager(smmReadOnlyConnectionString, ShardMapManagerLoadPolicy.Lazy);
Observe o uso do smmReadOnlyConnectionString para refletir o uso de credenciais diferentes para esse acesso em nome de usuários não administradores: essas credenciais não devem fornecer permissões de gravação no mapa de estilhaços global.
Credenciais de ligaçã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 estilhaços locais que residem no fragmento. Isso é necessário para executar a validação de conexão para roteamento dependente de dados no fragmento. Este trecho de código permite o acesso a dados no contexto de 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 credenciais de usuário:
"User ID=<yourusername>; Password=<youruserpassword>; Trusted_Connection=False; Encrypt=True; Connection Timeout=30;"
Tal como acontece com as credenciais de administrador, não use valores na forma de "username@server". Em vez disso, basta usar "username". Observe também que a cadeia de conexão não contém um nome de servidor e nome de banco de dados. Isso ocorre porque a chamada OpenConnectionForKey direciona automaticamente a conexão para o estilhaço correto com base na chave. Portanto, o nome do banco de dados e o nome do servidor não são fornecidos.
Consulte também
Securing your SQL Database (Proteger a sua Base de Dados SQL)
Trabalhos do Banco de Dados Elástico
Recursos adicionais
Ainda não está usando ferramentas de banco de dados elástico? Consulte o nosso Guia de Introdução. Para dúvidas, entre em contato conosco na página de perguntas e respostas da Microsoft para o Banco de dados SQL e para solicitações de recursos, adicione novas ideias ou vote em ideias existentes no fórum de comentários do Banco de dados SQL.