亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 後端開發(fā) Python教學(xué) 如何在 PostgreSQL 中建立資料庫並始終連接到它而不需要超級使用者存取權(quán)限

如何在 PostgreSQL 中建立資料庫並始終連接到它而不需要超級使用者存取權(quán)限

Dec 27, 2024 am 04:48 AM

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

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

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

我們將實現(xiàn)什麼:

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

步驟 1: 向 testuser 授予必要的權(quán)限

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

授予 CREATEDB 權(quán)限

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

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

   psql -U postgres

2.授予 CREATEDB 權(quán)限給測試使用者:

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

   GRANT CREATEDB TO "testuser";

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

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

   \q

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

現(xiàn)在 testuser 角色具有 CREATEDB 權(quán)限,您可以以 testuser 身分登入並建立新資料庫。

以測試使用者登入:

要以 testuser 角色登錄,請執(zhí)行以下指令:

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

建立 tortoise-demo 資料庫:

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

CREATE DATABASE "tortoise-demo";

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

設(shè)定所有權(quán)(可選):

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

   psql -U postgres

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

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

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

要連接到 tortoise-demo,請執(zhí)行:

   GRANT CREATEDB TO "testuser";

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

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

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

選項 1:設(shè)定 PGDATABASE 環(huán)境變量

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

1.為目前會話設(shè)定 PGDATABASE:

您可以在目前終端會話中設(shè)定環(huán)境變量,如下所示:

   \q

這將確保您執(zhí)行的任何後續(xù) psql 指令預(yù)設(shè)會自動連線到 tortoise-demo。

2.使更改永久

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

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

psql -U "testuser" -d postgres -W

然後,運行:

CREATE DATABASE "tortoise-demo";

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

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

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

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

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

關(guān)鍵步驟:

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

結(jié)論:

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

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

以上是如何在 PostgreSQL 中建立資料庫並始終連接到它而不需要超級使用者存取權(quán)限的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Python類中的多態(tài)性 Python類中的多態(tài)性 Jul 05, 2025 am 02:58 AM

多態(tài)是Python面向?qū)ο缶幊讨械暮诵母拍?,指“一種接口,多種實現(xiàn)”,允許統(tǒng)一處理不同類型的對象。 1.多態(tài)通過方法重寫實現(xiàn),子類可重新定義父類方法,如Animal類的speak()方法在Dog和Cat子類中有不同實現(xiàn)。 2.多態(tài)的實際用途包括簡化代碼結(jié)構(gòu)、增強可擴展性,例如圖形繪製程序中統(tǒng)一調(diào)用draw()方法,或遊戲開發(fā)中處理不同角色的共同行為。 3.Python實現(xiàn)多態(tài)需滿足:父類定義方法,子類重寫該方法,但不要求繼承同一父類,只要對象實現(xiàn)相同方法即可,這稱為“鴨子類型”。 4.注意事項包括保持方

Python函數(shù)參數(shù)和參數(shù) Python函數(shù)參數(shù)和參數(shù) Jul 04, 2025 am 03:26 AM

參數(shù)(parameters)是定義函數(shù)時的佔位符,而傳參(arguments)是調(diào)用時傳入的具體值。 1.位置參數(shù)需按順序傳遞,順序錯誤會導(dǎo)致結(jié)果錯誤;2.關(guān)鍵字參數(shù)通過參數(shù)名指定,可改變順序且提高可讀性;3.默認(rèn)參數(shù)值在定義時賦值,避免重複代碼,但應(yīng)避免使用可變對像作為默認(rèn)值;4.args和*kwargs可處理不定數(shù)量的參數(shù),適用於通用接口或裝飾器,但應(yīng)謹(jǐn)慎使用以保持可讀性。

解釋Python發(fā)電機和迭代器。 解釋Python發(fā)電機和迭代器。 Jul 05, 2025 am 02:55 AM

