Adición de una conexión a una instancia de Azure SQL Database
Con los servicios conectados de Visual Studio, puede conectarse a Azure SQL Database, a un emulador local (por ejemplo, durante el desarrollo) o a una base de datos de SQL Server local. Para SQL Server local, consulte Conexión a una base de datos.
Con Visual Studio, puede conectarse desde cualquiera de los siguientes tipos de proyecto utilizando la funcionalidad Connected Services:
- ASP.NET Core
- .NET Core (incluida la aplicación de consola, WPF, Windows Forms, biblioteca de clases)
- Rol de trabajo de .NET Core
- Comprobación de
- Aplicación de consola de .NET Framework
- modelo ASP.NET:View-Controller (MVC) (.NET Framework)
- Aplicación de la Plataforma universal de Windows
La funcionalidad del servicio conectado agrega todas las referencias necesarias y el código de conexión al proyecto y modifica los archivos de configuración correctamente.
Prerrequisitos
- Visual Studio con la carga de trabajo de Azure instalada.
- Un proyecto de uno de los tipos admitidos
- Una cuenta de Azure. Si no tiene una cuenta de Azure, active las ventajas de Azure para suscriptores de Visual Studio o regístrese para obtener una evaluación gratuita.
Conexión a Azure SQL Database mediante servicios conectados
Abra el proyecto en Visual Studio.
En Explorador de Soluciones, haga clic con el botón derecho en el nodo Servicios Conectados y, en el menú contextual, seleccione Agregar para abrir el menú de servicios disponibles.
Si no ve el nodo Servicios conectados, elija Proyecto>Servicios conectados>Agregar.
Elija la Base de Datos de SQL Server . Aparece la página Conectarse a la dependencia. Debería ver varias opciones:
- SQL Server Express LocalDB, la oferta integrada de SQL Database instalada con Visual Studio
- Base de datos de SQL Server en un contenedor local en el equipo
- Base de datos de SQL Server, una instancia local de SQL Server en la red local
- Base de datos de Azure SQL, para la base de datos SQL que se ejecuta como un servicio de Azure
Puede reducir el costo y simplificar el desarrollo anticipado empezando por una base de datos local. Puede migrar al servicio activo en Azure más adelante repitiendo estos pasos y seleccionando otra opción. Si crea una base de datos localmente que desea volver a crear en Azure, puede migrar la base de datos a Azure en ese momento.
Si desea conectarse al servicio de Azure, continúe con el paso siguiente o, si aún no ha iniciado sesión, inicie sesión en su cuenta de Azure antes de continuar. Si no tiene una cuenta de Azure, puede registrarse para obtener una evaluación gratuita de .
En la pantalla Configurar Azure SQL Database, seleccione una base de datos de Azure SQL existente y seleccione Siguiente.
Si necesita crear un nuevo componente, vaya al paso siguiente. De lo contrario, vaya al paso 7.
Para crear una base de datos de Azure SQL:
Seleccione Crear nuevo al lado del signo de más verde.
Rellene la pantalla Azure SQL Database: Crear nueva y seleccione Crear.
Cuando se muestra la pantalla Configurar Azure SQL Database, la nueva base de datos aparece en la lista. Seleccione la nueva base de datos de la lista y seleccione Siguiente.
Escriba un nombre de cadena de conexión o elija el valor predeterminado y, a continuación, elija Configuración adicional.
Nota
Con Visual Studio 2022, versión 17.12 y versiones posteriores, este procedimiento usa la identidad administrada de Microsoft Entra, un método de autenticación sin contraseña, para conectarse a la base de datos. La advertencia de esta pantalla significa que debe realizar un paso manual en Azure Portal después de completar este procedimiento en Visual Studio. Consulte Autenticación de Microsoft Entra.
Elija si desea la cadena de conexión almacenada en un archivo local de secretos o en Azure Key Vault, y luego elija Siguiente.
En la pantalla Resumen de cambios se muestran todas las modificaciones que se realizarán en el proyecto si completa el proceso. Si los cambios parecen correctos, seleccione Finalizar.
Si se le pide que establezca una regla de firewall, elija Sí.
En el Explorador de soluciones, haga doble clic en el nodo Servicios conectados para abrir la pestaña Servicios conectados. La conexión aparece en la sección dependencias del servicio.
Si hace clic en los tres puntos junto a la dependencia que agregó, puede ver varias opciones, como Conectar para volver a abrir el asistente y cambiar la conexión. También puede hacer clic en los tres puntos situados en la parte superior derecha de la ventana para ver las opciones para iniciar las dependencias locales, cambiar la configuración y mucho más.
Si usa la identidad administrada (Visual Studio 17.12 y versiones posteriores), consulte la sección siguiente para configurar el usuario de identidad administrada en la base de datos de Azure SQL.
Autenticación de Microsoft Entra
Con Visual Studio 2022, versión 17.12 y versiones posteriores, el procedimiento de servicios conectados usa la autenticación de Microsoft Entra, que es el método de autenticación más seguro. Sin embargo, Visual Studio no crea automáticamente el usuario administrador de Microsoft Entra en la base de datos de Azure SQL. Si no hay un usuario administrador de Microsoft Entra, la conexión no se autenticará correctamente.
Puede usar Azure Portal, PowerShell o la CLI de Azure para crear el usuario administrador de Microsoft Entra. Para obtener instrucciones detalladas para cada uno de estos métodos, consulte Establecer el usuario administrador de Microsoft Entra.
Después de completar el proceso de Servicios conectados, deberá crear un usuario de SQL que corresponda a la identidad administrada y establecer permisos mediante la ejecución de instrucciones SQL en la base de datos. Inicie sesión en el editor de consultas de en Azure Portal como usuario administrador de Microsoft Entra y ejecute instrucciones como las siguientes:
CREATE USER [<identity-name>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<identity-name>];
ALTER ROLE db_datawriter ADD MEMBER [<identity-name>];
ALTER ROLE db_ddladmin ADD MEMBER [<identity-name>];
GO
El <identity-name>
es el nombre de la identidad administrada en microsoft Entra ID. Si la identidad está asignada por el sistema, el nombre siempre es el mismo que el nombre de la aplicación de App Service. Para una ranura de implementación, el nombre de su identidad asignada por el sistema es <app-name>/slots/<slot-name>
. Para conceder permisos a un grupo de Microsoft Entra, use el nombre visible del grupo (por ejemplo, myAzureSQLDBAccessGroup
). Consulte Tipos de identidad administrada e Identidades administradas en Microsoft Entra para Azure SQL. Los roles que agregue dependen de los casos de uso. Consulte ALTER ROLE.
Si el código hace referencia a System.Data.SqlClient
, deberá actualizar a Microsoft.Data.SqlClient
, ya que System.Data.SqlClient
no admite la autenticación de Microsoft Entra. Para mejorar, agregue una referencia al paquete NuGet de Microsoft.Data.SqlClienty actualice las directivas de uso que hacen referencia a System.Data.SqlClient
para referirse al espacio de nombres Microsoft.Data.SqlClient
. Hay algunos cambios de comportamiento; consulte Hoja de referencia rápida para portabilidad.
Abra el proyecto en Visual Studio.
En Explorador de Soluciones, haga clic con el botón derecho en el nodo Servicios Conectados y, en el menú contextual, seleccione Agregar para abrir el menú de servicios disponibles.
Si no ve el nodo Servicios conectados, elija Proyecto>Servicios conectados>Agregar.
Elija Base de datos de SQL Server. Aparece la página Conectarse a la dependencia. Debería ver varias opciones:
- SQL Server Express LocalDB, la oferta integrada de SQL Database instalada con Visual Studio
- Base de datos de SQL Server en un contenedor local en el equipo
- Base de datos de SQL Server, una instancia local de SQL Server en la red local
- Base de datos de Azure SQL, para la base de datos SQL que se ejecuta como un servicio de Azure
Puede reducir el costo y simplificar el desarrollo anticipado empezando por una base de datos local. Puede migrar al servicio activo en Azure más adelante repitiendo estos pasos y seleccionando otra opción. Si crea una base de datos localmente que desea volver a crear en Azure, puede migrar la base de datos a Azure en ese momento.
Si desea conectarse al servicio de Azure, continúe con el paso siguiente o, si aún no ha iniciado sesión, inicie sesión en su cuenta de Azure antes de continuar. Si no tiene una cuenta de Azure, puede registrarse para obtener una evaluación gratuita de .
En la pantalla Configurar Azure SQL Database, seleccione una base de datos de Azure SQL existente y seleccione Siguiente.
Si necesita crear un nuevo componente, vaya al paso siguiente. De lo contrario, vaya al paso 7.
Para crear una base de datos de Azure SQL:
Seleccione Crear nuevo al lado del signo de más verde.
Rellene la pantalla Azure SQL Database: Crear nueva y seleccione Crear.
Cuando se muestra la pantalla Configurar Azure SQL Database, la nueva base de datos aparece en la lista. Seleccione la nueva base de datos de la lista y seleccione Siguiente.
Escriba un nombre de cadena de conexión o elija el valor predeterminado y elija si desea que la cadena de conexión se almacene en un archivo de secretos local o en Azure Key Vault.
En la pantalla Resumen de cambios se muestran todas las modificaciones que se realizarán en el proyecto si completa el proceso. Si los cambios parecen correctos, seleccione Finalizar.
Si se le pide que establezca una regla de firewall, elija Sí.
En el Explorador de soluciones, haga doble clic en el nodo Servicios Conectados para abrir la pestaña Servicios Conectados. La conexión aparece en la sección Dependencias del Servicio:
Si hace clic en los tres puntos junto a la dependencia que agregó, puede ver varias opciones, como Conectar para volver a abrir el asistente y cambiar la conexión. También puede hacer clic en los tres puntos situados en la parte superior derecha de la ventana para ver las opciones para iniciar las dependencias locales, cambiar la configuración y mucho más.
Acceso a la cadena de conexión
Aprenda cómo almacenar secretos de forma segura siguiendo Almacenamiento seguro de secretos de aplicaciones en desarrollo en ASP.NET Core. En concreto, para leer la cadena de conexión del almacén de secretos, puede agregar código como se indica en Lectura del secreto mediante la API de configuración. Consulte también Inserción de dependencias en ASP.NET Core.
Migraciones de Entity Framework
Puede ser conveniente trabajar con un almacén de datos local durante el desarrollo temprano, pero con Entity Framework Core, cuando esté listo para moverse a la nube, puede usar la compatibilidad de Visual Studio con la migración de Entity Framework para mover la base de datos o combinar cambios con un almacén de datos remoto. Consulte Información general sobre migraciones.
En la pestaña servicios conectados, puede encontrar los comandos de migración haciendo clic en el icono de tres puntos, como se muestra en la captura de pantalla.
Los comandos están disponibles para crear nuevas migraciones, aplicarlas directamente o generar scripts SQL que apliquen las migraciones.
Agregar migración
Cuando se introduce un cambio de modelo de datos, puede usar las herramientas de Entity Framework Core para agregar una migración correspondiente que describa en el código las actualizaciones necesarias para mantener sincronizado el esquema de la base de datos. Entity Framework Core compara el modelo actual con una instantánea del modelo anterior para determinar las diferencias y genera archivos de origen de migración. Los archivos se agregan al proyecto, normalmente en una carpeta denominada Migrations y se puede realizar un seguimiento en el control de código fuente del proyecto como cualquier otro archivo de código fuente.
Al elegir esta opción, se le pedirá que proporcione el nombre de clase de contexto que representa el esquema de base de datos que desea migrar.
Actualizar base de datos
Una vez creada una migración, se puede aplicar a una base de datos. Entity Framework actualiza la base de datos y el esquema con los cambios especificados en el código de migración. Al elegir esta opción, se le pedirá que proporcione el nombre de clase de contexto que representa el esquema de base de datos que desea migrar.
Generación de script SQL
La manera recomendada de implementar migraciones en una base de datos de producción es mediante la generación de scripts SQL. Entre las ventajas de esta estrategia se incluyen las siguientes:
- Los scripts SQL se pueden revisar para obtener precisión; Esto es importante, ya que aplicar cambios de esquema a las bases de datos de producción es una operación potencialmente peligrosa que podría implicar la pérdida de datos.
- En algunos casos, los scripts se pueden ajustar para adaptarse a las necesidades específicas de una base de datos de producción.
- Los scripts SQL se pueden usar junto con una tecnología de implementación e incluso se pueden generar como parte del proceso de CI.
- Los scripts SQL se pueden proporcionar a un DBA y se pueden administrar y archivar por separado.
Cuando use esta opción, se le pedirá la clase de contexto de base de datos y la ubicación del archivo de script.
Abrir en el Explorador de objetos de SQL Server
Para mayor comodidad, este comando le permite saltar al Explorador de objetos de SQL Server, para que pueda ver tablas y otras entidades de base de datos y trabajar directamente con los datos. Consulte Explorador de objetos.
Pasos siguientes
Puede continuar con los inicios rápidos de Azure SQL Database, pero en lugar de empezar desde el principio, puede empezar después de configurar la conexión inicial. Si usa Entity Framework, puede empezar en Agregar el código para conectarse a Azure SQL Database. Si usa SqlClient
o clases de datos ADO.NET, puede empezar en . Agregar el código para conectarse a Azure SQL Database.
El código no coincidirá exactamente con lo que se usa en los inicios rápidos, que usan una manera diferente de obtener la cadena de conexión. Las cadenas de conexión son secretas y se almacenan de forma segura, como se explica en almacenamiento seguro de los secretos de la aplicación en desarrollo en ASP.NET Core. En concreto, para leer la cadena de conexión del almacén de secretos, puede agregar código como se indica en Lectura del secreto mediante la API de configuración.
En los proyectos de ASP.NET Core, la cadena de conexión o configuración de conexión creada por Connected Services está disponible en un objeto de configuración. Puede acceder a ella mediante una propiedad en la clase WebApplicationBuilder
(builder
en muchas plantillas de proyecto), como en el ejemplo siguiente:
var connection = builder.Configuration["ConnectionStrings:DatabaseConnection"];
La cadena que se va a proporcionar a la propiedad Configuration debe coincidir con la clave de secrets.json o en Azure Key Vault, que proporcionó durante el procedimiento de Servicios conectados. Por ejemplo, con Visual Studio 2022 17.12 y versiones posteriores, la configuración de conexión se almacena en secrets.json como:
{
"ConnectionStrings:DatabaseConnection": "Server=tcp:webapplication16dbserver.database.windows.net;Authentication=Active Directory Default;Database=WebApplication16_db;",
}
En proyectos de ASP.NET Core, la configuración de conexión o la cadena de conexión creada por Connected Services está disponible en un objeto de configuración. Puede acceder a ella mediante una propiedad en la clase WebApplicationBuilder
(builder
en muchas plantillas de proyecto), como en el ejemplo siguiente:
var connection = builder.Configuration["ConnectionStrings:ConnectionString1"];