是否可以获取用于对 SQL Server 数据库执行某些恶意操作的 PC/笔记本电脑的 MAC ID。
我使用了这个 SQL 命令:
DECLARE @current VARCHAR(500);
DECLARE @start VARCHAR(500);
DECLARE @indx INT;
SELECT @current = path
FROM sys.traces
WHERE is_default = 1;
SET @current = REVERSE(@current)
SELECT @indx = PATINDEX('%\%', @current)
SET @current = REVERSE(@current)
SET @start = LEFT(@current, LEN(@current) - @indx) + '\log.trc';
-- CHNAGE FILER AS NEEDED
SELECT
CASE EventClass
WHEN 47 THEN 'Object:Deleted'
WHEN 164 THEN 'Object:Altered'
END, *
FROM::fn_trace_gettable(@start, DEFAULT)
WHERE
EventClass IN (47, 164)
AND EventSubclass = 0
AND DatabaseID <> 2
ORDER BY
StartTime DESC
这能够提供有关操作的大量信息。其中之一是主机名,同样可以获得所述主机名的 MAC ID。
我在某处读到,如果他的 PC 使用相同的 LAN,我只能获取 MAC ID。但这里不是这样。我也尝试了下面的代码。
use master
select
hostname,
MAC = substring(net_address, 1, 2) + '-' +
substring(net_address, 3, 2) + '-' +
substring(net_address, 5, 2) + '-' +
substring(net_address, 7, 2) + '-' +
substring(net_address, 9, 2) + '- ' +
substring(net_address, 11, 2)
from
sysprocesses
where
spid in ('51','55','64','58','60','65','73','79','80','81','83')
在这里,我得到了上一个命令的 spid。但这并不是特定的“主机名”/PC 所独有的。所以我只得到了服务器 macid。任何帮助,将不胜感激。