We have a webbased application with ASP front end. I am trying to write a trigger on a table to gather information like OSUser and DBuser when updates and deletes are done on that table with the query
SELECT USERNAME,OSUSER INTO V_DBUSER,V_OSUSER FROM V$SESSION
But, when the update/delete is done through ASP, it is givning the osuser as SYSTEM. Is there any function or any other method which gives me the correct OSUSER id?
Thanks in advance
yes very interesting, nice tip
I'm afraid that can't be done directly... the web server connects to the database server, that is why the database shows you "system" is logged in and the machine name is the one of the server.
What you could do however is create an activex component that reads out the username and password locally.. But that would require the activex to be installed on the users machine... (nice confusing popups for users)
But as far as my knowledge goes, there is no way to get the username, you might get the ip from the client that connects to the webserver and put that in..
Via NTLM authentication?
If the page requested is protected via NTLM authentication (see Apache documentation if applicable), you can get the page to create a cookie with the username/ip address/anything else local written to it.
This can then be queried at the server side to get this information.
it's not easy, but it works!
Click Here to Expand Forum to Full Width