迭代器是實現(xiàn)__iter__()和__next__()方法的對象,生成器是簡化版的迭代器,通過yield關(guān)鍵字自動實現(xiàn)這些方法。 1.迭代器每次調(diào)用next()返回一個元素,無更多元素時拋出StopIteration異常。 2.生成器通過函數(shù)定義,使用yield按需生成數(shù)據(jù),節(jié)省內(nèi)存且支持無限序列。 3.處理已有集合時用迭代器,動態(tài)生成大數(shù)據(jù)或需惰性求值時用生成器,如讀取大文件時逐行加載。注意:列表等可迭代對像不是迭代器,迭代器到盡頭後需重新創(chuàng)建,生成器只能遍歷一次。

python`@classmethod'裝飾師解釋了 python`@classmethod'裝飾師解釋了 Jul 04, 2025 am 03:26 AM

類方法是Python中通過@classmethod裝飾器定義的方法,其第一個參數(shù)為類本身(cls),用於訪問或修改類狀態(tài)。它可通過類或?qū)嵗{(diào)用,影響的是整個類而非特定實例;例如在Person類中,show_count()方法統(tǒng)計創(chuàng)建的對像數(shù)量;定義類方法時需使用@classmethod裝飾器並將首參命名為cls,如change_var(new_value)方法可修改類變量;類方法與實例方法(self參數(shù))、靜態(tài)方法(無自動參數(shù))不同,適用於工廠方法、替代構(gòu)造函數(shù)及管理類變量等場景;常見用途包括從

如何處理Python中的API身份驗證 如何處理Python中的API身份驗證 Jul 13, 2025 am 02:22 AM

處理API認(rèn)證的關(guān)鍵在於理解並正確使用認(rèn)證方式。 1.APIKey是最簡單的認(rèn)證方式,通常放在請求頭或URL參數(shù)中;2.BasicAuth使用用戶名和密碼進(jìn)行Base64編碼傳輸,適合內(nèi)部系統(tǒng);3.OAuth2需先通過client_id和client_secret獲取Token,再在請求頭中帶上BearerToken;4.為應(yīng)對Token過期,可封裝Token管理類自動刷新Token;總之,根據(jù)文檔選擇合適方式,並安全存儲密鑰信息是關(guān)鍵。

什麼是python魔法方法或dunder方法? 什麼是python魔法方法或dunder方法? Jul 04, 2025 am 03:20 AM

Python的magicmethods(或稱dunder方法)是用於定義對象行為的特殊方法,它們以雙下劃線開頭和結(jié)尾。 1.它們使對象能夠響應(yīng)內(nèi)置操作,如加法、比較、字符串表示等;2.常見用例包括對像初始化與表示(__init__、__repr__、__str__)、算術(shù)運算(__add__、__sub__、__mul__)及比較運算(__eq__、__lt__);3.使用時應(yīng)確保其行為符合預(yù)期,例如__repr__應(yīng)返回可重構(gòu)對象的表達(dá)式,算術(shù)方法應(yīng)返回新實例;4.應(yīng)避免過度使用或以令人困惑的方

Python內(nèi)存管理如何工作? Python內(nèi)存管理如何工作? Jul 04, 2025 am 03:26 AM

Pythonmanagesmemoryautomaticallyusingreferencecountingandagarbagecollector.Referencecountingtrackshowmanyvariablesrefertoanobject,andwhenthecountreacheszero,thememoryisfreed.However,itcannothandlecircularreferences,wheretwoobjectsrefertoeachotherbuta

描述Python中的Python垃圾收集。 描述Python中的Python垃圾收集。 Jul 03, 2025 am 02:07 AM

Python的垃圾回收機制通過引用計數(shù)和周期性垃圾收集來自動管理內(nèi)存。其核心方法是引用計數(shù),當(dāng)對象的引用數(shù)為零時立即釋放內(nèi)存;但無法處理循環(huán)引用,因此引入了垃圾收集模塊(gc)來檢測並清理循環(huán)。垃圾回收通常在程序運行中引用計數(shù)減少、分配與釋放差值超過閾值或手動調(diào)用gc.collect()時觸發(fā)。用戶可通過gc.disable()關(guān)閉自動回收、gc.collect()手動執(zhí)行、gc.set_threshold()調(diào)整閾值以實現(xiàn)控制。並非所有對像都參與循環(huán)回收,如不包含引用的對象由引用計數(shù)處理,內(nèi)置

See all articles