Postgresql

RDS 交叉表:錯誤:語言 c 的權限被拒絕

  • February 12, 2016

我們目前在生產數據庫中使用 PostgreSQL 9.2,我們希望遷移到使用 PostgreSQL 9.4 的新 RDS 實例。但是,我們需要有創建函式的權限,但是只有超級使用者才能在 RDS 上創建函式,而我的使用者不能被授予超級使用者。

CREATE FUNCTION crosstab50(text, OUT rownumber integer, OUT c1 text,...) 
   RETURNS SETOF record 
   LANGUAGE c 
   STABLE STRICT 
   AS '$libdir/tablefunc', 'crosstab';

但是我們在恢復操作期間遇到了這個錯誤:

ERROR:  permission denied for language c

RDS 不允許您安裝任意 C 函式。這是一個受限的環境。

crosstabtablefunc擴展的一部分。如果它在白名單上,您可能CREATE EXTENSION tablefunc可以添加,但您將無法添加新變體,即使底層 C 函式已載入並獲得批准。

引用自:https://dba.stackexchange.com/questions/128691