web-dev-qa-db-fra.com

Y a-t-il des risques à accorder aux utilisateurs l'autorisation SHOWPLAN SQL Server?

J'effectue un réglage des performances sur une grande base de données SQL Server 2008, et le groupe informatique n'est pas disposé à accorder l'autorisation SHOWPLAN. Dans le passé, "Afficher le plan d'exécution" a été le moyen le plus efficace de comprendre les performances des requêtes et des procédures individuelles.

Quels risques sont inhérents à l'octroi de cette autorisation? Existe-t-il une justification légitime à cette restriction sur une copie de développement de la base de données?

Remarque: ce groupe informatique SQL compte plus de 200 bases de données sous une seule instance SQL Server. Merci.

Réponse: Je considère que l'absence de réponse signifie qu'il n'y a pas de risques de sécurité importants, autres que celui indiqué ci-dessous. Fondamentalement, restreindre cela sur une base de données de développement est contre-productif.

Je mettrai à jour ceci si quelqu'un trouve une meilleure réponse. Merci pour vos commentaires!

23
RaoulRubin

Jetez un œil à Showplan Security dans Books Online, qui dit:

Utilisateurs disposant de SHOWPLAN, ALTER TRACE, ou VIEW SERVER STATE l'autorisation peut afficher les requêtes capturées dans la sortie Showplan. Ces requêtes peuvent contenir des informations sensibles telles que des mots de passe. Par conséquent, nous vous recommandons de n'accorder ces autorisations qu'aux utilisateurs autorisés à afficher des informations sensibles, tels que les membres du rôle de base de données fixe db_owner ou les membres du rôle serveur fixe sysadmin . Nous vous recommandons également d'enregistrer uniquement les fichiers Showplan ou les fichiers de trace contenant des événements liés à Showplan dans un emplacement qui utilise le système de fichiers NTFS et de restreindre l'accès aux utilisateurs autorisés à afficher des informations sensibles.

Par exemple, considérez la requête suivante:

SELECT COUNT(*)  FROM table_1  WHERE column_1 < 10 

Si un utilisateur malveillant produit une sortie Showplan pour un ensemble de requêtes comme cet exemple et remplace la valeur "10" dans le prédicat par des constantes différentes à chaque fois, l'utilisateur peut déduire une distribution approximative des données des valeurs de colonne pour colonne_1 dans table_1 en lisant le nombre de lignes estimé.

Ce risque semble négligeable, d'autant plus qu'il s'agit d'un serveur de développement, où toutes les requêtes seraient de les développeurs et les informaticiens, pas les utilisateurs.

19
user5094