搜尋
首頁後端開發Python教學如何在 PostgreSQL 中建立資料庫並始終連接到它而不需要超級使用者存取權限

How to Create a Database and Always Connect to It in PostgreSQL Without Needing Superuser Access

在本指南中,我們將逐步以非超級用戶身份在PostgreSQL 中建立資料庫,分配必要的權限,並確保您可以始終連接到新建立的資料庫,而無需以超級使用者登入。

這對於想要在 PostgreSQL 中管理自己的資料庫而不需要每個操作的管理權限的開發人員或使用者非常有用。

我們將實現什麼:

1.建立一個新資料庫(烏龜示範)。
2.授予非超級使用者角色(testuser)建立和存取資料庫的權限
3.無縫切換到資料庫(tortoise-demo),無需先切換到超級使用者。
4.設定 PostgreSQL 在以 testuser 身分登入時始終自動連線到 tortoise-demo

步驟 1: 向 testuser 授予必要的權限

在以非超級使用者身分建立資料庫之前,您需要確保您的角色(在本例中為 testuser)具有建立資料庫的適當權限。

授予 CREATEDB 權限

預設情況下,新建立的PostgreSQL角色沒有建立資料庫的權限。如果您以超級使用者(例如postgres)身分登錄,則可以向testuser角色授予必要的權限。

1.以超級使用者登入(例如 postgres):

   psql -U postgres

2.授予 CREATEDB 權限給測試使用者:

執行以下 SQL 查詢以允許 testuser 建立新資料庫:

   GRANT CREATEDB TO "testuser";

這將使測試用戶無需超級用戶權限即可建立資料庫。

3.退出超級使用者會話:

   \q

步驟 2:以 testuser 登入並建立資料庫

現在 testuser 角色具有 CREATEDB 權限,您可以以 testuser 身分登入並建立新資料庫。

以測試使用者登入:

要以 testuser 角色登錄,請執行以下指令:

psql -U "testuser" -d postgres -W
  • -U“testuser”選項指定使用者。
  • -d postgres 選項將您連接到 postgres 資料庫(預設管理資料庫)。
  • -W 選項提示輸入您為 testuser 設定的密碼(例如 1234567890)。

建立 tortoise-demo 資料庫:

登入後,建立新的資料庫 tortoise-demo:

CREATE DATABASE "tortoise-demo";

此指令建立一個名為 tortoise-demo 的新資料庫。

設定所有權(可選):

如果要確保 testuser 對資料庫具有完全控制權,可以將資料庫的擁有權指派給 testuser:

   psql -U postgres

此步驟是可選的,但它確保 testuser 角色對 tortoise-demo 資料庫具有完全的管理控制權。

第三步:切換到tortoise-demo資料庫

建立資料庫後,您可能想要切換到新建立的資料庫(tortoise-demo)並開始使用它。

要連接到 tortoise-demo,請執行:

   GRANT CREATEDB TO "testuser";

c 指令將目前會話切換到 tortoise-demo 資料庫。從此時起,您可以執行 SQL 查詢並管理資料庫。

步驟4:自動連接到tortoise-demo,無需每次切換

現在您已經成功建立並切換到 tortoise-demo 資料庫,下一步是自動化此程序。具體來說,我們希望設定 PostgreSQL,以便每次您以 folasayoolayemi 登入時,它都會自動將您連接到 tortoise-demo 資料庫,而無需明確切換。

選項 1:設定 PGDATABASE 環境變量

確保始終連接到 tortoise-demo 資料庫的簡單方法是設定 PGDATABASE 環境變數。該變數告訴 PostgreSQL 連線時預設使用哪個資料庫。

1.為目前會話設定 PGDATABASE:

您可以在目前終端會話中設定環境變量,如下所示:

   \q

這將確保您執行的任何後續 psql 指令預設會自動連線到 tortoise-demo。

2.使更改永久

要使此變更在終端機會話中持續存在,請將匯出指令新增至 shell 的設定檔(.bashrc、.zshrc 等)。

例如,如果您使用 bash,請將以下行加入 ~/.bashrc 檔案:

psql -U "testuser" -d postgres -W

然後,運行:

CREATE DATABASE "tortoise-demo";

這將確保每次開啟新的終端會話時,PostgreSQL 都會自動連線到 tortoise-demo,而無需指定資料庫。

