2015-10-23 1 views
-1

Je vais créer un script pour exécuter de nombreux fichiers SQL. J'ai choisi d'utiliser SQLCMD au lieu de ADODB car il fournit des informations de journalisation rapidement et nous exécutons T-SQL. Je suis en train de tester SQLCMD.exe avant de le mettre dans le script.Comment utiliser SQLCMD avec l'authentification Windows (-E,) mais sans autorisations élevées

Connexion à la base de données à l'aide de SQLCMD.exe, j'utilise -E pour l'authentification Windows. Cela signifie que je dois utiliser mon compte réseau, qui n'a pas d'accès élevé sur une machine donnée. Cependant, Sqlcmd.exe nécessite un accès élevé afin d'exécuter une requête, sinon je reçois l'erreur suivante:

Sqlcmd: Error: Error occurred while opening or operating on file (Reason: Access is denied).

Après avoir exécuté la commande suivante:

 
sqlcmd.exe -S <SQLSERVER,PORT> -d <DATABASE> -i scriptfile.sql -o scriptfile.log -E 

Comment puis-je utiliser avec Sqlcmd.exe autorisations locales élevées (Administrateur) mais utilisez l'authentification Windows pour vous connecter au serveur (à l'aide d'un compte non administrateur)? Je préférerais ne pas modifier les autorisations de SQLCMD.exe, car il peut y avoir plusieurs personnes qui utilisent ce script que je ne tiens pas à les informer de cette instruction préalable.

+0

Quelle était la commande complète que vous avez essayée? –

+1

Je pense que l'erreur que vous voyez est liée à un fichier script ou un fichier journal que vous référencez. Pas si vous utilisez ou non Windows auth. Pouvez-vous poster la commande complète pour nous donner une meilleure idée de ce qui se passe? – CDC

+0

Sure voici la commande complète sqlcmd.exe -S -d -i scriptfile.sql -o scriptfile.log -E –

Répondre

1

De quel chemin utilisez-vous la commande lorsque vous la testez? Est-ce que le non-administrateur qui exécute la commande a accès à scriptfile.sql et a accès à scriptfile.log? La plupart des commandes sont généralement définies par défaut sur le répertoire de travail actuel.

+0

Ce n'était pas que je n'avais pas accès à SQLCMD. Comme indiqué ci-dessus Bacon Bits, j'essayais d'exécuter un script auquel l'utilisateur non administrateur n'avait pas accès. –