Link to home
Start Free TrialLog in
Avatar of vanroybel
vanroybel

asked on

SQL logs to check what a specific user does

So we have an external consultant that has created a new application for our scanners.
He is updating things in our database and I'm not a 100% sure he's updating the right things.
I'd like to be able to check what he is doing in our SQL server but I have no idea how to do that.
This way I can prove that he is or isn't doing the things and we can check elsewhere or not for the problems.
Avatar of Vitor Montalvão
Vitor Montalvão
Flag of Switzerland image

You can use SQL Audit but what you really want to audit?
Schema changes or data changes?
SQL Server configuration changes?
Database configuration changes?
What kind of permissions he has?
Avatar of vanroybel
vanroybel

ASKER

I need to check data changes. What updates a specific field in a specific table and which user does it.
Are you familiar with the SQL Server Audit feature?
Isn't hard to understand. Brad McGehee wrote a good article about how to work with it. Give a look on it and check if it's this you are looking for.
I'm sure Auditing would be a better way to log and archive activity. In case your server does support auditing, you can also use SQL Profile to monitor and track all activity. Keep in mind you may want to filter activity to look for only the LoginNames he would be using and of course test any filters and templates beforehand.
Well I tried using auditing but it doesn't work because it is not available for the standard edition.
I'll check SQL profile then.
It's only available in Standard Edition for SQL Server 2012 and 2014.
Sorry I misspelled. The correct term is SQL Profiler and you can access is from the start menu or if you already have SQL Server Management Studio open you can access profiler from the Tools menu.
Ok so with SQL profiler I can start a trace activity happening at the moment. I won't be able  to check the data from before I suppose?
No, you can't go backwards. You need to create an alert mechanism but that's only works from present and forward.
So with standard edition I don't have any way of analyzing the data from the previous days? Is there any tool I could use to analyze this data?
Ok, what I really need is a way to save the user who does the update on a specific field. I don't know if our ERP is doing the update or if it is coming from somewhere else.

I read that I can do that with a trigger but I don't understand the codes I'm finding. Also it seems as if I will have to use the trigger to update the value which is not possible with our ERP, since it doesn't let me choose how it will update the values.

Otherwise if I could create a trace that does this specifically it would be good too.
Not even in Enterprise Edition you will be able to read data from past.
There are some 3rd tools that can read SQL Server Transaction Log files (*.LDF) or Transaction Log Backups. Check this one from Apex. I think you can download a trial version so you don't need to pay.
ASKER CERTIFIED SOLUTION
Avatar of Vitor Montalvão
Vitor Montalvão
Flag of Switzerland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I created a Trigger that saves every changes in the database. Thanks for your help.