Cette page vous a-t-elle été utile ?
Votre avis sur ce contenu est important. N'hésitez pas à nous faire part de vos commentaires.
Vous avez d'autres commentaires ?
1500 caractères restants
Exporter (0) Imprimer
Développer tout

Instructions de sécurité et limitations de la Base de données SQL Azure

Mis à jour: avril 2015

Cette rubrique décrit les recommandations et limitations base de données SQL Microsoft Azure relatives à la sécurité. Lors de la gestion de la sécurité de vos base de données SQL Azure, il convient de prendre en considération les éléments suivants :

Le service base de données SQL Azure est disponible uniquement via le port TCP 1433. Pour accéder à une base de données base de données SQL à partir de votre ordinateur, vérifiez que votre pare-feu autorise les communications TCP sortantes sur le port TCP 1433.

Avant de pouvoir vous connecter au serveur base de données SQL Azure pour la première fois, vous devez utiliser le Portail de gestion de la plateforme Microsoft Azure pour configurer le pare-feu base de données SQL Azure. Vous devrez créer un paramètre de pare-feu de niveau serveur qui autorise les tentatives de connexion à partir de votre ordinateur ou d'Azure vers le serveur base de données SQL Azure. De plus, si vous souhaitez contrôler l'accès à certaines bases de données de votre serveur base de données SQL Azure, vous devez créer des règles de pare-feu de niveau base de données pour les bases de données correspondantes. Pour plus d'informations, consultez Pare-feu de Base de données SQL Azure.

Toutes les communications entre base de données SQL et votre application nécessitent un chiffrement (SSL) en permanence. Si votre application cliente ne valide pas de certificats lors de la connexion, votre connexion à base de données SQL est vulnérable aux « attaques de l'intercepteur ».

Pour valider des certificats avec du code d'application ou des outils, demandez une connexion chiffrée de manière explicite et n'approuvez pas les certificats de serveur. Si votre code d'application ou vos outils ne demandent pas de connexion chiffrée, ils recevront quand même des connexions chiffrées. Toutefois, ils ne valideront peut-être pas les certificats de serveur et seront donc vulnérables aux « attaques de l'intercepteur ».

Pour valider des certificats avec du code d'application ADO.NET, définissez Encrypt=True et TrustServerCertificate=False dans la chaîne de connexion de la base de données. Pour plus d'informations, consultez Procédure : Connexion à la base de données SQL Azure à l'aide d'ADO.NET.

SQL Server Management Studio prend également en charge la validation de certificat. Dans la boîte de dialogue Se connecter au serveur, cliquez sur Chiffrer la connexion sous l'onglet Propriétés de connexion.

noteRemarque
SQL Server Management Studio ne prend pas en charge base de données SQL dans les versions antérieures à SQL Server 2008 R2.

Bien que SQLCMD prenne en charge base de données SQL à compter de SQL Server 2008, il ne prend pas en charge la validation de certificat dans les versions antérieures à SQL Server 2008 R2. Pour valider des certificats avec SQLCMD à compter de SQL Server 2008 R2, utilisez l'option de ligne de commande -N et n'utilisez pas l'option -C. L'option -N fait en sorte que SQLCMD demande une connexion chiffrée. Si vous n'utilisez pas l'option -C, SQLCMD n'approuve pas implicitement le certificat de serveur et il est contraint de le valider.

Pour plus d'informations techniques, consultez l'article intitulé Azure SQL Database Connection Security (Sécurité de la connexion Base de données SQL) sur le site Wiki TechNet.

base de données SQL prend uniquement en charge l'authentification SQL Server. L'authentification Windows (sécurité intégrée) n'est pas prise en charge. Les utilisateurs doivent fournir des informations d'identification (connexion et mot de passe) chaque fois qu'ils se connectent à base de données SQL. Pour plus d'informations sur l'authentification SQL Server, consultez Choix d'un mode d'authentification dans la Documentation en ligne de SQL Server.

Base de données SQL V12(Version préliminaire dans certains régions) permet aux utilisateurs de s'authentifier auprès de la base de données à l'aide d'utilisateurs de bases de données à relation contenant-contenu. Pour plus d'informations, consultez Utilisateurs de bases de données à relation contenant-contenu - Rendre votre base de données portable, CREATE USER (Transact-SQL) et Bases de données à relation contenant-contenu. Microsoft recommande l'utilisation d'utilisateurs de base de données à relation contenant-contenu pour améliorer l'évolutivité.

Pour des raisons de performance, lorsqu'un mot de passe est réinitialisé dans base de données SQL, la connexion n'est pas réauthentifiée, même si elle est réinitialisée suite à un regroupement de connexions. Ce comportement est différent de celui de SQL Server sur site. Si le mot de passe a été modifié, la demande échoue et la session est interrompue. Pour authentifier au moyen d'un nouveau mot de passe, utilisez la commande KILL pour arrêter la session et reconnectez-vous. Pour plus d'informations, consultez KILL (Transact-SQL).

