默认情况下用户登录后就能够看到所有数据库,但只能操作已授权的数据库,但这样还是会带来安全隐患,按下面方法操作后就好多了,用户只能看到自己已授权的数据库。

USE masterGO
--将所有数据库的查看权限给Public角色,每个登录用户只能查看指定的数据库
--此语句会导致服务器上所有的用户在没有设置数据库权限的情况下不会显示任何数据库,有可能会影响正常使用
DENY VIEW any DATABASE TO PUBLIC;
--将数据库Test的所有权给TestUser用户
--TestUser用户可以查看并访问Test数据库
ALTER AUTHORIZATION ON DATABASE::Test TO TestUser