Création de Trigger de logon [Résolu]

Messages postés
2
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
3 juin 2010
- - Dernière réponse : cs_Tippex_66
Messages postés
2
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
3 juin 2010
- 3 juin 2010 à 08:20
Alors voilà mon problème. Je suis actuellement en train de monter un projet de groupe pour lequel j'utilise SQL Server. Pour les besoins de ce projet, il faut que à la connexion d'un utilisateur, je récupère son SPID (id du processus sur le serveur le concernant), pour le stocker dans une table. Or j'ai beau essayer, à chaque fois que je crée un trigger pour faire ce genre de choses, les connexions à mon server deviennent impossible (en raison de l'exécution du trigger ).

Après de multiples recherches sur la toile, je tombe sur de nombreux exemples qui montrent comment refuser des connexions grace à un trigger. Ca pas de soucis, je maitrise . Mais impossible de trouver un seul exemple où l'on autorise explicitement un utilisateur à se connecter. Même en essayant des codes qui par exemple refusent une connexion après 3 tentatives, ça ne marche pas .

Voila tout de même le trigger que j'essaye de mettre en place :
CREATE TRIGGER TRIG_LOGON
ON ALL SERVER
FOR LOGON
AS
BEGIN
DELETE FROM [maBase].[monSchema].[connected_users] WHERE spid = @@SPID
INSERT INTO [maBase].[monSchema].[connected_users] VALUES (@@SPID, NULL)
END;


Après ce long roman, ma question, ou plutôt mes questions sont :
Comment créer un simple trigger qui autorise la connexion, même un trigger qui ne fait strictement rien, mais qui n'empeche pas la connexion d'un utilisateur ?

Comment faire pour que le trigger que j'essaye de créer puisse fonctionner ?


Merci à tous !
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
2
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
3 juin 2010
3
Merci
Oui désolé, j'ai oublié de venir partager ma solution ici, qui a en fait évolué. Merci pour le rappel.
En fait la solution que j'ai posté ailleurs, ne me convenait qu'a moitié, mais entre temps, j'ai trouvé ce qu'il me fallait.
Pour la petite histoire, la date du post de ma solution est antérieure à mon post ici, car je ne pouvais pas poster un nouveau message sur le forum, j'ai donc édité mon dernier message.


Concernant ma solution. J'ai trouvé que le trigger n'arrivait pas a insérer des données dans une bdd autre que la base master. J'ai donc dans un premier temps créé une table sur la base master dans laquelle je faisais l'insertion qu'il me fallait. Cependant, cela me causait énormément de soucis au niveau de la gestion des droits et cie sur les utilisateurs. J'ai donc finalement trouvé la parade consistant à écrire une procédure stockée qui fait l'insertion dans la table que je veux. Depuis mon trigger je fais donc appel à cette procédure plutôt qu'à un INSERT classique.

J'ai un peu de mal à comprendre pourquoi l'INSERT dans la table ne fonctionne pas alors que l'EXEC qui fait ce même INSERT lui fonctionne. En tout cas ca marche \o/ .

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 152 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Tippex_66
Messages postés
60
Date d'inscription
lundi 4 décembre 2006
Statut
Membre
Dernière intervention
11 janvier 2013
0
Merci
Bonjour,

Petite question, ce sujet est-il toujours d'actualité? car j'ai vu que tu as posé cette question sur d'autre forum, et que tu as dit avoir trouvé une réponse. Mais cette réponse à été écrite avant que tu poses la question ici???

Qui ne tente rien, n'a rien
Commenter la réponse de cs_Tolliap