Triggers Insert vers une autre BASE
Modérateurs: Super-Apogea, Super Modérateur
5 messages
|Page 1 sur 1
Triggers Insert vers une autre BASE
Bonjour,
Je cherche comment faire un triggers sur la table F_DOCLIGNE (par exemple) afin d'écrire dans une table d'une autre base.
Par exemple, j'ai la base : BIJOU (Sage), et la base BASE_ECHANGE (que j'ai créer moi même)
Base : BIJOU - Table : F_DOCLIGNE
Base : BASE_ECHANGE - Table : T_ECHANGES
Mon triggers sur la table F_DOCLIGNE :
Lors de l'ajout d'une ligne dans SAGE sur un document, j'ai l'erreur suivante :
Autorisation INSERT Refusée sur l'objet T_ECHANGES, Base de données BASE_ECHANGE, propriétaire dbo.
Si je créer la même table T_ECHANGES direcement dans la base BIJOU mon triggers fonctionne.
J'ai également tester de créer une table TEST dans ma base BIJOU avec le même trigger vers ma base BASE_ECHANGES et lorsque je créer une ligne dans TEST, cela me créer bien la ligne dans ma table de la BASE_ECHANGE.
Autre test, si j'exécute directement ma requête, dans l'analyseur de requête cela fonctionne.
Mise à jour dans le document SAGE (logique) + Insertion dans ma table de mon autre BASE.
Donc, le problème viens bien de SAGE Gestion commerciale !!! Quelque chose bloque l'insertion dans une autre table.
Quelqu'un peut-il m'aider ?
Merci d'avance
Je cherche comment faire un triggers sur la table F_DOCLIGNE (par exemple) afin d'écrire dans une table d'une autre base.
Par exemple, j'ai la base : BIJOU (Sage), et la base BASE_ECHANGE (que j'ai créer moi même)
Base : BIJOU - Table : F_DOCLIGNE
Base : BASE_ECHANGE - Table : T_ECHANGES
Mon triggers sur la table F_DOCLIGNE :
- Code: Tout sélectionner
-- TRIGGER MODIFICATION sur LIGNE
CREATE TRIGGER TG_TEST ON [dbo].[F_DOCLIGNE]
FOR UPDATE
AS
INSERT INTO [BASE_ECHANGE].dbo.T_ECHANGES (NOM, ORIGINE, DATE_CREATION) VALUES ('COMMANDE', 'SAGE', GetDate() )
Lors de l'ajout d'une ligne dans SAGE sur un document, j'ai l'erreur suivante :
Autorisation INSERT Refusée sur l'objet T_ECHANGES, Base de données BASE_ECHANGE, propriétaire dbo.
Si je créer la même table T_ECHANGES direcement dans la base BIJOU mon triggers fonctionne.
J'ai également tester de créer une table TEST dans ma base BIJOU avec le même trigger vers ma base BASE_ECHANGES et lorsque je créer une ligne dans TEST, cela me créer bien la ligne dans ma table de la BASE_ECHANGE.
Autre test, si j'exécute directement ma requête, dans l'analyseur de requête cela fonctionne.
- Code: Tout sélectionner
UPDATE F_DOCLIGNE SET DL_Qte = 2 WHERE DO_Piece = '5' AND DL_Ligne = 10000 AND DO_Domaine = 0
Mise à jour dans le document SAGE (logique) + Insertion dans ma table de mon autre BASE.
Donc, le problème viens bien de SAGE Gestion commerciale !!! Quelque chose bloque l'insertion dans une autre table.
Quelqu'un peut-il m'aider ?
Merci d'avance
- Posteur actif
- Messages: 35
- Inscription: Jeu 26 Juin 2008 17:16
- Localisation: RODEZ
Re: Triggers Insert vers une autre BASE
Je crois que les triggers interbases utilisent le login Guest. (en théorie et si je ne dis pas de bêtise)
Il faut donc que ce login ait les droits nécessaires sur l'autre base.
Se pose alors le problème de la sécurité au niveau de SQL Server...
Tenez nous informé de vos tests s'ils sont concluants.
Il faut donc que ce login ait les droits nécessaires sur l'autre base.
Se pose alors le problème de la sécurité au niveau de SQL Server...
Tenez nous informé de vos tests s'ils sont concluants.
- Super Contributeur
- Messages: 129
- Inscription: Jeu 12 Juil 2007 10:39
Re: Triggers Insert vers une autre BASE
Bonjour,
j'ai le même problème. J'ai deux bases en i7 7.10, ayant la même structure. Lorsqu'un article est crée dans la base1, la mise à jour d'une info libre à 'OUI' doit déclencher la création de cet article dans la base2. J'ai fait un trigger dans F_ARTICLE de la base1 mais lorsque dans la gescom sur un nouvel article je met l'info libre à 'OUI' j'ai le message suivant :
L'entité de sécurité de serveur "DOMAINE\Administrateur" ne peut accéder à la base de données "base2" dans le contexte de sécurité actuel.
Si je fais le même trigger dans une table crée _F_ARTICLE_TEMP cela fonctionne sauf que j'ai deux lignes identiques.
Avez-vous une idée ?
PS : Je ne maîtrise pas les objets métiers.
j'ai le même problème. J'ai deux bases en i7 7.10, ayant la même structure. Lorsqu'un article est crée dans la base1, la mise à jour d'une info libre à 'OUI' doit déclencher la création de cet article dans la base2. J'ai fait un trigger dans F_ARTICLE de la base1 mais lorsque dans la gescom sur un nouvel article je met l'info libre à 'OUI' j'ai le message suivant :
L'entité de sécurité de serveur "DOMAINE\Administrateur" ne peut accéder à la base de données "base2" dans le contexte de sécurité actuel.
Si je fais le même trigger dans une table crée _F_ARTICLE_TEMP cela fonctionne sauf que j'ai deux lignes identiques.
Avez-vous une idée ?
PS : Je ne maîtrise pas les objets métiers.
- Posteur habitué
- Messages: 32
- Inscription: Mar 29 Sep 2009 16:01
Re: Triggers Insert vers une autre BASE
Bonjour,
Il faut utiliser WITH EXECUTE AS pour définir le contexte dans le quel le trigger va s’exécuter.
Guillaume
Il faut utiliser WITH EXECUTE AS pour définir le contexte dans le quel le trigger va s’exécuter.
Guillaume
- Posteur néophyte
- Messages: 4
- Inscription: Mer 17 Mar 2010 10:25
Re: Triggers Insert vers une autre BASE
Le_Maraudeur a écrit:Je crois que les triggers interbases utilisent le login Guest. (en théorie et si je ne dis pas de bêtise)
Il faut donc que ce login ait les droits nécessaires sur l'autre base.
Se pose alors le problème de la sécurité au niveau de SQL Server...
Tenez nous informé de vos tests s'ils sont concluants.
Evidement, Il fallait créer un compte utilisateur "guest" dans les deux bases
5 messages
|Page 1 sur 1
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité