无法访问数据库[dbName]。 (ObjectExplorer)

时间:2013-01-02 14:37:47

标签: sql sql-server sql-server-2008

我在使用SQL Server 2008 R2方面遇到了问题。

我最近遇到了计算机问题,因此我不得不重新启动Windows,并且必须将一个用户的权限授予另一个用户(使用属性中的安全功能)。最初提供权限时,通过“拒绝访问”消息。

经过大量研究后,它停止产生此错误(我需要授予权限的用户也无法使用),这会导致另一个问题发生,但这次是在SQL Server中。它产生这个信息;

  

无法访问数据库[dbName]。 (ObjectExplorer)

当我尝试选择下拉选项以查看SQL Server中数据库的表和存储过程列表时,会发生此错误。我在以下链接中找到了对此的解释;

http://www.microsoft.com/products/ee/transform.aspx?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1617&EvtSrc=MSSQLServer&EvtID=916

然后我试着像这样实施;

 USE msdb;
 GO
 GRANT CONNECT TO [DBName\MyName] ;

 CREATE DATABASE [DBNAME] ON PRIMARY

使用我创建的脚本(幸运地在此问题发生之前)通过大量消息创建;

  

Msg 15151,Level 16,State 1,Line 1
  找不到用户'DBName \ MyName',因为它不存在或您没有权限   Msg 262,Level 14,State 1,Line 2
  数据库'master'中的CREATE DATABASE权限被拒绝   消息5011,等级14,状态9,行1   用户无权更改数据库'DBName',数据库不存在,或者数据库未处于允许访问检查的状态。
  Msg 5069,Level 16,State 1,Line 1 ......

在这一系列错误之后,我已经失去了兴趣,因此如果有人能就我能解决这个问题的方法给我一些反馈,我将不胜感激。欢呼声。

4 个答案:

答案 0 :(得分:3)

通常,直接向登录授予权限是一个坏主意。您应该在数据库中创建角色对象,并且应该将数据库中的所有权限分配给角色。

然后,当将数据库移动到另一台计算机(或重新安装)时,您必须修改的唯一内容是服务器登录和角色分配。

答案 1 :(得分:1)

一个可能的问题是您有两个数据库实例,因此如果您在Visual studio关闭连接中的服务器资源管理器中打开并访问了数据库,则必须停用一个实例,然后转到Windows服务和停止并重新启动SQL server service (MSSQL)然后转到Management studio并打开您的数据库,它应该打开,您可以从Management studio浏览表格。

答案 2 :(得分:1)

似乎您尝试访问的数据库没有管理员权限。关闭SSMS并通过以管理员身份运行来打开它。

答案 3 :(得分:1)

使用sa登录并展开安全性>登录,右键单击用户名,然后单击属性, 单击“用户映射”,然后选择要用户访问的数据库,然后单击确定