SQL Server创建指定数据库的账号且看不到其他任何用户创建的数据库
-- 创建一个 SQL Server 身份验证的登录名
CREATE LOGIN 登录名
WITH PASSWORD = '设置密码';
-- 切换到你希望授权的特定数据库
USE 指定数据库名称;
GO
-- 在该数据库中创建与登录名关联的用户
CREATE USER 上面设定的登录名 FOR LOGIN 上面设定的登录名;
-- 将用户添加到 db_owner 数据库角色
ALTER ROLE [db_owner] ADD MEMBER 上面设定的登录名;
use master
ALTER LOGIN 上面设定的登录名 WITH DEFAULT_DATABASE = 指定数据库名称;
USE [master];
GO
deny VIEW ANY DATABASE TO 上面设定的登录名;
打开SSMS,使用新创建的账号进行登录,左侧数据库节点下面是看不到数据库的,可以点击“新建查询窗口”验证是否可以正常访问指定的数据库,可以正常访问那就表明账号和权限配置没有问题,数据库节点下面看不到数据库是SSMS客户端缓存的问题,为了可以看到数据库,可以参考下面步骤
使用新创建的账号进行登录后,展开“安全性”->"登录名"->鼠标右击新账号,选择属性,左侧“安全对象”,勾选“查看任意数据库”,点击确定按钮, 右击数据库根节点进行刷新,此时就可以看到指定的数据库了。