Control de acceso a Azure SQL Database y SQL Data WarehouseAzure SQL Database and SQL Data Warehouse access control

Para proporcionar seguridad, Azure SQL Database y SQL Data Warehouse controlan el acceso con reglas de firewall que limitan la conectividad por dirección IP, con mecanismos de autenticación que requieren a los usuarios que demuestren su identidad y con mecanismos de autorización que limitan a los usuarios el acceso a datos y acciones específicos.To provide security, Azure SQL Database and SQL Data Warehouse control access with firewall rules limiting connectivity by IP address, authentication mechanisms requiring users to prove their identity, and authorization mechanisms limiting users to specific actions and data.

Importante

Para obtener información general de las características de seguridad de SQL Database, consulte SQL security overview (Información general acerca de la seguridad de SQL).For an overview of the SQL Database security features, see SQL security overview. Para ver un tutorial, consulte Protección de bases de datos de Azure SQL.For a tutorial, see Secure your Azure SQL Database. Para una información general de las características de seguridad de SQL Data Warehouse, consulte Introducción a la seguridad de SQL Data WarehouseFor an overview of SQL Data Warehouse security features, see SQL Data Warehouse security overview

Firewall y reglas de firewallFirewall and firewall rules

Microsoft Azure SQL Database ofrece un servicio de base de datos relacional para Azure y otras aplicaciones basadas en Internet.Microsoft Azure SQL Database provides a relational database service for Azure and other Internet-based applications. Para ayudar a proteger los datos, los firewalls impiden todo acceso al servidor de bases de datos, excepto a aquellos equipos a los que haya concedido permiso.To help protect your data, firewalls prevent all access to your database server until you specify which computers have permission. Asimismo, otorgan acceso a las bases de datos según la dirección IP de origen de cada solicitud.The firewall grants access to databases based on the originating IP address of each request. Para más información, consulte Introducción a las reglas de firewall de Azure SQL Database.For more information, see Overview of Azure SQL Database firewall rules

El servicio Azure SQL Database solo está disponible a través del puerto TCP 1433.The Azure SQL Database service is only available through TCP port 1433. Para tener acceso a una instancia de SQL Database desde el equipo, asegúrese de que el firewall de equipos cliente permite la comunicación TCP saliente en el puerto TCP 1433.To access a SQL Database from your computer, ensure that your client computer firewall allows outgoing TCP communication on TCP port 1433. Si no es necesario para otras aplicaciones, bloquee las conexiones entrantes en el puerto TCP 1433.If not needed for other applications, block inbound connections on TCP port 1433.

Como parte del proceso de conexión, las conexiones de máquinas virtuales de Azure se redirigen a una dirección IP y un puerto diferente, único para cada rol de trabajo.As part of the connection process, connections from Azure virtual machines are redirected to a different IP address and port, unique for each worker role. El número de puerto está comprendido en el rango del 11000 al 11999.The port number is in the range from 11000 to 11999. Para obtener más información sobre los puertos TCP, consulte Puertos más allá del 1433 para ADO.NET 4.5 y SQL Database2.For more information about TCP ports, see Ports beyond 1433 for ADO.NET 4.5 and SQL Database2.

AuthenticationAuthentication

SQL Database admite dos tipos de autenticación:SQL Database supports two types of authentication:

  • Autenticación de SQL:SQL Authentication:

    Este método de autenticación utiliza un nombre de usuario y una contraseña.This authentication method uses a username and password. Al crear el servidor de SQL Database para la base de datos, especificó un inicio de sesión de "administrador de servidor" con un nombre de usuario y una contraseña.When you created the SQL Database server for your database, you specified a "server admin" login with a username and password. Con estas credenciales, puede autenticarse en cualquier base de datos en ese servidor como propietario de la base de datos, o "dbo".Using these credentials, you can authenticate to any database on that server as the database owner, or "dbo."

  • Autenticación con Azure Active Directory:Azure Active Directory Authentication:

    Este método de autenticación usa las identidades administradas por Azure Active Directory y es compatible con dominios administrados e integrados.This authentication method uses identities managed by Azure Active Directory and is supported for managed and integrated domains. Si desea usar la autenticación de Azure Active Directory, debe crear otro administrador de servidor llamado "administrador de Azure AD" con permiso para administrar usuarios y grupos de Azure AD.If you want to use Azure Active Directory Authentication, you must create another server admin called the "Azure AD admin," which is allowed to administer Azure AD users and groups. Este administrador también puede realizar todas las operaciones de un administrador de servidor normal.This admin can also perform all operations that a regular server admin can. Consulte el tutorial Conectar a la SQL Database mediante la autenticación de Azure Active Directory , para obtener información acerca de cómo crear un administrador de Azure AD y así habilitar la autenticación de Azure Active Directory.See Connecting to SQL Database By Using Azure Active Directory Authentication for a walkthrough of how to create an Azure AD admin to enable Azure Active Directory Authentication.

