iT邦幫忙

2022 iThome 鐵人賽

DAY 1
1
自我挑戰組

三十天,PG與我系列 第 1

Hello Postgres

  • 分享至 

  • xImage
  •  

Postgres安裝

https://www.postgresql.org/
官網windows/mac下載安裝檔,linux用套件管理器,照步驟操作即可,這裡不多加說明(使用原始碼編譯安裝會比較有難度,但一般使用上並不需要)

Postgres連線設定

1. listen_address參數

這個參數決定了可以從哪些IP位址連線到自己的Postgres資料庫,預設是localhost,也就是跟Postgres安裝的同一台電腦上。
可以打入一到多個ip位址,以逗號做分隔,或是輸入'米字號'代表所有的ip皆可連線
如果是剛安裝好的PostgreSQL,在data directory(好比window預設安裝是在C:\Program Files\PostgreSQL\14\data)找到postgresql.conf設定檔案,修改該條設定之後,重新啟動資料庫以套用。

https://ithelp.ithome.com.tw/upload/images/20220901/20114934GIU9d2UcCc.png

2.pg_hba.conf

這個設定檔預設一樣是放在先前提到的data directory,他決定了資料庫系統可以接受的連線方式。檔案裡面已經有數條內建的規則,我們可以看到每一條規則都是由五個欄位組成,以下簡單說明各個欄位的用途;
TYPE指的是連線的方式,像是原本檔案裏面出現的TYPE local代表使用unix soket domain來連線(是一種POSIX系統特有的通訊方式,允許支援的客戶端和同一台主機上的Postgres對接),host代表走TCP/IP的連線方式。
DATABASE欄位指定適用該筆規則的資料庫,好比說all代表全部的資料。
USER代表規則套用的Postgres使用者,all代表全部的使用者,也可以輸入使用者的名稱或者使用者群組(前面加上加號+。
ADDRESS代表這條規則要套用的來源IP,可以填入IPV4或IPV6的單獨IP或區段。
METHOD代表接受的驗證方法,trust代表信任,可以直接連上;peer代表在做unix socket domain連線的時候可以用系統當前登入的使用者來做身分驗證,當作同名的Postgres User來登入使用,也設定md5/scram-sha-256在登入時送加密過的密碼來做驗證。
https://ithelp.ithome.com.tw/upload/images/20220902/20114934pYdlvCVYNB.png

如果要在開發機上做簡單測試的話,將listen_address設定為米字號,pghba.conf裡面添加
host all all 127.0.0.1/32 trust
這條紀錄,應該就可以直接連上Postgres來做操作。

PSQL command line

我們可以在命令列打開psql這個Postgres內建的互動式工具。系統原先預設就有一個叫做postgres的超級使用者,跟一個同名的空資料庫。在資料庫安裝的系統上透過命令列輸入psql -U postgres以超級使用者登入,如果資料庫正常啟動且連線設定無誤,應該會直接出現如下面圖片的視窗,這時就可以即時透過文字來對資料庫下指令
https://ithelp.ithome.com.tw/upload/images/20220901/20114934DH91VnUMfg.png

當然一個資料庫在使用的時候,如果每次都要在本機端透過超級使用者來進行資料的操作及查詢,在便利性跟安全性上都有蠻大的問題,而如何依照所需的權限建立多組使用者,就是下一篇文章要討論的內容~~


下一篇
Postgre 使用者與權限管理
系列文
三十天,PG與我30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言