কীভাবে এসকিউএল-এ ব্যবহারকারীর নাম দিয়ে জিজ্ঞাসার ইতিহাস কার্যকর করা যায়


11

আমি ব্যবহার করে সম্পাদিত প্রশ্নগুলি পেতে পারি:

SELECT deqs.last_execution_time AS [Time]
    ,dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC

তবে আমি usernameকলামও খুঁজছি , যারা এই কোয়েরিগুলি কার্যকর করেছে।


2
না, এসকিউএল সার্ভার ডিফল্ট ট্রেস দ্বারা ক্যাপচার করা কিছু ডিএমএল / ডিডিএল ব্যতীত যারা কোয়েরিগুলি চালায় এমন ব্যবহারকারীদের উপর নজর রাখে না।
অ্যারন বারট্র্যান্ড

উত্তর:


27

আমি আপনাকে একটি সার্ভার সাইড ট্রেস তৈরি করতে বা আপনার বিশ্বাস করেন না এমন ব্যবহারকারীদের থেকে ক্রিয়াকলাপ সন্ধান করতে এসকিউএল অডিট সক্ষম করার পরামর্শ দেব।

মনে রাখবেন যে ডিএমভি সাফ হয়ে গেলে, এসকিউএল সার্ভার পুনরায় চালু করা ইত্যাদি যদি ডিএমভি ডেটা পুনরায় সেট হয়ে যায় etc.

নিকটতম আপনি যেটি পেতে পারেন তা নীচের ক্যোয়ারীটি ব্যবহার করছে:

/******************************************************
Script : Findout Who did what ?
Author : Kin Shah .. written for dba.stackexchange.com
*******************************************************/
USE master
go
SELECT sdest.DatabaseName 
    ,sdes.session_id
    ,sdes.[host_name]
    ,sdes.[program_name]
    ,sdes.client_interface_name
    ,sdes.login_name
    ,sdes.login_time
    ,sdes.nt_domain
    ,sdes.nt_user_name
    ,sdec.client_net_address
    ,sdec.local_net_address
    ,sdest.ObjName
    ,sdest.Query
FROM sys.dm_exec_sessions AS sdes
INNER JOIN sys.dm_exec_connections AS sdec ON sdec.session_id = sdes.session_id
CROSS APPLY (
    SELECT db_name(dbid) AS DatabaseName
        ,object_id(objectid) AS ObjName
        ,ISNULL((
                SELECT TEXT AS [processing-instruction(definition)]
                FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
                FOR XML PATH('')
                    ,TYPE
                ), '') AS Query

    FROM sys.dm_exec_sql_text(sdec.most_recent_sql_handle)
    ) sdest
where sdes.session_id <> @@SPID 
--and sdes.nt_user_name = '' -- Put the username here !
ORDER BY sdec.session_id

@ অতি + এই অত্যন্ত দরকারী স্ক্রিপ্ট ভাগ করে নেওয়ার জন্য ধন্যবাদ। এটি কোনও একরকম এটির সাথে পরিচিত একটি ডিবিএস্ট্যাকেক্সেঞ্জার.কম
মার্সেলো মিয়োরেলি

1
@ মার্কসোমিওরেলি ইয়ে .. স্ক্রিপ্টটি আপনার প্রশ্নের সমাধান করতে ব্যবহার করা যেতে পারে, তবে আমি এখনও সার্ভারের সাইড ট্রেস বা এসকিউএলডিউটের জন্য যেতে চাই। এইভাবে, আপনাকে ডিএমভিগুলি থেকে ডেটা বের হওয়ার বিষয়ে চিন্তা করতে হবে না।
কিন শাহ

কিভাবে sdest.Query দ্বারা ফিল্টার ?
কিকিনেট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.