Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 11h15   #1
Membre chevronné
 
Avatar de Laurent Jordi
 
Homme Laurent Jordi
Architecte de système d'information
Inscription : septembre 2005
Messages : 1 449
Détails du profil
Informations personnelles :
Nom : Homme Laurent Jordi
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Architecte de système d'information

Informations forums :
Inscription : septembre 2005
Messages : 1 449
Points : 631
Points : 631
Envoyer un message via MSN à Laurent Jordi Envoyer un message via Skype™ à Laurent Jordi
Par défaut Trigger for Select

Bonjour,

J'ai besoin de créer des triggers pour les select sur une base de données SQL Server et, d'après ce que j'ai lu un peu partout, il semble que ça ne soit pas possible alors que ça l'est dans Oracle.

Avant d'abandonner SQL Server sur çe projet j'aurais bien aimé avoir une confirmation de votre part concernant l'impossibilité de créer ces déclencheurs.

Accessoirement, si c'est annoncé dans le prochain SQL Serveur et compte tenu de la durée du projet, on peut attendre la release.

D'avance merci pour votre aide,

Salutations

Laurent Jordi
__________________
Je dirige actuellement une équipe qui travaille sur la refonte d'un système d'information d'une compagnie d'assurance. Application à base de technologie Microsoft conçue en architecture de service (SOA avec du BPM, BRM, MDM) avec les derniers outils clients léger ASP.net MVC (3.x+)...
Je recrute des nouveaux collaborateurs (un à deux ans d'expérience) pour intégrer ce projet qui constituera une très bonne expérience (Projet d'une durée minimale de 2 ans à Levallois Perret).
Laurent Jordi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 17h42   #2
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Il n'existe pas de déclencheur sur SELECT, mais on peut voir qui a fait des select sur n'importe quelle table, avec le contenu de la requête en utilisant CDC.

Exemple :

1) création d'une base et d'une table :
Code :
1
2
3
4
5
6
7
8
CREATE DATABASE DB_SUIVI_SELECT;
GO
 
USE DB_SUIVI_SELECT
GO
 
CREATE TABLE dbo.T (C INT)
GO
2) mise en place de l'audit au niveau serveur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
USE master;
GO
 
-- création de l'audit
CREATE SERVER AUDIT ADT_SELECT
    TO FILE ( FILEPATH = 'C:\temp\') ;
GO
 
-- activation de l'audit
ALTER SERVER AUDIT ADT_SELECT
WITH (STATE = ON) ;
GO
3) mise en place de l'audit niveau base :
Code :
1
2
3
4
5
6
7
8
9
10
11
USE DB_SUIVI_SELECT ;
GO
 
-- Création d'un événement à suivre, ici SELECT sur T
CREATE DATABASE AUDIT SPECIFICATION ADS_SELECT_T
FOR SERVER AUDIT ADT_SELECT
ADD (SELECT
     ON dbo.T 
     BY dbo )
WITH (STATE = ON) ;
GO
4) test :
Code :
1
2
3
4
5
6
7
-- insertion
INSERT INTO T VALUES (1), (2), (3);
GO
 
-- extraction
SELECT * FROM T;
SELECT C FROM T WHERE C % 2 = 0;
5) résultat
Code :
1
2
3
4
5
6
7
8
9
10
-- voir ce qui a été fait en SELECT :
SELECT event_time, statement
FROM sys.fn_get_audit_file ('C:\temp\ADT_SELECT*',DEFAULT,DEFAULT)
WHERE  action_id = 'SL';
GO
 
event_time             statement
---------------------- -----------------------------------
2012-01-05 16:36:29.10 SELECT * FROM T;
2012-01-05 16:36:29.11 SELECT C FROM T WHERE C % 2 = 0;
Il est bien sur possible d'obtenir d'autres informations, par exemple qui à fait quoi...

Une chose est sûr c'est que c'est asynchrone et qu'il faut aller scruter le fichier table régulièrement...

je l'ai mis en place pour la traçabilité dans le domaine de la santé...

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 17h54   #3
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 608
Points : 1 608
Citation:
Envoyé par Laurent Jordi Voir le message
J'ai besoin de créer des triggers pour les select sur une base de données SQL Server et, d'après ce que j'ai lu un peu partout, il semble que ça ne soit pas possible alors que ça l'est dans Oracle.
Ah bon ?
Ayant pose la question a un collegue (qui est ACE oracle), il n'avait pas l'air trop au courant...
Et base sur cette source, il ne semble pas non plus que ce soit possible:
https://forums.oracle.com/forums/thr...readID=1554647

Auriez vous de la documentation concernant votre affirmation ?

Edit:
Ceci y ressemble de loin...
http://technology.amis.nl/blog/810/s...ained-auditing
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 10h32   #4
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 608
Points : 1 608
En en rediscutant aujourd'hui, j'ai eu une seconde confirmation que les triggers on select n'existent pas.
De plus le FGA (Fine grained Auditing) fait partie du package Oracle Audit Vault qui d'apres cet article coute 50000$ par processeur.
http://www.networkworld.com/news/200...-database.html

Autre question:
Comment devrait se comporter un tel trigger dans une jointure ?!
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2012, 17h00   #5
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 959
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 959
Points : 17 791
Points : 17 791
Citation:
Envoyé par Ptit_Dje Voir le message
En en rediscutant aujourd'hui, j'ai eu une seconde confirmation que les triggers on select n'existent pas.
De plus le FGA (Fine grained Auditing) fait partie du package Oracle Audit Vault qui d'apres cet article coute 50000$ par processeur.
C'est quand même beaucoup moins cher chez MS puisque l'audit est inclus dans la version Standard sous la forme Change Tracking et dans la version Enterprise sous la forme Change Tracking + CDC (Change Data Capture).

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h14.


 
 
 
 
Partenaires

Hébergement Web