如何才能看到“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 登录名都属于公共服务器角色。下一步 - 公共服务器角色被授予“查看任何数据库”权限,这意味着 被授予此权限的登录名可以查看以下元数据:描述了所有数据库,包括
master
数据库,而数据库又记录了SQL Server系统的所有系统级信息,包括有关SQL Server登录的信息,sa
登录当然也不例外。
所以...任何新登录都可以查看所有数据库和登录,但无法修改它们。
隐藏数据库的可能“解决方案”是拒绝登录“查看任何数据库”权限。
要限制数据库元数据的可见性,请拒绝登录 VIEW ANY 数据库权限。拒绝该权限后,登录可以看到 仅该登录名拥有的 master、tempdb 和数据库的元数据。
并且...您无法完全隐藏
sa
登录,因为每个登录都必须能够从 master
数据库读取服务器的元数据。