Postgresql

嘗試在我的 linux 系統上導入 sql 文件時權限被拒絕

  • February 23, 2022

我正在嘗試將一個表導入到我已經作為 postgres 超級使用者創建的名為“test”的數據庫中。該文件(即表)位於已安裝的驅動器/文件系統中。

*我已登錄到 postgres 使用者。其他使用者對該文件具有讀、寫和執行權限。

當我使用以下命令時

\i '/run/media/qazizarifulislam/Windows_files/Work/RA/learning-postgres/person.sql'

我收到錯誤 - /run/media/qazizarifulislam/Windows_files/Work/RA/learning-postgres/person.sql: Permission denied

在哪裡,

  • qazizarifulislam 是我的使用者名
  • Windows_files 是文件系統(它是 NFTS,而不是外部 HDD 或 SDD)
  • 其餘部分只是子文件夾。
  • person.sql 是一個文件,其中包含創建表的行,然後具有將記錄插入表中的查詢。(預覽如下圖)

在此處輸入圖像描述

我該如何解決這個問題/導入表格?

問題更深層次,與使用者角色並沒有真正的關係。我的硬碟驅動器沒有安裝到 mnt 目錄中。它們被掛載到一個臨時目錄中。我使用磁碟更改了設置,以便它們自動掛載到 mnt 中。之後一切正常。

您的作業系統使用者需要對該文件的讀取權限以及對路徑中所有目錄的讀取和執行權限。你可能缺少後者。

請注意,我所說的作業系統使用者不是PostgreSQL 使用者(通常postgres),而是啟動的作業系統使用者psql

如果找不到權限問題,請嘗試禁用 SE-Linux。

引用自:https://dba.stackexchange.com/questions/305740