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

我是MS sql的新手,并且问这个问题是一个具有有限系统管理员经验的Web开发人员,他希望他的服务提供商使用最佳实践.

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

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

I checked with my sql guy and he said that unfortunately is a limitation of MSsql Server. Although the database names are visible,you cannot access any database without the password for that database.

这是我登录后看到的:

> mssql.server.com

>数据库

>系统数据库
>一大堆客户数据库……

>安全

>登录
>一大堆客户端登录……

>服务器对象
>复制
>管理

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

解决方法

从开发方面来说,我可以说管理员应该能够将每个人锁定到他们自己的数据库(并且可能也是主数据库).从MSDN,SQL Server securables的列表包括数据库,permissions包括甚至能够看到数据库. Here是指向数据库的MSDN安全注意事项的链接.

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...