我的任务是审核SQL Server的安全性。但是,当我查看SQL Server Management Studio中的登录时,我没有在主数据库旁边看到该登录名的复选框。如何确定登录有权访问哪些数据库?
答案 0 :(得分:2)
是一个有用的系统存储过程,用于列出SQL登录帐户的所有映射用户。
语法:
sp_msloginmappings @Loginname , @Flags
@loginname:登录帐户名,如果未指定loginname,则返回登录帐户的结果(当前登录名)
@Flags:值可以是0和1,默认为0. 0表示在所有数据库中显示映射用户。 1表示如何在当前映射用户 数据库上下文。
e.g 这是样本:
sp_msloginmappings 'sa'
show mapping user account info in all databases for login account 'sa'
sp_msloginmappings 'sa', 1
show mapping user account info in current databases context for login account 'sa'
答案 1 :(得分:0)
如果您以这种方式看到用户登录匹配,则登录可以访问数据库。
SELECT sp.name AS 'Login', dp.name AS 'User'
FROM sys.database_principals dp
JOIN sys.server_principals sp
ON dp.sid = sp.sid
ORDER BY sp.name, dp.name;
您可以在SQL Server 2005/2008中执行此操作