Bonjour,
Il y a 2 jours lors d'une livraison, j'étais confronté à un problème de JOB qui renvoit l'erreur
Executed as user : NT AUTHORITY\SYSTEM. Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.[SQLSTATE 28000][Error 18456]. The step failed.
.
OS = W2K8 et SERVER SQL = 2005 SP3
Le contenu du JOB :Une partie du code de maProcStock :
1 2 3 4 5 6 7 8 9 10 11 12
|
CREATE PROCEDURE maProcStock
AS
DECLARE
@colFICHE INT
-- Sur le serveur Srv1 Recuperer la valeur de la colonne Srv1.maBase1.T_LIST_TABLE.colFICHE de la table T_LIST_TABLE (contient une SEULE ligne).
SET @colFICHE = (SELECT CAST(colFICHE AS INT) FROM OPENDATASOURCE('SQLNCLI','Data Source=Srv1;Integrated Security=SSPI') .maBase1.dbo.T_LIST_TABLE)
-- Sur le serveur Srv2 Positionner la valeur courante du champ IDENTITY de la table Srv2.maBase2.FICHE sur @colFICHE
USE maBase2
DBCC CHECKIDENT ("FICHE", RESEED, @colFICHE); |
1 ) La procédure stockée marche nickel
2 ) La requête ci-dessous marche nickel :
SELECT CAST(colFICHE AS INT) FROM OPENDATASOURCE('SQLNCLI','Data Source=Srv1;Integrated Security=SSPI') .maBase1.dbo.T_LIST_TABLE
3 ) Mais quand je crée un JOB T-SQL qui contient tout simplement le code j'ai l'erreur
Executed as user : NT AUTHORITY\SYSTEM. Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.[SQLSTATE 28000][Error 18456]. The step failed.
.
4 ) Et la solution de contournement que j'ai utilisé c'était de créer un fichier .cmd qui appelle la requête en utilisant Sqlcmd et ça marche nickel !
Mais j'arrive pas à m'expliquer pourquoi le JOB tombe en erreur alors que la requête SQL qu'il contient marche bien !
J'ai besoin de votre éclairage 
PS :
- J'utilise l'authentification Windows /Administrator pour ce connecter au server SQL
- Et j'ai tous les droits sur les 2 serveurs
Merci d'avance
A+
Etienne ZINZINDOHOUE
Partager