2010-06-28 14 views
3

Je souhaite refuser l'accès aux serveurs liés aux requêtes à un groupe d'utilisateurs. Je les ai placés dans un rôle et affecté certaines autorisations aux autorisations de niveau objet pour ce groupe. Je suis à la perte après la recherche de BOL et 'Net comment refuser l'accès aux serveurs liés.Sql Server: Comment refuser l'accès des utilisateurs aux serveurs liés

EDIT:

j'ai décidé de sortir profileur pour vérifier exactement ce que SSMS appelle lors de l'affichage des serveurs liés et veiller à ce qu'un DENY a été émis sur ce point de vue du système/SP. Il s'avère qu'il appelle sys.servers, mais Sql Server n'honore pas la liste de contrôle d'accès sur cette vue système - Cela s'applique à d'autres vues système (ex: sys.dm_db_index_physical_stats).

Répondre

5

Le référencement d'un serveur lié n'est pas contrôlé par des listes de contrôle d'accès (ACL). En d'autres termes, vous ne pouvez pas accorder l'autorisation GRANT/DENY/REVOKE à pour utiliser un serveur lié. Vous pouvez certainement contrôler l'autorisation pour modifier un serveur lié via l'autorisation ALTER ANY LINKED SERVER.

Ce manque apparent d'autorisation est dû au fait que les serveurs liés transmettent des informations d'identification spécifiques au serveur distant, contrôlées via les paramètres d'emprunt d'identité ou les paramètres remote_logins associés au serveur lié. Le contrôle d'accès réel se produit sur le serveur distant, en utilisant les informations d'identification associées au serveur lié. Par conséquent, pour refuser l'accès au serveur lié à un groupe d'utilisateurs, vous devez refuser à ce groupe l'accès au serveur distant sur le serveur distant lui-même.

+1

En fonction de votre configuration, je suppose que vous pouvez également essayer d'utiliser la fonction de mappage de connexion. Typiquement, je préférerais la sécurité intégrée et manipulerais tout avec les permissions appropriées sur les utilisateurs réels basés sur leur identité réelle. –

+0

J'espérais qu'il y avait un moyen de faire cela. Je me souviens d'avoir utilisé un outil sur Sql Server 200 qui modifierait les permissions sur les objets système pour empêcher certains utilisateurs de voir la liste des serveurs liés, mais pas la possibilité de les interroger. Dans ce cas, ils ne peuvent pas utiliser la sécurité intégrée pour tous les serveurs liés, mais pour certains, je peux modifier les paramètres. Merci pour la réponse. – Chad

0

Le type d'authentification est important. Lorsque vous liez les serveurs, ils doivent être liés à l'aide de Kerberos, puis vous pouvez contrôler l'accès sur le serveur lié. Sinon, votre groupe sera toujours authentifié sur les informations d'identification spécifiées dans le lien.

4

Voici une solution que je viens de penser:

sur la boîte de dialogue Propriétés liés Server, onglet Propriétés; ajouter des utilisateurs que vous ne voulez pour accéder au serveur lié. Ensuite, attribuez-leur une combinaison utilisateur/passe factice qui sera rejetée sur le serveur cible.

+0

Merci pour l'idée. Cela fonctionne mais serait-il considéré comme la meilleure pratique? – FumblesWithCode

0

AFACS, les serveurs liés manquent de contrôle d'accès approprié. Je voudrais faire ce qui suit:

  1. Créer une information d'identification pour la connexion au serveur distant
  2. Créer un nouveau serveur lié: a. Spécifiez un rôle de serveur ou un groupe AD ou une sécurité en tant qu'utilisateur local b. Spécifiez les informations d'identification en tant qu'utilisateur distant
  3. Ajoutez les connexions au rôle serveur ou au groupe AD pour contrôler l'accès.
Questions connexes