我正在添加一个使用 SQL Server 身份验证的新登录名。我将其服务器角色设置为公共,然后进入用户映射,选择该用户应该有权访问的唯一数据库。然后我将默认模式更改为 dbo 并使该用户成为 db_owner。
然后,我使用新用户的凭据连接到实例,我不仅可以看到他应该有权访问的数据库,还可以看到所有其他附加的数据库。
如何限制此用户仅查看他有权访问的数据库?
提前致谢!
我正在添加一个使用 SQL Server 身份验证的新登录名。我将其服务器角色设置为公共,然后进入用户映射,选择该用户应该有权访问的唯一数据库。然后我将默认模式更改为 dbo 并使该用户成为 db_owner。
然后,我使用新用户的凭据连接到实例,我不仅可以看到他应该有权访问的数据库,还可以看到所有其他附加的数据库。
如何限制此用户仅查看他有权访问的数据库?
提前致谢!
为此,您需要删除所有其他数据库的来宾帐户。虽然用户可以看到其他数据库,但他无法打开它们并执行任何操作(除非这些数据库中的访客帐户或公共角色可以访问任何内容)。
查看查看任何数据库服务器级别权限。public 角色默认被授予此权限。您可以将其从公开中撤消,然后将其专门授予您要允许的登录名。
或者,将默认授予保留为公共并拒绝您不想查看所有数据库的登录权限。查看这个答案的语法。
使用拒绝并不是完全的选择。这样做意味着登录名永远不会看到列出的任何数据库,即使登录名有权访问它们。
Nick Kavadias 回答的附录:不确定这是否是您所需要的,但这行得通吗?