El motor de la base de datos cierra las conexiones que permanecen inactivas durante más de 30 minutos.The Database Engine closes connections that remain idle for more than 30 minutes. La conexión debe volver a iniciar sesión para poder usarse.The connection must login again before it can be used. Las conexiones con SQL Database que están constantemente activas requieren volver a ser autorizadas (acción realizada por el motor de la base de datos) al menos cada 10 horas.Continuously active connections to SQL Database require reauthorization (performed by the database engine) at least every 10 hours. El motor de la base de datos intenta repetir la autorización con la contraseña que se envió inicialmente y no se requiere ninguna acción del usuario.The database engine attempts reauthorization using the originally submitted password and no user input is required. Por motivos de rendimiento, cuando se restablece una contraseña en SQL Database, la conexión no se vuelve a autenticar, incluso si esta se restablece debido a la agrupación de conexiones.For performance reasons, when a password is reset in SQL Database, the connection is not reauthenticated, even if the connection is reset due to connection pooling. Esto difiere del comportamiento del SQL Server local.This is different from the behavior of on-premises SQL Server. Si se ha cambiado la contraseña desde que se autorizó la conexión inicialmente, deberá terminarse la conexión y establecerse una nueva conexión con la nueva contraseña.If the password has been changed since the connection was initially authorized, the connection must be terminated and a new connection made using the new password. Los usuarios con el permiso KILL DATABASE CONNECTION pueden terminar explícitamente una conexión con SQL Database mediante el uso del comando KILL.A user with the KILL DATABASE CONNECTION permission can explicitly terminate a connection to SQL Database by using the KILL command.

Las cuentas de usuario se pueden crear en la base de datos maestra y se pueden conceder permisos en todas las bases de datos del servidor, o se pueden crear en la misma base de datos (se denominan usuarios de bases de datos independientes).User accounts can be created in the master database and can be granted permissions in all databases on the server, or they can be created in the database itself (called contained users). Para más información sobre cómo crear y administrar inicios de sesión, consulte Administración de inicios de sesión.For information on creating and managing logins, see Manage logins. Para mejorar la portabilidad y escalabilidad, utilice bases de datos independientes.Use contained databases to enhance portability and scalability. Para más información sobre los usuarios de bases de datos independientes, consulte Usuarios de bases de datos independientes: llévense sus bases de datos donde quieran, CREATE USER (Transact-SQL) y Bases de datos independientes.For more information on contained users, see Contained Database Users - Making Your Database Portable, CREATE USER (Transact-SQL), and Contained Databases.

Como procedimiento recomendado, la aplicación debe usar una cuenta dedicada para autenticar. De esta forma, puede limitar los permisos concedidos a la aplicación y reducir los riesgos de actividad malintencionada en caso de que el código de la aplicación sea vulnerable a ataques por inyección de código SQL.As a best practice your application should use a dedicated account to authenticate -- this way you can limit the permissions granted to the application and reduce the risks of malicious activity in case your application code is vulnerable to a SQL injection attack. Se recomienda crear un usuario de base de datos independiente, ya que esto permitirá que la aplicación se autentique directamente en la base de datos.The recommended approach is to create a contained database user, which allows your app to authenticate directly to the database.

AuthorizationAuthorization

Autorización indica las acciones que pueden realizar los usuarios en una base de datos de Azure SQL, algo que controlan las pertenencias a roles y los permisos de nivel de objeto de las bases de datos de la cuenta de usuario.Authorization refers to what a user can do within an Azure SQL Database, and this is controlled by your user account's database role memberships and object-level permissions. Como procedimiento recomendado, debe conceder a los usuarios los privilegios mínimos necesarios.As a best practice, you should grant users the least privileges necessary. La cuenta de administrador de servidor con la que se está conectando forma parte de db_owner, que tiene autoridad para realizar cualquier acción en la base de datos.The server admin account you are connecting with is a member of db_owner, which has authority to do anything within the database. Guarde esta cuenta para implementar las actualizaciones de los esquemas y otras operaciones de administración.Save this account for deploying schema upgrades and other management operations. Utilice la cuenta "ApplicationUser" con permisos más limitados para conectarse desde la aplicación a la base de datos con los privilegios mínimos que necesita la aplicación.Use the "ApplicationUser" account with more limited permissions to connect from your application to the database with the least privileges needed by your application. Para más información, consulte Administración de inicios de sesión.For more information, see Manage logins.

Normalmente, solo los administradores necesitan tener acceso a la base de datos master.Typically, only administrators need access to the master database. El acceso rutinario a cada base de datos de usuario debe llevarse a cabo a través de los usuarios de la base de datos independiente que no son administradores creados en cada base de datos.Routine access to each user database should be through non-administrator contained database users created in each database. Al utilizar los usuarios de la base de datos independiente, no es necesario que cree inicios de sesión en la base de datos master.When you use contained database users, you do not need to create logins in the master database. Para obtener más información, vea Usuarios de base de datos independiente - Conversión de la base de datos en portátil.For more information, see Contained Database Users - Making Your Database Portable.

Debe familiarizarse con las siguientes características que pueden utilizarse para limitar o elevar los permisos:You should familiarize yourself with the following features that can be used to limit or elevate permissions:

Pasos siguientesNext steps