MathJax

MathJax-2

MathJax-3

Google Code Prettify

置頂入手筆記

EnterproseDB Quickstart — 快速入門筆記

由於考慮採用 EnterpriseDB 或是直接用 PostgreSQL 的人,通常需要一些入手的資料。這邊紀錄便提供相關快速上手的簡單筆記 ~ 這篇筆記以 資料庫安裝完畢後的快速使用 為目標,基本紀錄登入使用的範例:

2017年2月27日 星期一

PostgreSQL 中設置 Tablespace 的注意事項

在 PostgreSQL 中,也有「像」Oracle 資料庫一樣,有所謂的 Tablespace 一詞。不過兩者的概念著實的不一樣。

2017年2月7日 星期二

EDB 功能 - SQL/Protect

有時候,程式開發會使用參數方式組合出 SQL 指令,再往資料庫提請求。但是如果設計有疏忽,沒有對前端使用者的輸入條件進行完整的檢查,或是資料庫維護者不小心忘記限制好帳號的權限,可能會被有心人士設計出恰當的輸入條件,湊出能逾越一般該有權限所能進行的資料庫指令,這一般被稱作 SQL Injction 攻擊。


PostgreSQL 企業版提供了資料庫端的資料防護機制,SQL/Protect,能夠在資料庫端防止異常的 SQL,例如,對於資料需要受保護的資料表進行資料「全部」撈出來的 SQL SELECT 指令,或是怪怪的條件等等。


SQL/Protect 模組,當我們選定一些資料庫帳戶 User 或是帳戶群組 Group Role(以上兩者,在 PostgreSQL 裡面統稱為 Role ~)之後,能提供以下的功能:
  • 被動紀錄、警示列管帳戶執行可疑活動
  • 主動防止列管帳戶執行可疑活動


而「可疑活動」的界定,則是透過學習模式,預先將該帳號會進行的行為全部演練一次。例如,該帳號會對哪幾個表格輸入/查詢,查詢用到的 SQL 有哪一些型態,等等,全部都預先在 SQL/Protect 學習模式下跑一遍。建立起該帳號的行為比對模式(能存取的表格,能進行的作業,等等)。


學習完之後,只要該帳號發生紀錄過的行為模式「以外」,就會觸發 SQL/Protect 功能。因此這個工具的使用場景,便是針對提供 Application Server 使用帳號進行保護:這類帳號的行為固定,都是由已經開發好的程式進行活動;發生了一般模式之外的行徑,八成是被攻擊,就會受 SQL/Protect 所保護。

以下便紀錄基本的使用筆記:

2017年2月5日 星期日

Postgres 的 UNLOGGED Table 功能

PostgreSQL 資料庫會對交易活動產生 Write-Ahead Log Segment,以達成交易資料庫需要的各種要求。不過產生交易紀錄,在某些程度上,也是會佔用作業系統資源。PostgreSQL 提供了針對個別表格設置不要產生交易紀錄,稱作 Unlogged Table,這麼一來便可以在犧牲資料回復保障的狀況下,加速該表格的讀寫。

2017年2月4日 星期六

在 psql 指令界面下使用變數


作 PostgreSQL 功能驗證時,可能會需要設定臨時的變數使用。那麼在 psql 界面下要怎麼宣告變數?