在Plesk v12.5.30中,我创建了一个名为ngo_database
的新SQL Server数据库和一个名为ngo_databaseuser
的新数据库用户。
我可以通过Navicat for SQL Server v12.1.20连接到这个新数据库(在提供主机“ xxx” +用户名“ ngo_databaseuser” +密码+初始数据库“ ngo_database”之后),并且能够访问“ ngo_database”数据库并创建新表和查询。
但是,当我尝试通过SSMS 2014连接(提供服务器名称“ xxx” +登录“ ngo_databaseuser” +密码+连接到数据库“ ngo_database”之后)时,我无法访问“ ngo_database”数据库和唯一的数据库可用的是master + tempdb。而且我无法导入或创建新的用户数据库。
顺便说一句,我已经与托管公司确认并选中了“向所有Microsoft SQL Server数据库用户授予ALTER DATABASE权限”。
我做错了什么,为什么我无法通过SSMS访问数据库?
答案 0 :(得分:0)
在SSMS的对象浏览器中没有看到数据库并不等同于无法访问它。当您只能看到数据库master
和tempdb
时,这很可能意味着您已经对登录名添加了DENY
的{{1}}权限,或者具有服务器角色属于,或者VIEW ANY DATABASE
已被撤销VIEW ANY DATABASE
角色,而您尚未获得授予。
SSMS通过使用public
对象在对象资源管理器中构建列表,并且如果没有sys
,它将看不到您有权访问以从中检索相关对象的数据库。
您可以使用VIEW ANY DATABASE
或尝试查询表(例如USE {Your Database}
)来检查是否有权访问数据库。
如果需要 SELECT * FROM {Your Database}.sys.objects;
权限,则需要与您的DBA交流。