Exécuté un SSIS comme seul étape d'un travail (job)

RvSpeed Messages postés 8 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 18 mai 2009 - 13 mai 2009 à 14:57
gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 - 15 mai 2009 à 22:00
Bonjour,

Tout d'abord sachez que je travaille sous SQL server 2005 Standard édition et que mon but est d'avoir un Package SSIS qui importe automatiquement un CSV dans une table de ma DB en créant un backup (rien de trop balèze).

Maintenant je vais vous exposé mon problème par étape :

- J'ai crée une procédure SSIS avec visual studio, qui fonctionne parfaitement. Crée un backup, importe la csv, peuple la table et suprime la csv.
- Je l'ai importée dans la Intégration Service dans la partie MSDB (sous SQL server Management Studio). Si j'exécute de là ça marche toujours.
- Ensuite j'ai crée un travail (job) sous SQL Server Agent qui a pour seule étape (step) l'exécution du package SSIS. Et la c'est le drame...

Tout d'abord j'ai sué avec les droits mais j'ai trouvé et je n'ai plus ce problème.

Maintenant il exécuté en effet le travail et il m'indique que les étapes sont exécutée avec succès mais quand je fait un SELECT sur la table, les données n'y sont pas. Comme je suis en phase test la table est carrément vide.
J'ai crée un autre travail qui fait une simple requête et tout fonctionne parfaitement.
En claire c'est juste le travail qui doit exécuté le package SSIS qui ne fonctionne pas et donc inutile de plannifier un travail qui ne fait rien...

Si quelqu'un a une idée je lui en serait gré car la je commence à saturer avec ce problème.
Même une solution alternative ou complètement différente (genre en développement) je prend!!!!

En vous remerciant à l'avance,

Hervé.
A voir également:

6 réponses

gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
13 mai 2009 à 16:03
j'ai pas la solution mais simplement des pistes:
chaque service ssis, sql agent demarre avec leur propre compte de service, qui peuvent etre different. c'est pourquoi lorsque tu fais bouton droit executer ca marche et ca ne marche plus un fois plannifier.
Est ce que le compte de service de sql agent à bien des droits en lecture sur ta table,  essais de lui mettre temporairement des droit sysadmin et vois le resultat.
Bref je suis convaincu que tu est dans un pb de compte droit autorisation etc...
Bonne chance
greg
0
RvSpeed Messages postés 8 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 18 mai 2009
13 mai 2009 à 16:17
J'ai résolut le problème de compte, la preuve étant que je peux créer d'autre travaux plus basique, comme des petites requêtes, des truc du genre et ça marche parfaitement.

Il n'y a que le travail avec le SSIS qui pause problème. Quand je lance le travail, il s'exécute sans erreur mais ne fait ce pour quoi le SSIS à été programmé. Je ne me suis pas prit la tête pour les droits du SSIS j'ai mit :
- logging mode : disable
- ProtectionLevel : DontSaveSensitive

C'est pour ça que je cherche une autre méthode pour lancer un SSIS qui soit automatisable.

Si quelqu'un a une lumière...

Hervé.
0
RvSpeed Messages postés 8 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 18 mai 2009
14 mai 2009 à 09:25
J'ai trouvé une commande à taper dans l'invite : dtexec /DTS "\MSDB\Import"

Elle fonctionne, donc j'ai trouvé le pendant SQL : EXEC xp_cmdshell 'dtexec /DTS "\MSDB\Import"'

Et encore une fois la ça ne fonctionne pas... il me dit :
Description: An error occurred with the following error message: "Could not find a part of the path 'Y:\test.csv'.".

J'aimerais comprendre pourquoi la commande dos passe comme une fleur et pourquoi la même commande en SQL me fait une erreur qui n'a pas lieux d'être.

Bien à vous,

Hervé
0
gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
14 mai 2009 à 15:50
salut,
La commande DOS s'execute sous ton profil, et j'imagine que tu es admin du domaine dont tu as acces à 'y:\test.csv'...
Quant elle se fait en sql elle prend les droits du service sql et qui certainement ne doit pas avoir acces au fichier.

comment voir ca :

Quant tu regarde les proprité de tes services SQL, dans l'onglet Connexion tu peux mettre service local ou bien un compte, fait des test en mettant ton compte (des tests car ce n'est pas recommandé de laisser ton compte partout il est preferable d'en creer un specifique du style SRV_SQL_TONSERVEUR). fait ca sur tout tes services sql (sql agent sqlserver et sql server integration services) et  redemarre les services et regarde le resultat.

bonne chance.

greg
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RvSpeed Messages postés 8 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 18 mai 2009
15 mai 2009 à 10:39
Merci pour ta réponse greg,

J'ai crée un user SQLService et je l'ai assigné a tout les services (SQL Agent, SSIS, ...), j'ai demander à un collègue de vérifier que les droits ont bien été assignés et apparemment tout est OK. On a ensuite redémarré les services mais le problème continue à se poser.

Je ne suis pas un utilisateur avancé de SSMS, il y a-t-il des droits à changer au niveau même de ma DB ou de mon Serveur SQL?
Si oui, sais-tu m'expliqué comment ou connais-tu un didacticiel?

Merci et à bientôt,

Hervé.
0
gperuch Messages postés 40 Date d'inscription dimanche 18 janvier 2009 Statut Membre Dernière intervention 2 février 2012 1
15 mai 2009 à 22:00
il te manque peut etre une etape:
va sur le poste de travail, bouton droit ->gerer
ouvre le treeview et va dans utilisateur et groupes locaux
va dans group et tu ajoutes dans chaque groupe du type sql....... l'utilisateur que tu as crée soit "sqlservices"
je suis plus sure mais je pense que tu doit l'ajouter aussi en temps que user avec les droit administrateur de ton poste

essais donc ca et tient moi au courant

greg
0
Rejoignez-nous