Bonjour,
je voudrai connaitre qui à changer les roles d'un utilisateur de la base de donnée.
je travaille dans un nvirenement sql server 2005
Merci
Bonjour,
je voudrai connaitre qui à changer les roles d'un utilisateur de la base de donnée.
je travaille dans un nvirenement sql server 2005
Merci
Bonsoir,
Pour cela il faut que tu utilises les notifications d'événements avec les types d'événements DROP_SERVER_ROLE_MEMBER, ADD_SERVER_ROLE_MEMBER, ADD_ROLE_MEMBER et DROP_ROLE_MEMBER selon ton cas.
++
merci pour ta réponse
mais comment je pourrai utiliser les notifications d'événements
Re,
Excusez moi je vous ai induit en erreur il faut utiliser l'événement AUDIT_ADD_MEMBER_TO_DB_ROLE_EVENT dans votre cas pour l'ajout et la suppression d'utilisateurs à des roles de bases.
Il faut utiliser la technologie service broker pour cela.
Les étapes sont les suivantes :
- Vérifier que service broker est activée sur la base de données
- Créer une queue de message (CREATE QUEUE ...)
- Créer un service qui utilisera cette queue avec un contrat prédéfin pour les notifications (CREATE SERVICE ...)
- Créer une notification d'événement avec l'étendue serveur, notifiant l'événement AUDIT_ADD_MEMBER_TO_DB_ROLE_EVENT associé au service créé. (CREATE EVENT NOTIFICATION ...)
Il ne vous reste plus qu'à lire la queue de message et à déverser vos informations dans une table par exemple. (RECEIVE message_body, message_sequence_number FROM syseventqueue INTO ...)
++
Merci encore pour votre réponse. J'ai utilisé la requête suivante :
CREATE QUEUE Q1 ;
GO
CREATE SERVICE S1
ON QUEUE Q1
GO
CREATE EVENT NOTIFICATION log_ddl
ON server
FOR AUDIT_ADD_MEMBER_TO_DB_ROLE_EVENT
TO SERVICE 'S1',
'8140a771-3c4b-4479-8ac0-81008ab17984' ;
SELECT * FROM sys.server_event_notifications
WHERE name = 'log_ddl'
mais je n'arrive pas à lire les informations de la queue même en faisons :
RECEIVE * FROM Q1
merci encore
Et en faisant un simple SELECT * FROM Q1 ?
merci Mike,
j'ai trouvé la solution on utilisant les fichiers de traces
merci
Partager