SQLio deployen in Microsoft Azure
Deze handleiding beschrijft de installatie van SQLio in Microsoft Azure. SQLio draait als Azure App Service met een Azure SQL Database voor de configuratie. Afhankelijk van waar uw target databases staan, zijn er verschillende connectiviteitsopties.
| Scenario | Target Databases | Connectiviteit |
|---|---|---|
| A: Hybrid | On-premise | Azure Hybrid Connections |
| B: Full Cloud | Azure | Directe verbinding (VNet of public endpoint) |
| C: Gemengd | On-premise + Azure | Combinatie van beide |
| Component | Vereiste |
|---|---|
| Azure Subscription | Actief Azure abonnement |
| Azure rechten | Contributor of Owner op Resource Group |
| App Service Plan | Basic (B1) of hoger |
| Azure SQL Database | Basic of hoger (voor SQLioDB) |
portal.azure.com| Veld | Waarde |
|---|---|
| Subscription | Uw Azure subscription |
| Resource group | rg-sqlio-prod |
| Region | West Europe (of dichtstbijzijnde) |
| Veld | Waarde |
|---|---|
| Server name | sql-sqlio-prod (moet uniek zijn) |
| Location | Zelfde als Resource Group |
| Authentication method | Use SQL authentication |
| Server admin login | sqlioadmin |
| Password | Sterk wachtwoord (noteer dit!) |
| Veld | Waarde |
|---|---|
| Database name | SQLioDB |
| Want to use SQL elastic pool? | No |
| Workload environment | Production |
| Compute + storage | Basic of Standard (S0) voor start |
| Backup storage redundancy | Locally-redundant (of Geo voor productie) |
Verbind met de database via SQL Server Management Studio of Azure Data Studio:
| Veld | Waarde |
|---|---|
| Server | sql-sqlio-prod.database.windows.net |
| Authentication | SQL Server Authentication |
| Login | sqlioadmin |
| Password | Uw wachtwoord |
| Database | SQLioDB |
In Azure SQL Database maakt u de database in de portal aan (hierboven) en kunt u niet met USE van database wisselen. De scripts 01 en 02a/02b voor een eigen server gebruikt u hier daarom niet. Voer in plaats daarvan, verbonden met de database SQLioDB, dit script uit. Het maakt de rol SQLioRole en een gebruiker met eigen wachtwoord in de database (een contained user):
-- SQLio v2 - Azure SQL Database: rol en gebruiker
-- Uitvoeren verbonden met de database SQLioDB (niet met master)
DECLARE @Gebruiker sysname = N'svc_sqlio';
DECLARE @Wachtwoord nvarchar(128) = N'<<wachtwoord>>';
IF @Wachtwoord LIKE N'<<%'
THROW 50001, 'Vul bovenin eerst @Wachtwoord in.', 1;
IF DATABASE_PRINCIPAL_ID(N'SQLioRole') IS NULL
CREATE ROLE [SQLioRole];
GRANT SELECT, INSERT, UPDATE, DELETE ON SCHEMA::dbo TO [SQLioRole];
GRANT EXECUTE ON SCHEMA::dbo TO [SQLioRole];
GRANT VIEW DEFINITION ON SCHEMA::dbo TO [SQLioRole];
DECLARE @Sql nvarchar(max);
IF DATABASE_PRINCIPAL_ID(@Gebruiker) IS NULL
BEGIN
SET @Sql = N'CREATE USER ' + QUOTENAME(@Gebruiker) + N' WITH PASSWORD = ' + QUOTENAME(@Wachtwoord, '''') + N';';
EXEC sys.sp_executesql @Sql;
END
IF ISNULL(IS_ROLEMEMBER(N'SQLioRole', @Gebruiker), 0) = 0
BEGIN
SET @Sql = N'ALTER ROLE [SQLioRole] ADD MEMBER ' + QUOTENAME(@Gebruiker) + N';';
EXEC sys.sp_executesql @Sql;
END
PRINT 'Klaar.';
Voer daarna, ook verbonden met SQLioDB, het schemascript 03_SQLioDB_Schema.sql uit het installatiepakket uit. Het maakt alle tabellen, relaties en procedures aan.
| Veld | Waarde |
|---|---|
| Subscription | Uw subscription |
| Resource Group | rg-sqlio-prod |
| Name | app-sqlio-prod (moet uniek zijn) |
| Publish | Code |
| Runtime stack | .NET 9 (LTS) |
| Operating System | Windows |
| Region | Zelfde als Resource Group |
| Veld | Waarde |
|---|---|
| Windows Plan | Create new: asp-sqlio-prod |
| Pricing plan | Basic B1 (of Standard S1 voor productie) |
app-sqlio-prod App Servicedotnet publish -c Release -o ./publish az webapp deploy --resource-group rg-sqlio-prod --name app-sqlio-prod --src-path ./publish --type zip
| Veld | Waarde |
|---|---|
| Name | ConfigConnection |
| Value | (zie hieronder) |
| Type | SQLAzure |
Connection string waarde:
Server=tcp:sql-sqlio-prod.database.windows.net,1433;Database=SQLioDB;User ID=svc_sqlio;Password=UW_WACHTWOORD;Encrypt=True;TrustServerCertificate=False;Application Name=SQLio;
appsettingsBHS.json mee in de deployment: SQLio maakt dat bestand zelf aan.
Als uw target databases on-premise staan, gebruikt u Azure Hybrid Connections om een veilige verbinding te maken zonder VPN of publieke endpoints.
Hybrid Connection Manager draait als Windows Service op een server in uw netwerk. Deze maakt een uitgaande HTTPS verbinding naar Azure en routeert verkeer van de App Service naar uw on-premise SQL Server.
| Veld | Waarde |
|---|---|
| Hybrid connection name | hc-sqlserver-prod |
| Endpoint Host | Hostname van uw SQL Server (bijv. SQLSRV01) |
| Endpoint Port | 1433 |
| Service Bus namespace | Create new: sb-sqlio-prod |
In SQLio, configureer de target database met de hostnaam (niet het IP-adres):
Server=SQLSRV01;Database=UwDatabase;User ID=sqlio_user;Password=xxx;TrustServerCertificate=True;Application Name=SQLio;
Als uw target databases ook in Azure staan, kunt u een directe verbinding maken zonder Hybrid Connections.
Configureer de firewall van de target Azure SQL Server:
Connection string:
Server=tcp:uw-sqlserver.database.windows.net,1433;Database=UwDatabase;User ID=sqlio_user;Password=xxx;Encrypt=True;TrustServerCertificate=False;Application Name=SQLio;
Als uw target database op een SQL Server VM draait:
Voor Managed Instance is VNet integratie vereist:
U kunt beide scenario's combineren. SQLio ondersteunt meerdere target databases met verschillende verbindingsmethodes.
Configureer:
In SQLio kunt u per omgeving (Test, Acceptatie, Productie) verschillende target databases configureren, ongeacht waar deze staan.
SQLio gebruikt WebSockets voor real-time updates: