Question

Par défaut, si vous vous connectez à un serveur SQL distant via un compte ayant accès à l'une des 10 bases de données. Vous verrez toujours dans l’explorateur d’objets toutes les autres bases de données. De toute évidence, pour des raisons de permission, vous ne pouvez pas les interroger, mais vous pouvez voir leurs noms.

J'ai entendu dire qu'il existe une méthode pour désactiver ce comportement, mais je suis incapable de trouver la réponse. Quelqu'un sait-il comment procéder? Pour donner un exemple, j'ai un serveur SQL appelé MyDbServer, il a 4 bases de données,

  1. ma base de données
  2. YourDatabse
  3. PrivateDatabase
  4. ReallyPrivateDb

Si vous vous connectez via un compte disposant uniquement des autorisations pour " YourDatabse " vous verrez toujours une liste de toutes les autres bases de données; toute tentative d'interrogation accordera " sélectionner " permission refusée ou erreur similaire.

Pour des raisons de sécurité, nous ne souhaitons PAS que les utilisateurs voient une base de données autre que celles vers lesquelles ils sont mappés.

Était-ce utile?

La solution

Ce blog décrit des méthodes de dissimulation. DB pour SQL 2000 et SQL 2005.

Autres conseils

Après que mon client ait eu du mal à utiliser les ressources identifiées, j'ai effectué des tests et créé cette publication de blog avec un peu plus de contexte et d’instructions sur la façon de faire fonctionner cela.

En bref:

use master
go
deny VIEW any DATABASE to login1
go

où login1 est le compte de connexion que vous souhaitez limiter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top