Configuración y administración de la seguridad de Azure SQL Database para la restauración geográfica o la conmutación por errorConfigure and manage Azure SQL Database security for geo-restore or failover

SE APLICA A: sí Azure SQL Database APPLIES TO: yesAzure SQL Database

En este artículo se describen los requisitos de autenticación para configurar y controlar la replicación geográfica activa y los grupos de conmutación por error automática.This article describes the authentication requirements to configure and control active geo-replication and auto-failover groups. También se proporcionan los pasos necesarios para configurar el acceso de usuario a la base de datos secundaria.It also provides the steps required to set up user access to the secondary database. Asimismo, también se describe cómo habilitar el acceso a la base de datos recuperada después de usar la georestauración.Finally, it also describes how to enable access to the recovered database after using geo-restore. Para más información sobre opciones de recuperación, consulte Información general sobre la continuidad empresarial.For more information on recovery options, see Business Continuity Overview.

Recuperación ante desastres con usuarios contenidosDisaster recovery with contained users

A diferencia de los usuarios tradicionales, que deben asignarse a inicios de sesión en la base de datos maestra, un usuario independiente se administra completamente en la base de datos,Unlike traditional users, which must be mapped to logins in the master database, a contained user is managed completely by the database itself. lo que ofrece dos ventajas.This has two benefits. En el escenario de replicación geográfica, los usuarios pueden proceder a conectarse a la nueva base de datos principal o a la base de datos recuperada mediante georrestauración, sin ninguna configuración adicional, ya que la base de datos administra los usuarios.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. También existen ventajas potenciales de escalabilidad y rendimiento con esta configuración desde la perspectiva del inicio de sesión.There are also potential scalability and performance benefits from this configuration from a login perspective. Para obtener más información, vea Usuarios de base de datos independiente: hacer que la base de datos sea portátil.For more information, see Contained Database Users - Making Your Database Portable.

El principal inconveniente es que la administración del proceso de recuperación ante desastres a escala es más compleja.The main trade-off is that managing the disaster recovery process at scale is more challenging. Si tiene varias bases de datos que usan el mismo inicio de sesión, el mantenimiento de las credenciales que usan los usuarios independientes en varias bases de datos puede invalidar las ventajas de los usuarios independientes.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 ejemplo, la directiva de rotación de contraseñas requiere que se realicen cambios constantemente en varias bases de datos en lugar de cambiar la contraseña para el inicio de sesión una vez en la base de datos maestra.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 este motivo, si tiene varias bases de datos que utilizan el mismo nombre de usuario y la misma contraseña, no se recomienda usar usuarios contenidos.For this reason, if you have multiple databases that use the same user name and password, using contained users is not recommended.

Configuración de inicios de sesión y de usuariosHow to configure logins and users

Si usa inicios de sesión y usuarios (en lugar de usuarios contenidos), debe realizar pasos adicionales para asegurarse de que existan los mismos inicios de sesión en la base de datos maestra.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. En las secciones siguientes, se describen los pasos necesarios y otras consideraciones.The following sections outline the steps involved and additional considerations.

Nota

También es posible usar inicios de sesión de Azure Active Directory (AAD) para administrar las bases de datos.It is also possible to use Azure Active Directory (AAD) logins to manage your databases. Para más información, consulte Inicios de sesión y usuarios de Azure SQL.For more information, see Azure SQL logins and users.

Configuración del acceso de usuario a una base de datos secundaria o recuperadaSet up user access to a secondary or recovered database

Para que la base de datos secundaria se pueda utilizar como base de datos secundaria de solo lectura y garantizar el acceso adecuado a la nueva base de datos principal o a la base de datos recuperada mediante la georrestauración, la base de datos maestra del servidor de destino debe tener la configuración de seguridad adecuada antes de la recuperación.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.

Los permisos específicos para cada paso se describen más adelante en este tema.The specific permissions for each step are described later in this topic.

La preparación del acceso de usuario a una base de datos secundaria de replicación geográfica debe realizarse como parte de la configuración de replicación geográfica.Preparing user access to a geo-replication secondary should be performed as part configuring geo-replication. La preparación de acceso de usuario a las bases de datos georrestauradas debe realizarse en cualquier momento en que el servidor original esté en línea (por ejemplo, como parte de la obtención de detalles de recuperación ante desastres).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).

Nota

Si realiza una conmutación por error o la georrestauración en un servidor que no tiene configurado correctamente el acceso de inicio de sesión al mismo, se limitará a la cuenta de administrador del 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.

La configuración de los inicios de sesión en el servidor de destino implica los tres pasos descritos a continuación:Setting up logins on the target server involves three steps outlined below:

1. Determinar los inicios de sesión con acceso a la base de datos principal1. Determine logins with access to the primary database

El primer paso del proceso es determinar qué inicios de sesión se deben duplicar en el servidor de destino.The first step of the process is to determine which logins must be duplicated on the target server. Esto se logra con un par de instrucciones SELECT, una en la base de datos maestra lógica del servidor de origen y otra, en la base de datos principal en sí.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.

El administrador del servidor o un miembro del rol de servidor LoginManager son los únicos que pueden determinar los inicios de sesión en el servidor de origen con la siguiente instrucción SELECT.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'

Solo un miembro del rol de base de datos db_owner, el usuario dbo o el administrador del servidor pueden determinar todas las entidades de seguridad de usuario de base de datos en la base de datos principal.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. Buscar el SID de los inicios de sesión que identificó en el paso 12. Find the SID for the logins identified in step 1

Al comparar los resultados de las consultas de la sección anterior y cotejar los SID, puede asignar el inicio de sesión de servidor a un usuario de base de datos.By comparing the output of the queries from the previous section and matching the SIDs, you can map the server login to database user. Los inicios de sesión que cuenten con un usuario de base de datos con un SID coincidente tienen acceso de usuario a esa base de datos como entidad de seguridad de usuario de base de datos.Logins that have a database user with a matching SID have user access to that database as that database user principal.

La consulta siguiente se puede usar para ver todas las entidades de seguridad de usuario y sus SID en una base de datos.The following query can be used to see all of the user principals and their SIDs in a database. Solo un miembro del rol de servidor db_owner o el administrador del servidor pueden ejecutar esta 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'

Nota

Los usuarios de INFORMATION_SCHEMA y sys tienen SID NULL SID, mientras que el SID de guest es 0x00.The INFORMATION_SCHEMA and sys users have NULL SIDs, and the guest SID is 0x00. El SID de dbo puede empezar por 0x01060000000001648000000000048454 si el creador de la base de datos era el administrador del servidor en lugar de un miembro de DbManager.The dbo SID may start with 0x01060000000001648000000000048454, if the database creator was the server admin instead of a member of DbManager.

3. Crear los inicios de sesión en el servidor de destino3. Create the logins on the target server

El último paso consiste en ir al servidor o los servidores de destino y generar los inicios de sesión con los SID correspondientes.The last step is to go to the target server, or servers, and generate the logins with the appropriate SIDs. Esta es la sintaxis básica.The basic syntax is as follows.

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

Nota

Si desea conceder acceso de usuario a la base de datos secundaria, pero no a la principal, puede hacerlo modificando el inicio de sesión de usuario en el servidor principal con la sintaxis siguiente.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 no cambia la contraseña, por lo que siempre puede habilitarlo si es necesario.DISABLE doesn’t change the password, so you can always enable it if needed.

Pasos siguientesNext steps