MS SQL Server sur un VPS
Comment installer MS SQL Server Express sur un VPS Windows, limiter sa mémoire, ouvrir l'accès de manière sécurisée, et configurer les sauvegardes.
Mis à jour le 23 août 2026
MS SQL Server s'installe sur un VPS avec Windows Server comme une application classique. L'édition Express gratuite suffit pour beaucoup d'usages : les limites sont de 10 Go par base de données, 1410 Mo de mémoire pour le moteur et jusqu'à quatre cœurs.
Exigences de palier
Windows Server à lui seul occupe environ 2 Go de mémoire. Ajoutez à cela le moteur de base de données et votre application : VDS-1 et VDS-2 sont trop justes pour un ensemble Windows + MS SQL, le minimum viable est VDS-3 (4 cœurs / 8 Go / 120 Go), et pour une base de données sollicitée, prenez VDS-4 et au-delà. Le disque NVMe avec un plafond d'écriture de 240 Mo/s sur VDS-3 convient pour la base de données.
Installation
Téléchargez l'installateur SQL Server Express depuis le site de Microsoft et lancez une installation silencieuse :
.\SQLEXPR_x64_ENU.exe /q /ACTION=Install /FEATURES=SQLEngine /INSTANCENAME=SQLEXPRESS `
/SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /SQLSYSADMINACCOUNTS="BUILTIN\Administrators" `
/SECURITYMODE=SQL /SAPWD="LongPasswordHere" /TCPENABLED=1 /IACCEPTSQLSERVERLICENSETERMS
Installez séparément les outils en ligne de commande (sqlcmd) et SQL Server Management Studio si vous travaillez via l'interface.
Vérifiez :
Get-Service MSSQL$SQLEXPRESS
sqlcmd -S .\SQLEXPRESS -Q "select @@version"
Mémoire et cœurs
Par défaut, le moteur prend toute la mémoire disponible et le système en pâtit. Limitez-la explicitement, en laissant au moins 2 Go à Windows :
EXEC sp_configure 'show advanced options', 1; RECONFIGURE;
EXEC sp_configure 'max server memory (MB)', 4096; RECONFIGURE;
Pour VDS-3 (8 Go), une valeur raisonnable est 4096 ; pour VDS-5 (24 Go), 16384.
Accès
Vous ne devez pas ouvrir le port 1433 vers l'extérieur. Options :
- l'application tourne sur la même machine — laissez la base de données sur localhost et ne créez aucune règle de pare-feu ;
- vous avez besoin d'un accès externe — ouvrez le port uniquement à vos adresses :
New-NetFirewallRule -DisplayName "MSSQL" -Direction Inbound -Protocol TCP -LocalPort 1433 `
-RemoteAddress 203.0.113.5 -Action Allow
Il est préférable de désactiver le compte sa et de créer à la place un utilisateur nommé avec des droits uniquement sur votre base de données :
CREATE LOGIN app WITH PASSWORD = 'LongPassword';
CREATE DATABASE shop;
USE shop; CREATE USER app FOR LOGIN app;
ALTER ROLE db_owner ADD MEMBER app;
ALTER LOGIN sa DISABLE;
Sauvegardes
Nous ne proposons pas de sauvegardes automatiques de la machine, ni d'instantanés d'état dans le panneau — vous réalisez vous-même les sauvegardes de la base de données. Une tâche dans le planificateur, une fois par jour :
sqlcmd -S .\SQLEXPRESS -Q "BACKUP DATABASE shop TO DISK='C:\backup\shop.bak' WITH INIT, COMPRESSION"
La compression n'est pas disponible dans Express — supprimez COMPRESSION. Veillez à récupérer le fichier obtenu en dehors de la machine : une copie à côté de la base de données ne vous sauvera pas en cas de perte du disque.
Vérifiez la restauration au moins une fois par trimestre : une sauvegarde jamais restaurée ne compte pas comme une sauvegarde.
Erreurs courantes
- Le protocole TCP/IP n'est pas activé. Par défaut, Express n'écoute que sur les named pipes. Activez-le dans SQL Server Configuration Manager, puis redémarrez le service.
- Port dynamique pour une instance nommée. Définissez explicitement 1433, sinon la règle de pare-feu passera à côté.
- La base de données a atteint 10 Go et n'accepte plus d'écritures. C'est la limite d'Express ; au-delà, il vous faut une autre édition ou un nettoyage des données.
- Journal des transactions oublié. En mode de récupération Full, le fichier
.ldfgrossit jusqu'à saturer le disque. Sauvegardez le journal ou passez en Simple.
Surveillez l'espace libre : un disque plein arrête complètement la base de données. Pour savoir comment faire le ménage, consultez l'article Disques et partitions.