Problém nastává, protože složka Temp uživatele, pod kterou běží služba SQL serveru, není přístupná pod přihlašovacími údaji, na kterých je dotaz spuštěn. Pokuste se nastavit zabezpečení této dočasné složky s minimálními omezeními. Dsn, které se vytvoří pokaždé, když spustíte dotaz openrowset, pak lze znovu vytvořit bez jakéhokoli konfliktu pověření. To mi fungovalo bez jakýchkoli požadavků na restart.