SQL Server:跟踪完全限定表查询上的数据库活动或登录

SQL Server:跟踪完全限定表查询上的数据库活动或登录,sql,sql-server,sql-server-2008-r2,sql-server-profiler,Sql,Sql Server,Sql Server 2008 R2,Sql Server Profiler,我正在尝试审核SQL服务器的安全性。我试图在数据库上运行跟踪,以获取登录和访问数据库的用户。但是,如果查询是从其他数据库运行的,则不会生成登录事件 示例:我正在尝试跟踪[Database2] Use [Database1]; Go SELECT * FROM [Database2].[dbo].[Table] 但是在数据库2下的跟踪中没有记录任何事件 我们的环境是SQL Server 2008 R2标准版。任何建议都将不胜感激。这是因为数据库用户不登录SQL Server。SQL Serve

我正在尝试审核SQL服务器的安全性。我试图在数据库上运行跟踪,以获取登录和访问数据库的用户。但是,如果查询是从其他数据库运行的,则不会生成登录事件

示例:我正在尝试跟踪
[Database2]

Use [Database1];
Go

SELECT * FROM [Database2].[dbo].[Table]
但是在
数据库2
下的跟踪中没有记录任何事件


我们的环境是SQL Server 2008 R2标准版。任何建议都将不胜感激。

这是因为数据库用户不登录SQL Server。SQL Server具有名为“登录”的安全实体,用于登录SQL Server实例。这些登录是Active directory中的Windows登录或SQL Server登录,您可以定义并指定用户名和密码。数据库“用户”是在数据库级别定义的。用户不登录任何地方,他们甚至没有密码。其思想是,当连接到特定数据库时,SQL Server“登录”映射到特定数据库“用户”。 您对其他数据库的查询不会生成登录,因为登录是服务器范围的事件,而不是数据库范围的事件


例如,我明白了。那么,在使用完全限定表名的过程中,是否无法确定谁正在访问哪个数据库?目前,权限没有应有的严格,我们希望锁定对更集中的安全组的数据库访问。我认为最简单的方法是对数据库访问进行一周的审核,然后找到这些用户所属的最常见的安全组。看起来这是可能的,但并不容易。