【问题标题】:The database [dbName] is not accessible. (ObjectExplorer)无法访问数据库 [dbName]。 (对象浏览器)
【发布时间】:2019-01-03 16:34:15
【问题描述】:

我在使用 SQL Server 2008 R2 时遇到问题。

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

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

无法访问数据库 [dbName]。 (对象浏览器)

当我尝试选择下拉选项以查看 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

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

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

在这一系列错误之后,我已经陷入困境,因此如果有人能给我一些关于我可以做些什么来解决这个问题的反馈,我将不胜感激。干杯。

【问题讨论】:

  • 你真的有一个名为“DBName”的域吗?那不应该是“ServerName”吗?否则,“DBName\MyName”不是有效的登录名,也可能不是有效的数据库用户名。
  • @RBarryYoung 感谢您的回复,DBName 是我尝试访问的数据库的名称。但由于没有正确的命名实例,它拒绝我访问数据库。

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


【解决方案1】:

使用 sa 登录并展开 Security > Login,右键单击用户名,然后单击属性, 单击用户映射并选择您希望用户访问的数据库,然后确定

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 嗯,基本上,计算机连接到服务器,但我的个人 PC 依赖于该服务器。但是当我下班时,发生了一个错误,只允许我以所有者身份登录,因此我必须授予所有者权限,以便我能够看到我之前所做的一切。此外,在阅读了有关角色分配的信息后,这就是我所做的(不知道正确的术语是什么)。
    • @gregory.bmclub,你让自己成为 SA 了吗?例如。本地管理员组的一部分?
    • 我似乎无法创建 SA,因为它说我没有这样做的权限。我也无法创建数据库。
    • 您需要使用已经在sysadmin 服务器角色中的用户名登录。这通常包括本地Administrators 组,因此通常如果您是本地管理员,您应该没问题。如果你不是,你需要找人来代替。
    • 感谢您的回复。你有我可以关注的博客或指南吗,因为老实说,我对我应该做的事情一无所知!当我尝试添加服务器角色或登录时,它只会抛出此错误消息; User does not have permission to perform this action. (Microsoft SQL Server, Error: 15247).
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 2015-06-06
        • 1970-01-01
        • 1970-01-01
        • 2022-12-04
        • 2018-03-20
        相关资源
        最近更新 更多