为什么无权限登录可以看到‘sa’登录?

问题描述 投票:0回答:1

如何才能看到“sa”登录与仅授予读取某些视图的登录关联?可能无法编辑任何内容,但可以看到。还可以看到数据库列表,但无法打开。一切都在 SQL Management Studio 中。刚刚创建的登录名:

create login YourTpvLogin with password = 'enter new password here'
go

create user YourTpvUser for login YourTpvLogin
go

grant select on YourView to YourTpvUser

感谢您的解释或解决方法。

sql-server security sql-server-2012
1个回答
3
投票

好的...首先 每个 SQL Server 登录名都属于公共服务器角色。下一步 - 公共服务器角色被授予“查看任何数据库”权限,这意味着 被授予此权限的登录名可以查看以下元数据:描述了所有数据库,包括

master
数据库,而数据库又记录了SQL Server系统的所有系统级信息,包括有关SQL Server登录的信息,
sa
登录当然也不例外。

所以...任何新登录都可以查看所有数据库和登录,但无法修改它们。

隐藏数据库的可能“解决方案”是拒绝登录“查看任何数据库”权限

要限制数据库元数据的可见性,请拒绝登录 VIEW ANY 数据库权限。拒绝该权限后,登录可以看到 仅该登录名拥有的 master、tempdb 和数据库的元数据。

并且...您无法完全隐藏

sa
登录,因为每个登录都必须能够从
master
数据库读取服务器的元数据。

© www.soinside.com 2019 - 2024. All rights reserved.