Într-adevăr, "GRANT IMPERSONATE ON USER::gigel TO caller", ar fi o soluţie, însă nu cea mai bună. Problema e că astfel îi dai voie lui caller să facă tot ceea ce poate face gigel (de exemplu, inclusiv să trimită mesaje direct, fără să le scrie în tabelă). Mai bine ar fi să faci astfel:
ALTER TRIGGER dbo.SendInserturi
ON dbo.tbl_boy
WITH EXECUTE AS 'gigel'
AFTER INSERT
AS
BEGIN
...
END
Astfel, dacă folosim clauza EXECUTE AS în loc de instrucţiunea EXECUTE AS, dreptul de impersonare trebuie să fie deţinut de cel care creează trigger-ul, nu de cel care execută insert-ul (iar, după cum spuneam, dbo are deja dreptul să impersoneze pe oricine).
Răzvan