En fait, cela ne fonctionnera pas de la manière qui semble logique ou à laquelle on pourrait s'attendre.
Vous REVOKE VIEW ANY DATABASE
à partir du rôle public, mais l'utilisateur doit alors être le propriétaire de la base de données, sinon celle-ci ne peut pas être vue, mais on peut quand même y accéder.
Le problème est un défaut de sécurité du moteur de base de données et il est peu probable qu'il soit corrigé dans la version actuelle ou future de SQL Server.
Erland Sommarskog a ouvert l'élément de connexion suivant pour cela il y a un certain temps, et il a récemment été discuté sur twitter et avec Microsoft par la SQL MVP's
.
Votez pour la connexion et contribuez à faire de ce problème une priorité pour Microsoft :
Connecter les commentaires
Les permissions sont stockées au niveau de la base de données, il faudrait donc énumérer chaque base de données pour déterminer si l'utilisateur a les droits de connexion pour afficher la base de données dans l'explorateur d'objets, ce qui est une tâche coûteuse à réaliser et la façon dont l'ancien EM faisait les choses.
La solution proposée est que ces informations soient également gérées au niveau du serveur, ce qui constitue un changement majeur.