如何防止用户在 SQL Server management studio 中看到不属于他的数据库?
How to prevent user to see databases not owned by him in SQL Server management studio?
当我的 SSMS(SQL 服务器管理工作室)连接到我的共享托管数据库服务器时,所有数据库(包括不属于我的数据库)都列在左窗格(SSMS 的资源管理器)中。
理想情况下,我只想在此处显示我拥有的数据库。显示别人的数据库是一个安全漏洞,虽然我没有权限查看他们的数据。至少我知道它们的数据库名称。
是否可以通过配置我的 SSMS 或要求服务提供商的支持团队更改他们的设置(我认为应该在服务器端配置)来实现这一点?
谢谢。
您可以通过架构权限实现这一点。查看此线程以获取更多信息。
我通过 运行 下面的 SQL 解决了这个问题。
DENY VIEW any DATABASE TO PUBLIC;
GRANT CREATE DATABASE TO PUBLIC;
ALTER AUTHORIZATION ON DATABASE::testdb TO testuser;
当我的 SSMS(SQL 服务器管理工作室)连接到我的共享托管数据库服务器时,所有数据库(包括不属于我的数据库)都列在左窗格(SSMS 的资源管理器)中。
理想情况下,我只想在此处显示我拥有的数据库。显示别人的数据库是一个安全漏洞,虽然我没有权限查看他们的数据。至少我知道它们的数据库名称。
是否可以通过配置我的 SSMS 或要求服务提供商的支持团队更改他们的设置(我认为应该在服务器端配置)来实现这一点?
谢谢。
您可以通过架构权限实现这一点。查看此线程以获取更多信息。
我通过 运行 下面的 SQL 解决了这个问题。
DENY VIEW any DATABASE TO PUBLIC;
GRANT CREATE DATABASE TO PUBLIC;
ALTER AUTHORIZATION ON DATABASE::testdb TO testuser;