Certaines restrictions sont applicables lors de la gestion des connexions et des utilisateurs dans base de données SQL.

  • Pour la connexion du principal au niveau du serveur, les restrictions suivantes s'appliquent :

    • L'utilisateur de base de données dans la base de données master qui correspond à la connexion du principal au niveau du serveur ne peut pas être modifié ou supprimé.

    • Bien que la connexion du principal au niveau du serveur ne soit pas membre des deux rôles de base de données dbmanager et loginmanager dans la base de données master, elle dispose de toutes les autorisations accordées à ces deux rôles.

noteRemarque
Cette connexion est créée pendant le déploiement du serveur et elle est semblable à la connexion sa dans une instance de SQL Server.

Pour toutes les connexions, les restrictions suivantes s'appliquent :

  • La langue par défaut est l'anglais US.

  • Pour accéder à la base de données master, chaque connexion doit être mappée à un compte d'utilisateur dans la base de données master. La base de données master ne prend pas en charge les utilisateurs de base de données à relation contenant-contenu.

  • Si vous ne spécifiez pas de base de données dans la chaîne de connexion, vous serez connecté à la base de données master par défaut.

  • Vous devez être connecté à la base de données master lors de l'exécution des instructions CREATE/ALTER/DROP LOGIN et CREATE/ALTER/DROP DATABASE.

  • Lors de l'exécution des instructions CREATE/ALTER/DROP LOGIN et CREATE/ALTER/DROP DATABASE dans une application ADO.NET, l'utilisation de commandes paramétrables n'est pas autorisée. Pour plus d'informations, consultez Commandes et paramètres (ADO.NET).

  • Lors de l'exécution des instructions CREATE/ALTER/DROP DATABASE et CREATE/ALTER/DROP LOGIN, chacune de ces instructions doit être la seule instruction dans un lot Transact-SQL. Sinon, une erreur se produit. Par exemple, le code Transact-SQL suivant vérifie si la base de données existe. S'il existe, une instruction DROP DATABASE est appelée pour supprimer la base de données. L'instruction DROP DATABASE étant pas la seule instruction du lot, l'exécution de ce code Transact-SQL provoque une erreur.

IF EXISTS (SELECT [name]
           FROM   [sys].[databases]
           WHERE  [name] = N'database_name')
     DROP DATABASE [database_name];
GO
  • Lors de l'exécution de l'instruction CREATE USER avec l'option FOR/FROM LOGIN, il doit s'agir de la seule instruction dans un lot Transact-SQL.

  • Lors de l'exécution de l'instruction ALTER USER avec l'option WITH LOGIN, il doit s'agir de la seule instruction dans un lot Transact-SQL.

  • Seuls la connexion du principal au niveau du serveur et les membres du rôle de base de données dbmanager dans la base de données master sont autorisés à exécuter les instructions CREATE DATABASE et DROP DATABASE.

  • Seuls la connexion du principal au niveau du serveur et les membres du rôle de base de données loginmanager dans la base de données master sont autorisés à exécuter les instructions CREATE LOGIN, ALTER LOGIN et DROP LOGIN.

  • Pour CREATE/ALTER/DROP un utilisateur a besoin de l'autorisation ALTER ANY USER sur la base de données.

  • Lorsque le propriétaire d'un rôle de base de données tente d'ajouter ou de supprimer un autre utilisateur de base de données dans ce rôle de base de données, l'erreur suivante peut se produire : User or role 'Name' does not exist in this database. Cette erreur se produit car l'utilisateur n'est pas visible pour le propriétaire. Pour résoudre ce problème, accordez au propriétaire du rôle l'autorisation VIEW DEFINITION sur l'utilisateur.

Pour plus d'informations sur les connexions et les utilisateurs, consultez Gestion des bases de données et des connexions dans Base de données SQL Microsoft Azure.

Respectez les consignes suivantes afin de rendre vos applications base de données SQL Azure moins vulnérables aux atteintes à la sécurité :

  • Utilisez toujours les dernières mises à jour : Lorsque vous vous connectez à votre base de données SQL, utilisez toujours la version la plus récente des outils et bibliothèques afin d'éliminer toute faille de sécurité. Pour plus d'informations sur les outils et bibliothèques pris en charge, consultez Instructions et limitations générales de la Base de données SQL Azure.

  • Bloquez les connexions entrantes sur le port TCP 1433 : seules des connexions sortantes sur le port TCP 1433 sont nécessaires pour que les applications communiquent avec base de données SQL. Si les communications entrantes ne sont nécessaires à aucune autre application sur cet ordinateur, vérifiez que votre pare-feu continue à bloquer les connexions entrantes sur le port TCP 1433.

  • Évitez les vulnérabilités d'injection : pour vous assurer que vos applications ne sont pas vulnérables aux injections SQL, utilisez autant que possible des requêtes paramétrables. Assurez-vous également d'examiner soigneusement le code et d'exécuter un test d'intrusion avant de déployer votre application.

Voir aussi

Afficher:
© 2015 Microsoft