Page 1 sur 1

SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Lun 10 Déc 2012 12:57
de OokieDookie
Bonjour à tous,

Du nouveau sur le forum, bishr nous a enfin trouvé comment récupérer le user Sage d'une session.
Ca valait bien un gros coup de pub et une publication dans la section savoir-faire !

Bonne journée

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Lun 10 Déc 2012 18:50
de bishr
Bonjour ...

Pas de souci ... Il faut publier ...
Si d'autres questions ... ne pas hésiter ...

J'ai plein de procédure sous le coude !!

Bonne journée ...

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Ven 4 Jan 2013 22:44
de asr31
Bonjour,

@BISHR : bien vu, on attend tous les autres procédures !!!!
@OokieDookie : merci pour le 'UP' sur ce message.

Cdt,

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Mer 9 Oct 2013 13:35
de rachcompte
Code: Tout sélectionner
--Table permettant de stocker les connexions
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TraceUserSession]') AND type in (N'U'))
DROP TABLE [dbo].[TraceUserSession]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TraceUserSession](
[spid] [int] NULL,
[UserSage100] [nvarchar](max) NULL,
[UserWindows] [nvarchar](max) NULL,
[TypeCnx] [nchar](10) NULL,
[CreatorCnx] [nchar](10) NULL
) ON [PRIMARY]
GO
--Trigger permettant d'alimenter la table "TraceUserSession" avec les nouvelles connexions
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[TRC_CIAL_USERSESSION]'))
DROP TRIGGER [dbo].[TRC_CIAL_USERSESSION]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[TRC_CIAL_USERSESSION]
ON [dbo].[F_PROTECTIONCIAL]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
Declare @marqueur smallint, @userSage100 varchar(max), @userWindows varchar(max)
Declare @typeCnx varchar(max), @creatorCnx varchar(max)

If (Select count(*) From TraceUserSession Where spid=@@spid)=0
Begin
Select @marqueur = cbMarq From Inserted
Select @userSage100 = PROT_USER From F_PROTECTIONCIAL Where CbMarq = @marqueur
Select @userWindows=RTrim(nt_domain) + '\' + RTrim(nt_username) From sys.sysprocesses Where spid=@@spid
Select @typeCnx=CB_Type, @creatorCnx=CB_Creator from cbUserSession Where cbSession=@@spid
Insert Into TraceUserSession(spid, UserSage100, UserWindows, TypeCnx, CreatorCnx)
Values(@@spid,@userSage100,@userWindows,@typeCnx,@creatorCnx)
End
END
GO

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Mer 9 Oct 2013 13:36
de rachcompte
Code: Tout sélectionner
--Table permettant de stocker les connexions
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TraceUserSession]') AND type in (N'U'))
DROP TABLE [dbo].[TraceUserSession]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TraceUserSession](
[spid] [int] NULL,
[UserSage100] [nvarchar](max) NULL,
[UserWindows] [nvarchar](max) NULL,
[TypeCnx] [nchar](10) NULL,
[CreatorCnx] [nchar](10) NULL
) ON [PRIMARY]
GO
--Trigger permettant d'alimenter la table "TraceUserSession" avec les nouvelles connexions
IF EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[TRC_CIAL_USERSESSION]'))
DROP TRIGGER [dbo].[TRC_CIAL_USERSESSION]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[TRC_CIAL_USERSESSION]
ON [dbo].[F_PROTECTIONCIAL]
AFTER UPDATE
AS
BEGIN
SET NOCOUNT ON;
Declare @marqueur smallint, @userSage100 varchar(max), @userWindows varchar(max)
Declare @typeCnx varchar(max), @creatorCnx varchar(max)

If (Select count(*) From TraceUserSession Where spid=@@spid)=0
Begin
Select @marqueur = cbMarq From Inserted
Select @userSage100 = PROT_USER From F_PROTECTIONCIAL Where CbMarq = @marqueur
Select @userWindows=RTrim(nt_domain) + '\' + RTrim(nt_username) From sys.sysprocesses Where spid=@@spid
Select @typeCnx=CB_Type, @creatorCnx=CB_Creator from cbUserSession Where cbSession=@@spid
Insert Into TraceUserSession(spid, UserSage100, UserWindows, TypeCnx, CreatorCnx)
Values(@@spid,@userSage100,@userWindows,@typeCnx,@creatorCnx)
End
END
GO

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Mer 15 Jan 2014 08:46
de kervb
Bonjour,

Merci bishr pour le script. Ca marche :)

J'ai essayer de l'utiliser avec des triggers sur f_docentete et f_docligne pour savoir qui a modifie les documents. Mais le souci c'est que sur la meme session windows, deux utilisateurs sage peut se connecter. Dans ce cas le spid des deux utilisateurs sage sera le meme! Donc difficile de tracer lequel des deux a fait des modifications.

Quelqu'un a une idee comment contourner ce probleme?

Merci pour votre contribution.
kervb




OokieDookie a écrit:Bonjour à tous,

Du nouveau sur le forum, bishr nous a enfin trouvé comment récupérer le user Sage d'une session.
Ca valait bien un gros coup de pub et une publication dans la section savoir-faire !

Bonne journée

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Mer 2 Avr 2014 23:04
de asr31
Bonjour,

Je ne pense pas que le SPID soit le même ....

Cordialement,

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Sam 16 Mai 2015 16:35
de Proto
Pour avoir utilisé le même type de script, il suffit à la connexion de faire un lien entre l'utilisateur SYSTEM du sql avec l'identifiant de connexion Sage.
Après, il suffit de faire appel à cette table dans les triggers sur UPDATE/INSERT/DELETE por F_DOCENTETE et F_DOCLIGNE.
De là à savoir qui est derrière le clavier .... à part la vidéo :D
Cordialement

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Ven 19 Fév 2016 15:07
de ririandri
Ce script est effectivement fort utile pour connaître l'utilisateur SAGE et peut être amélioré en supprimant de la table les informations inutiles concernant les anciennes sessions. D'autre part, ne serait-il pas moins compliqué d'utiliser le champ cbSession de la table cbUserSession pour identifier l'utilisateur SAGE ?
En tout cas merci pour tout !

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Mer 20 Avr 2016 10:27
de NARBONE
Bonjour,
je réponds suite à la consultation de ce sujet, car j'aurais une question annexe sur le même thème :
est-ce qu'on peut retracer dans SQL SERVER 2008 et + le traitement des reports à nouveau ainsi que le temps de traitement de la comptabilité SAGE gérée sous SQL SERVER ?
- version SQL SERVER : 2008 R2 et +
- version comptabilité SAGE : 16 et +
merci d'avance pour vos retours
cordialement,
M. NARBONE

Re: SQL Server - Ligne 100 - Trace utilisateur

MessagePosté: Jeu 21 Avr 2016 00:56
de asr31
@Narbonne,

Bonjour :
Aucun rapport avec le choucroute à mon avis...

Plutôt ouvrir un nouveau POST pour ta demande.

Sinon, Il est toujours possible, coté SQL, de faire une trace de ce qui se passe (voir SQL Profiler)

Cordialement,