none
安全审计(如何设置登陆人的IP或者机器名) RRS feed

  • 问题

  • 我CREATE DATABASE AUDIT SPECIFICATION DbAuditSpec11
    FOR SERVER AUDIT SrvAudit
    ADD (DATABASE_OBJECT_CHANGE_GROUP),
    ADD (SELECT, INSERT, UPDATE,DELETE
    ON Schema::HumanResources BY dbo)
    WITH (STATE=ON)

    但是看审核的时候我看不到登陆到我Server上的客户端IP或者客户端名称?我如何设置才能看到

    2012年9月5日 5:16

答案

  • 可以考虑用户+ session id 吧

    对于用户来说,如果你明确了用户是用来做什么的, 谁使用,那么可以直接通过用户来找人(或者对应的负责人)

    对于 session id, 你可以用审核中的 session id,  配合 profile 一齐用, profile 是可以得到客户端机器名和 application 名字的, 审核的结果和这个 profile 结果通过 session id 和时间 匹配一下,就知道是客户端了吧

    2012年9月5日 8:11
  • SELECT
    	object_id,
    	object_name(object_id),
    	user_updates
    FROM sys.dm_db_index_usage_stats
    WHERE index_id IN(0, 1)
    	AND database_id = DB_ID()
    ORDER BY
    	user_updates DESC

    这个反应自sql 服务启动后的变化(重启就清0重置)

    如果你想从建表开始一直记录,那就用Trigger或者更改数据跟踪自己来做

    2012年9月5日 8:47

全部回复

  • 这个记录的信息只有那么多

    具体的各列值的含义,可以参考联机帮助上 fn_get_audit_file 这个函数的说明

    2012年9月5日 6:25
  • 谢谢大哥,但是我想记录客户端的IP或者客户端的机器名就没有办法了吗?我们的数据库有时候被人Delete忘记加条件,所以想找到客户端的IP或者机器名才能找到这个人予以警告!
    2012年9月5日 7:17
  • 可以考虑用户+ session id 吧

    对于用户来说,如果你明确了用户是用来做什么的, 谁使用,那么可以直接通过用户来找人(或者对应的负责人)

    对于 session id, 你可以用审核中的 session id,  配合 profile 一齐用, profile 是可以得到客户端机器名和 application 名字的, 审核的结果和这个 profile 结果通过 session id 和时间 匹配一下,就知道是客户端了吧

    2012年9月5日 8:11
  • 那再问下,我如何才能查到某个数据库中那个表的数据变化频率高,就是表中的数据经常被更新或者插入,而且插入或者更新的频率比较高,表中的数据经常变,我该如何找到这些表?

    2012年9月5日 8:38
  • SELECT
    	object_id,
    	object_name(object_id),
    	user_updates
    FROM sys.dm_db_index_usage_stats
    WHERE index_id IN(0, 1)
    	AND database_id = DB_ID()
    ORDER BY
    	user_updates DESC

    这个反应自sql 服务启动后的变化(重启就清0重置)

    如果你想从建表开始一直记录,那就用Trigger或者更改数据跟踪自己来做

    2012年9月5日 8:47
  • You can enable sql successful login auditing, which tells login name and ip address.
    2012年9月5日 15:31