2017-09-25 61 views
1

我在IIS 10中安裝了Django Web應用程序,我在db.sqlite3中應用了一些模型,但是當我嘗試登錄到我遇到的django/admin/login時錯誤:OperationalError at /admin/login/attempt to write a readonly databaseDjango登錄錯誤:「在IIS中嘗試寫入只讀數據庫」

我在sqlite3 error attempt to write a read only database,Django admin backend,attempt-to-write-a-readonly-database-django找到了解決這個問題的辦法,他們都提到要更改數據庫文件夾的權限。我通過取消選擇Read-only (Only applies to files in folder)來更改該文件夾的權限,但似乎當我點擊Apply按鈕時,它不會做任何更改,因爲我再次檢查該文件夾,並且已激活Read-only選項。

問題:

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

歡迎任何幫助!

回答

1

對於第一個問題,您可以使用icacls。請參閱帖子How to grant permission to users for a directory using command line in Windows?

對於第二個問題,您需要在database上提供write權限。這樣做的一個安全方法是使用您在Django管理工具中使用的用戶名登錄到您的計算機。這樣,如果您是Web應用程序的管理員,那麼您是唯一可以直接訪問db.sqlite3的用戶。

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

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

  1. 在你的Django Web應用程序與創建超級用戶:

    python manage.py createsuperuser 
    

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

  2. 搜索您的db.sqlite3並執行右鍵單擊,然後點擊屬性選項。

  3. 選擇安全選項卡,您將看到具有相應權限的組或用戶名。通常情況下,系統和管理員都檢查了所有特權,但除非您是其中之一,否則您將不得不修改用戶組,因爲此組中是您用來登錄到計算機的用戶名。
  4. 選擇「用戶」組,並在Permissions for Users框中驗證「寫入」選項在「允許」列中沒有選中的標記。
  5. 單擊編輯選項,選擇用戶組,然後選擇用戶權限框中的寫入選項。點擊應用,然後確定,然後再次應用並確定。
  6. 返回到您的Django管理登錄頁面,輸入您創建爲超級用戶的用戶名。
+0

我該怎麼做? –

+0

@AjjandroBautistaRamos,你正在使用Windows嗎? –

+0

是的,我試圖在PowerShell中查找等效的模式。 –

相關問題