您如何配置 MS SQL Server 以防止将所有数据库名称和登录名暴露给任何经过身份验证的用户?

nse*_*off 6 security sql-server ssms

我是 MS SQL 的新手,作为一名系统管理员经验有限的 Web 开发人员,希望他的服务提供商使用最佳实践,因此提出了这个问题。

我们在托管公司提供的远程 MS SQL 服务器上有一个数据库。我们托管公司的其他客户使用同一台服务器作为他们的数据库。当我使用 Microsoft SQL Server Management Studio Express 登录到服务器时,我可以看到大量信息,包括服务器上所有数据库的名称和所有登录名。

虽然我无法访问其他客户的数据库,也无法看到密码,但我什至能够看到这些信息,这对我来说似乎很奇怪。我当然不希望其他客户知道我的数据库名称或我的登录名。当我向我的服务提供商提出这个问题时,他的回答是:

我咨询了我的 SQL 人员,他说不幸的是 MSSQL Server 的一个限制。尽管数据库名称是可见的,但如果没有该数据库的密码,您将无法访问该数据库。

这是我登录后看到的:

  • mssql.server.com
    • 数据库
      • 系统数据库
      • 一大堆客户数据库...
    • 安全
      • 登录
      • 一大堆客户端登录...
    • 服务器对象
    • 复制
    • 管理

这是设置 SQL Server 的正确方法吗?请确认或否认我的怀疑,答案是否定的,我需要找其他人来托管我们的数据库。

Tom*_*m A 4

从开发方面来说,我可以说管理员应该能够将每个人锁定到他们自己的数据库(对于元数据也可能是主数据库)。从 MSDN 来看, SQL Server 安全列表包括数据库,权限甚至包括能够查看数据库。 以下是 MSDN 数据库安全注意事项的链接。