【问题标题】:Failed to update database because the database is read only更新数据库失败,因为数据库是只读的
【发布时间】:2013-12-26 21:29:04
【问题描述】:

每次我尝试将数据保存到数据库时都会出现此消息。

Failed to update database because the database is read only

注意:此错误仅在应用程序安装到 C 盘时出现。

前端:VB.NET

后端:SQL Server

有什么办法可以解决这个问题吗? 或者有什么办法限制用户在C盘上安装应用程序?

【问题讨论】:

  • 你的操作系统是什么?它安装在 C: 驱动器的哪个位置?
  • Windows 7 安装到 C:
  • 我不确定这里发生了什么,但这看起来像是 sql 错误,而不是操作系统错误。换句话说,它可能与您的“C”驱动器无关(我怀疑您的 C 驱动器处于“只读”状态)。尝试运行这个... exec sp_dboption 'databasename','read only'
  • 我可以做到这一点.. 但用户可能不知道要做所有这些.. 知道为什么会这样吗?
  • exec sp_dboption 'databasename','read only' 允许您检查数据库是否处于“只读”模式。如果是,您可以将其设置为 READ_WRITE... ALTER DATABASE 数据库名称 SET READ_WRITE WITH NO_WAIT

标签: sql sql-server database vb.net readonly


【解决方案1】:

我会检查文件系统权限。我想您谈论的是 SQL 服务器文件数据库。您收到该消息是因为尝试访问您的文件数据库的帐户没有这样做的文件系统权限。

  1. 为了确认我的建议,您允许所有人以完全权限访问特定目录。

  2. 然后,您必须检查尝试进行实际访问的帐户是什么。可能是系统帐户(用户 ASPNET 或 NETWORK SERVICE)。您必须为特定帐户授予相应的权限。

  3. 然后,重新启动 IIS。

如果您想为分布式独立应用程序执行此操作。然后,这些权限必须在安装程序的每台机器上更改。为了避免让用户大惊小怪,安装程序应该这样做。我不是安装程序方面的专家,但即使是最简单的程序,在征得系统管理员的批准后,您也可以选择执行此操作。我想您可以在安装程序期间构建一个自定义操作,这将更改特定文件夹的权限,也许可以使用xcacls.exe

希望我能帮上忙!

【讨论】:

  • 是的.. 但是安装后的每个用户都应该更改数据库的权限。这对他们来说很忙……他们可能没有那么多知识。此应用程序是独立的。
  • 或者您的安装程序可能会更改权限,当然需要征得 PC 管理员的批准...
  • 很高兴能提供帮助。请为答案投票,以便其他遇到您问题的用户知道解决方案...
  • 安装程序是vb安装项目..有没有解决这个问题的办法?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 2011-08-08
  • 2014-06-09
  • 1970-01-01
  • 2023-03-09
相关资源
最近更新 更多