Configurar e gerenciar a segurança do Banco de Dados SQL do Azure para restauração geográfica ou failoverConfigure and manage Azure SQL Database security for geo-restore or failover

Esse artigo descreve os requisitos de autenticação para configurar e controlar replicação geográfica ativa e grupos de failover automático.This article describes the authentication requirements to configure and control active geo-replication and auto-failover groups. Ele também fornece as etapas necessárias para configurar o acesso de usuário no banco de dados secundário.It also provides the steps required to set up user access to the secondary database. Por fim, ele também descreve como habilitar o acesso ao banco de dados recuperado depois de usar a restauração geográfica.Finally, it also describes how to enable access to the recovered database after using geo-restore. Para obter mais informações sobre as opções de recuperação, confira Visão geral de continuidade dos negócios.For more information on recovery options, see Business Continuity Overview.

Recuperação de desastre com usuários independentesDisaster recovery with contained users

Ao contrário de usuários tradicionais, que devem ser mapeados para logons no banco de dados mestre, um usuário independente é totalmente gerenciado pelo próprio banco de dados.Unlike traditional users, which must be mapped to logins in the master database, a contained user is managed completely by the database itself. Isso oferece dois benefícios.This has two benefits. No cenário de recuperação de desastre, os usuários podem continuar a conectar ao novo banco de dados primário recuperado usando restauração geográfica sem qualquer configuração adicional, pois o banco de dados gerencia os usuários.In the disaster recovery scenario, the users can continue to connect to the new primary database or the database recovered using geo-restore without any additional configuration, because the database manages the users. Também há possíveis benefícios de desempenho e escalabilidade com esta configuração de uma perspectiva de logon.There are also potential scalability and performance benefits from this configuration from a login perspective. Para obter mais informações, consulte Usuários do banco de dados independente - Tornando o banco de dados portátil.For more information, see Contained Database Users - Making Your Database Portable.

A principal desvantagem é que gerenciar o processo de recuperação de desastre em grande escala é mais desafiador.The main trade-off is that managing the disaster recovery process at scale is more challenging. Quando você tiver vários bancos de dados que usam o mesmo logon, manter as credenciais usando usuários independentes em vários bancos de dados pode invalidar os benefícios de usuários independentes.When you have multiple databases that use the same login, maintaining the credentials using contained users in multiple databases may negate the benefits of contained users. Por exemplo, a política de rotação de senha requer que alterações ocorram consistentemente em vários bancos de dados em vez de alterar a senha do logon apenas uma vez no banco de dados mestre.For example, the password rotation policy requires that changes be made consistently in multiple databases rather than changing the password for the login once in the master database. Por esse motivo, se você tiver vários bancos de dados que usam o mesmo nome de usuário e senha, a utilização de usuários independentes não será recomendada.For this reason, if you have multiple databases that use the same user name and password, using contained users is not recommended.

Como configurar logons e usuáriosHow to configure logins and users

Se você estiver usando logons e usuários (em vez de usuários independentes), precisará realizar etapas extras para garantir que os mesmos logons existam no banco de dados mestre.If you are using logins and users (rather than contained users), you must take extra steps to ensure that the same logins exist in the master database. As seções a seguir descrevem as etapas envolvidas e considerações adicionais.The following sections outline the steps involved and additional considerations.

Observação

Também é possível usar logons do Azure Active Directory (AAD) para gerenciar seus bancos de dados.It is also possible to use Azure Active Directory (AAD) logins to manage your databases. Para saber mais, confira Logons e usuários do SQL do Azure.For more information, see Azure SQL logins and users.

Configurar o acesso do usuário a um banco de dados secundário ou recuperadoSet up user access to a secondary or recovered database

Para o banco de dados secundário poder ser usado como banco de dados secundário somente leitura e para garantir o acesso apropriado ao novo banco de dados primário ou o banco de dados recuperado usando a restauração geográfica, o banco de dados mestre do servidor de destino deve ter a configuração de segurança apropriadas em vigor antes da recuperação.In order for the secondary database to be usable as a read-only secondary database, and to ensure proper access to the new primary database or the database recovered using geo-restore, the master database of the target server must have the appropriate security configuration in place before the recovery.

As permissões específicas para cada etapa são descritas posteriormente neste tópico.The specific permissions for each step are described later in this topic.

