sql server 2012 现在指定用户访问自己固定的数据库,其它数据库不显示

sql server 默认创建登录用户,成功登录后会显示其它所有的数据库名称,虽然,点击相关名称,访问不了,只能访问自己的数据库,但是看起来不舒服,因为假如一个服务器上有多个数据库,那数据库名称字就会全部显示出来。

sql server 固定用户只能查看自己的数据库如何实现 ?

方法有两种:大致是首先去除public中查看任意数据库权限,其次将数据库所有者修改为新登录名用户即可。

假设用sqluser用户名访问sqluserdb数据库,具体操作如下:

首先新建一个登录名为sqluser的用户名,接下来按照如下两个操作(任选其一,命令或界面)

通过sql server管理器实现

修改查看任意数据库权限

在登录名中新那sqluser用户,并设置相关密码,然后再新建sqluserdb数据库,并把所有者选择为刚才新建的登录名sqluser

然后就可以使用用户名和密码登录,如果登录失败,请检查Sql Server服务器是否开启了混合登录模式

 

命令方式实现

REVOKE VIEW ANY DATABASE TO [public] --这个是取消数据库公开的权限,也就是除了sa角色外任何人都不能查看数据库

-- 现在用sa用户登录 请先创建好数据库
Use [sqluserdb]
go
EXEC dbo.sp_changedbowner N' sqluser'