我正在尝试审核SQL Server的安全性。我试图在数据库上运行跟踪以获取登录和访问数据库的用户。但是,如果从其他数据库运行查询,则不会生成登录事件。
示例:我正在尝试跟踪[Database2]
Use [Database1];
Go
SELECT * FROM [Database2].[dbo].[Table]
但Database2
下的跟踪中没有记录任何事件。
我们的环境是SQL Server 2008 R2标准版。任何建议将不胜感激。
答案 0 :(得分:0)
这是因为数据库用户无法登录SQL Server。 SQL Server具有名为" logins"的安全实体。用于登录SQL Server实例的。这些登录是从Active Directory或SQL Server登录的Windows登录,您可以定义并指定用户名和密码。数据库"用户"在数据库级别定义。用户无法登录任何地方,他们甚至没有密码。想法是SQL Server" login"映射到特定数据库" user"连接到特定数据库时。 您对其他数据库的查询不会生成登录,因为登录是服务器范围的事件,而不是数据库范围的事件。
例如,请参阅here