A preparação do acesso do usuário a uma replicação geográfica secundária deve ser realizada como parte da configuração da replicação geográfica.Preparing user access to a geo-replication secondary should be performed as part configuring geo-replication. A preparação do acesso do usuário aos bancos de dados restaurados geograficamente pode ser realizada a qualquer momento em que o servidor original estiver online (ex.: como parte do teste de DR).Preparing user access to the geo-restored databases should be performed at any time when the original server is online (e.g. as part of the DR drill).

Observação

Se o failover ou a restauração geográfica for para um servidor que não tem acesso de logons configurado corretamente, o acesso a ele será limitado à conta do administrador do servidor.If you fail over or geo-restore to a server that does not have properly configured logins, access to it will be limited to the server admin account.

Configurar logons no servidor de destino envolve três etapas descritas abaixo:Setting up logins on the target server involves three steps outlined below:

1. Determine os logons com acesso ao banco de dados primário1. Determine logins with access to the primary database

A primeira etapa do processo é determinar quais logons devem ser duplicados no servidor de destino.The first step of the process is to determine which logins must be duplicated on the target server. Isso é feito com um par de instruções SELECT, uma no banco de dados mestre lógico no servidor de origem e outra no próprio banco de dados primário.This is accomplished with a pair of SELECT statements, one in the logical master database on the source server and one in the primary database itself.

Somente o administrador de servidores ou um membro da função de servidor LoginManager pode determinar os logons no servidor de origem com a instrução SELECT a seguir.Only the server admin or a member of the LoginManager server role can determine the logins on the source server with the following SELECT statement.

SELECT [name], [sid]
FROM [sys].[sql_logins]
WHERE [type_desc] = 'SQL_Login'

Somente um membro da função de banco de dados db_owner, o usuário dbo ou o administrador de servidores pode determinar todas as entidades de usuário do banco de dados no banco de dados primário.Only a member of the db_owner database role, the dbo user, or server admin, can determine all of the database user principals in the primary database.

SELECT [name], [sid]
FROM [sys].[database_principals]
WHERE [type_desc] = 'SQL_USER'

2. Localize o SID dos logons identificados na etapa 12. Find the SID for the logins identified in step 1

Ao comparar a saída das consultas da seção anterior e fazer a correspondência dos SIDs, é possível mapear o logon do servidor para o usuário do banco de dados.By comparing the output of the queries from the previous section and matching the SIDs, you can map the server login to database user. Logons que têm um usuário de banco de dados com um SID correspondente têm acesso de usuário a esse banco de dados como essa entidade de usuário de banco de dados.Logins that have a database user with a matching SID have user access to that database as that database user principal.

A consulta a seguir pode ser usada para ver todas as entidades de usuário e seus SIDs em um banco de dados.The following query can be used to see all of the user principals and their SIDs in a database. Somente um membro da função de banco de dados db_owner ou o administrador de servidores pode executar essa consulta.Only a member of the db_owner database role or server admin can run this query.

SELECT [name], [sid]
FROM [sys].[database_principals]
WHERE [type_desc] = 'SQL_USER'

Observação

Os usuários INFORMATION_SCHEMA e sys têm SIDs NULL e o SID convidado é 0x00.The INFORMATION_SCHEMA and sys users have NULL SIDs, and the guest SID is 0x00. O SID dbo pode começar com 0x01060000000001648000000000048454 se o criador do banco de dados foi o administrador do servidor, em vez de um membro do DbManager.The dbo SID may start with 0x01060000000001648000000000048454, if the database creator was the server admin instead of a member of DbManager.

3. Crie os logons no servidor de destino3. Create the logins on the target server

A última etapa é acessar o servidor de destino, ou servidores, e gerar os logons com os SIDs apropriados.The last step is to go to the target server, or servers, and generate the logins with the appropriate SIDs. A sintaxe básica é mostrada a seguir.The basic syntax is as follows.

CREATE LOGIN [<login name>]
WITH PASSWORD = <login password>,
SID = <desired login SID>

Observação

Se desejar conceder ao usuário o acesso ao secundário, mas não ao primário, você poderá fazer isso alterando o logon do usuário no servidor primário usando a sintaxe a seguir.If you want to grant user access to the secondary, but not to the primary, you can do that by altering the user login on the primary server by using the following syntax.

ALTER LOGIN <login name> DISABLE

DISABLE não altera a senha, portanto você sempre poderá habilitá-la se necessário.DISABLE doesn’t change the password, so you can always enable it if needed.

Próximas etapasNext steps