簡體   English   中英

Django 登錄錯誤:在 IIS 中“嘗試寫入只讀數據庫”

[英]Django login error: “attempt to write a readonly database” in IIS

我在 IIS 10 中安裝了一個 Django Web 應用程序,並將一些模型應用到db.sqlite3但是當我嘗試登錄 django/admin/login 時遇到錯誤: OperationalError at /admin/login/attempt to write a readonly database

我在sqlite3 錯誤嘗試寫入只讀數據庫Django 管理后端嘗試寫入-只讀數據庫-django以及所有這些都提到更改數據庫文件夾的權限中找到了解決此問題的方法。 我通過取消選擇“ Read-only (Only applies to files in folder) ”選項Read-only (Only applies to files in folder)更改該文件夾的權限,但似乎當我點擊“ Apply按鈕時它沒有進行任何更改,因為我再次檢查該文件夾並且它具有Read-only激活的選項。

問題:

  1. 有沒有辦法通過powershell中的任何命令終端更改此權限?
  2. 我是否必須在 IIS 中執行任何額外步驟才能使db.sqlite3工作?

歡迎任何幫助!

對於您的第一個問題,您可以使用icacls 請參閱如何在 Windows 中使用命令行向用戶授予目錄權限?

對於您的第二個問題,您需要提供對databasewrite權限。 執行此操作的一種安全方法是使用您在 Django 管理工具中登錄計算機時使用的相同用戶名。 這樣,如果您是 Web 應用程序的管理員,那么您就是唯一可以直接訪問db.sqlite3

不建議授予其他用戶在db.sqlite3寫入權限,因為此數據庫通常存儲您的 Web 應用程序的正確功能所必需的數據,即 Django 模型存儲在此數據庫中,如果它們被更改,則您的 Web應用程序可能會停止正常工作。

請按照以下步驟解決嘗試在 IIS 中寫入只讀數據庫的 Django 登錄錯誤:

  1. 使用以下命令在 Django Web 應用程序中創建超級用戶:

     python manage.py createsuperuser

    用戶名必須與您用於登錄計算機的用戶名相同。 密碼不必與您用於登錄機器的用戶名密碼相同。

  2. 搜索您的db.sqlite3並右鍵單擊,然后點擊 Properties 選項。

  3. 選擇安全選項卡,您將看到具有各自權限的組或用戶名。 通常,SYSTEM 和Administrators 會檢查所有權限,但除非您是其中之一,否則您必須修改Users 組,因為在該組中是您用於登錄計算機的用戶名。
  4. 選擇用戶組並在Permissions for Users框中驗證寫入選項在允許列中沒有選中標記。
  5. 單擊“編輯”選項,選擇“用戶”組,然后在“用戶權限”框中選擇“寫入”選項。 單擊應用然后確定,然后再次應用和確定。
  6. 返回您的 Django 管理登錄頁面,輸入您作為超級用戶創建的用戶名。

我在 IIS 上遇到了這個問題並通過這種方式解決了:

首先轉到此鏈接(從 10:30 到 11:12 觀看)並創建 Group User 。

然后按照下圖中的數字:

在此處輸入圖像描述並必須重新啟動 Web 服務。

如果此后您收到“無法打開數據庫文件”錯誤,您可以打開此鏈接並查看@Arkady 的第四個解決方案。

.------------------------------------------------- -------------------------------

@Arkady 說:我在 IIS 中打開 Sqlite 數據庫時遇到問題

(0x80004005): unable to open database file unable to open database file

幫助我解決問題的是將應用程序池的“身份”更改為“LocalSystem”

應用程序池 -> DefaultAppPool(或您正在使用的另一個池)-> 高級設置 -> 身份 -> LocalSystem

希望它會節省某人的時間......

.------------------------------------------------- ----------------------------------

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM