在本指南中,我們將逐步以非超級用戶身份在PostgreSQL 中建立資料庫,分配必要的權限,並確保您可以始終連接到新建立的資料庫,而無需以超級使用者登入。
這對於想要在 PostgreSQL 中管理自己的資料庫而不需要每個操作的管理權限的開發人員或使用者非常有用。
1.建立一個新資料庫(烏龜示範)。
2.授予非超級使用者角色(testuser)建立和存取資料庫的權限。
3.無縫切換到資料庫(tortoise-demo),無需先切換到超級使用者。
4.設定 PostgreSQL 在以 testuser 身分登入時始終自動連線到 tortoise-demo。
在以非超級使用者身分建立資料庫之前,您需要確保您的角色(在本例中為 testuser)具有建立資料庫的適當權限。
預設情況下,新建立的PostgreSQL角色沒有建立資料庫的權限。如果您以超級使用者(例如postgres)身分登錄,則可以向testuser角色授予必要的權限。
1.以超級使用者登入(例如 postgres):
psql -U postgres
2.授予 CREATEDB 權限給測試使用者:
執行以下 SQL 查詢以允許 testuser 建立新資料庫:
GRANT CREATEDB TO "testuser";
這將使測試用戶無需超級用戶權限即可建立資料庫。
3.退出超級使用者會話:
\q
現在 testuser 角色具有 CREATEDB 權限,您可以以 testuser 身分登入並建立新資料庫。
要以 testuser 角色登錄,請執行以下指令:
psql -U "testuser" -d postgres -W
登入後,建立新的資料庫 tortoise-demo:
CREATE DATABASE "tortoise-demo";
此指令建立一個名為 tortoise-demo 的新資料庫。
如果要確保 testuser 對資料庫具有完全控制權,可以將資料庫的擁有權指派給 testuser:
psql -U postgres
此步驟是可選的,但它確保 testuser 角色對 tortoise-demo 資料庫具有完全的管理控制權。
建立資料庫後,您可能想要切換到新建立的資料庫(tortoise-demo)並開始使用它。
要連接到 tortoise-demo,請執行:
GRANT CREATEDB TO "testuser";
c 指令將目前會話切換到 tortoise-demo 資料庫。從此時起,您可以執行 SQL 查詢並管理資料庫。
現在您已經成功建立並切換到 tortoise-demo 資料庫,下一步是自動化此程序。具體來說,我們希望設定 PostgreSQL,以便每次您以 folasayoolayemi 登入時,它都會自動將您連接到 tortoise-demo 資料庫,而無需明確切換。
確保始終連接到 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,而無需指定資料庫。
如果您不想使用 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中文網其他相關文章!