Quelle est la diffrence entre ... et p> J'exègre une procédure de base de données croisée sous ces connexions et elle Fonctionne avec l'exécution comme connexion mais pas l'exécution en tant qu'utilisateur. Il dit que le serveur principal "testutilisateur" est capable d'accéder à la base de données "xxx" dans le contexte sécurisé. P> quand i Sélectionnez system_user code> après que les deux commandes, je vois que c'est défini sur
'testutilisateur' code> p> p>
3 Réponses :
Exécuter en tant que connexion code> fournit une impersonnation à l'ensemble du serveur, car les connexions sont sur un niveau de serveur. Étant donné que les utilisateurs sont définis par base de données,
exécutant en tant qu'utilisateur code> L'impersonnation s'applique uniquement à une base de données spécifique, c'est pourquoi vous voyez l'erreur lorsque vous croisez des bases de données. P>
Login Scope est au niveau du serveur pendant que la portée de l'utilisateur est au niveau de la base de données actuel p>
L'exécuté tel que peut être ajouté aux processus, fonctions, déclencheurs, etc.
à exécuter comme: p> Dans ce cas, vous utilisez le propriétaire em> du module appelé. p> Vous pouvez également imiter auto em>, ou utilisateur em> créer ou modifier le module ou. ..
IMPERSONATE CALLER EM>, qui permettra de module de prendre les autorisations de l'utilisateur actuel, ou ...
Impersonate propriétaire em>, qui prendra la permission du propriétaire de la procédure appelée ou ...
Impersonate Définition de la permission sur des objets tels que les procédures stockées peuvent être réalisées avec P> 'user_name' code>, qui imitera un utilisateur spécifique ou ...
IMPERSONATE
'LOGIN_NAME' CODE> AVEC IMPOSONATE D'UNE Connexion spécifique. P>
select * from MyTable
go