Auteur de questions
Connecter à base de donnée SQL Server via Internet

Question
-
Bonjour les Gars,
j'ai développé une application Windows Form c# (Visual studio 2010) Multi-utilisateurs qui connecte sur une base de données SQL Server 2008 situé sur une machine dans le réseau local comme étant un serveur à l’intermédiaire de la chaîne de connexion suivante : "Data Source=Machine\SQLEXPRESS;Initial Catalog=MaBase;Integrated Security=True"
Alors seulement les utilisateurs du domaine puisse y accéder à "MaBase" via mon Application
Je veux qu'un utilisateur distant puisse connecter à "MaBase" en utilisant le service Internet, Comment je dois procéder ?
1-est ce que je peux déployer "MaBase" sur Web ?
2-est ce que je peux exporter "MaBase" sur Windows Azure ?
3-quelle est la méthode la plus approprié ?
Rq : mes connaissances à propos Windows Azure sont très limités
merci, cordialement
Toutes les réponses
-
Bonjour
Personellement, j en'exposerais pas SQL Server en direct sur INternet. Je préfèrerai passer par uen couche de WebService ou WCF développée avec c# isolée sur un server IIS sécurisé. Ce WS aura alors la possibilité de se connecter à la BD.
Ceci dit, il est possible d'avoir un accès direct depuis internet à un serveur SQL. Dans ce cas, il est plus que recommandé de modifier le port par défaut de SQL, de spécifier un mot de passe extrèmement complexe au compte SA si vous êtes en authentification mixte, de chiffrer le traffic IP avec du SSL et de durcir la configuration de Windows afin de parer bon nombre d'attaques.
Cdlt
Christophe
Christophe LAPORTE - Independent Consultant & Trainer - SQL Server MVP-MCM
-
Bonjour,
Pour apporter des précisions à la réponse Christophe LAPORTE, ce n'est absolument pas une bonne idée d'exposer un serveur SQL. Donc oui la bonne pratique est de créer une couche Web (WCF, Api REST ou autre) qui interroge le serveur de données protégé des accès extérieur.
Concernant SQL Azure vous ne pourrez pas exposer vos bases de données facilement car elles sont "protégées" derrière un firewall, dont il faut ajouter des adresses IP autorisées à la main (ou par des scripts). Donc généralement on ajoute que les IPs pour l'administration des bases.
Cordialement,
Yan Grenier
Merci de bien vouloir "Marquer comme réponse", les réponses qui ont répondues à votre question, et de noter les réponses que vous avez trouvé utiles. -
Bonjour,
La régle NUMERO 1 de SQL Server c'est de ne pas exposer la base sur Internet. :)
Imaginer les risque encourus.
En revanche pour le faire en réseaux local, il faut passer par le port SQL Server, chose que je vous conseille de changer, ouvrir ce fameux port, et vous connecter comme vous l'avez marqué, en lui rajoutant le port.
Cordialement.
-
Bonjour,
Alors effectivement, il s'agit d'une très mauvaise idée d'exposer ta base de données directement sur le net. moi je te conseillerais si tu souhaite orienter ta solution sur Azure, soit une application de type Web Application ASP.NET donc solution full web ou une solution de type Web ASP API. : https://azure.microsoft.com/en-us/documentation/articles/web-sites-dotnet-rest-service-aspnet-api-sql-database/
le plus intéressant avec ces solution tu peux profiter de toute la puissance azure directory et lui déléguant l'authentification pour ton application : http://www.asp.net/aspnet/overview/aspnet-and-visual-studio-2012/windows-azure-authentication
Biensur il te faudra mettre en place un DirSync.
Sinon si tu reste sur du local tu peux tjrs t'orienter vers une solution web.
Apres si ton Schémas de base de données n'est pas trop complexe tu peux utiliser le scaffolding pour te générer tes interfaces web à partir de tes classes fichier edmx avec du powershell :http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/
Cordialement,
-