選項 2:始終在連線命令中指定資料庫

如果您不想使用 PGDATABASE 環境變量,您始終可以在 psql 連線命令中指定資料庫名稱:

ALTER DATABASE "tortoise-demo" OWNER TO "testuser";

這樣,您每次連線時都可以直接指定 tortoise-demo 資料庫,無需變更任何配置。

關鍵步驟:

1.授予 CREATEDB 權限:確保 testuser 角色具有建立資料庫所需的權限。
2.建立資料庫:以test使用者登入並建立tortoise-demo資料庫。
3.切換到資料庫:使用c指令切換到tortoise-demo。
4.自動資料庫連線:設定PGDATABASE環境變數預設始終連接到tortoise-demo或在psql指令中明確指定資料庫名稱。

結論:

透過執行以下步驟,您可以以非超級使用者身分在 PostgreSQL 中建立和管理自己的資料庫,而無需每次需要建立新資料庫時都需要超級使用者權限。自動連接到特定資料庫的能力將使您的工作流程更加高效,特別是對於處理特定專案或應用程式的開發人員而言。

感謝您的閱讀...
編碼快樂!

以上是如何在 PostgreSQL 中建立資料庫並始終連接到它而不需要超級使用者存取權限的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Python中的合併列表:選擇正確的方法Python中的合併列表:選擇正確的方法May 14, 2025 am 12:11 AM

Tomergelistsinpython,YouCanusethe操作員,estextMethod,ListComprehension,Oritertools

如何在Python 3中加入兩個列表?如何在Python 3中加入兩個列表?May 14, 2025 am 12:09 AM

在Python3中,可以通過多種方法連接兩個列表:1)使用 運算符,適用於小列表,但對大列表效率低;2)使用extend方法,適用於大列表,內存效率高,但會修改原列表;3)使用*運算符,適用於合併多個列表,不修改原列表;4)使用itertools.chain,適用於大數據集,內存效率高。

Python串聯列表字符串Python串聯列表字符串May 14, 2025 am 12:08 AM

使用join()方法是Python中從列表連接字符串最有效的方法。 1)使用join()方法高效且易讀。 2)循環使用 運算符對大列表效率低。 3)列表推導式與join()結合適用於需要轉換的場景。 4)reduce()方法適用於其他類型歸約,但對字符串連接效率低。完整句子結束。

Python執行,那是什麼?Python執行,那是什麼?May 14, 2025 am 12:06 AM

pythonexecutionistheprocessoftransformingpypythoncodeintoExecutablestructions.1)InternterPreterReadSthecode,ConvertingTingitIntObyTecode,whepythonvirtualmachine(pvm)theglobalinterpreterpreterpreterpreterlock(gil)the thepythonvirtualmachine(pvm)

Python:關鍵功能是什麼Python:關鍵功能是什麼May 14, 2025 am 12:02 AM

Python的關鍵特性包括:1.語法簡潔易懂,適合初學者;2.動態類型系統,提高開發速度;3.豐富的標準庫,支持多種任務;4.強大的社區和生態系統,提供廣泛支持;5.解釋性,適合腳本和快速原型開發;6.多範式支持,適用於各種編程風格。

Python:編譯器還是解釋器?Python:編譯器還是解釋器?May 13, 2025 am 12:10 AM

Python是解釋型語言,但也包含編譯過程。 1)Python代碼先編譯成字節碼。 2)字節碼由Python虛擬機解釋執行。 3)這種混合機制使Python既靈活又高效,但執行速度不如完全編譯型語言。

python用於循環與循環時:何時使用哪個?python用於循環與循環時:何時使用哪個?May 13, 2025 am 12:07 AM

UseeAforloopWheniteratingOveraseQuenceOrforAspecificnumberoftimes; useAwhiLeLoopWhenconTinuingUntilAcIntiment.forloopsareIdealForkNownsences,而WhileLeleLeleLeleLeleLoopSituationSituationsItuationsItuationSuationSituationswithUndEtermentersitations。

Python循環:最常見的錯誤Python循環:最常見的錯誤May 13, 2025 am 12:07 AM

pythonloopscanleadtoerrorslikeinfiniteloops,modifyingListsDuringteritation,逐個偏置,零indexingissues,andnestedloopineflinefficiencies

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中