これはPGroonga 2.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。

GRANT USAGE ON SCHEME pgroonga

pgroongaスキーマは2.0.0から非推奨です。新しく書くコードではpgroongaスキーマではなくカレントスキーマに定義されているpgroonga_*関数・演算子・演算子クラスを使ってください。

PGroongaはpgroongaスキーマに関数・演算子・演算子クラスなどを定義します。デフォルトではスーパーユーザーしかpgroongaスキーマの機能を使えません。スーパーユーザーはPGroongaを使いたいすべての一般ユーザーにpgroongaスキーマのUSAGE権限を与えなければいけません。

このドキュメントは一般ユーザーにpgroongaスキーマのUSAGE権限を与える方法を説明します。

一般ユーザーを作成

最初にCREATE USERで一般ユーザーaliceを作成します。<

CREATE USER alice;

この時点では、一般ユーザーalicepgroongaスキーマのどのオブジェクトにもアクセスできません。例えば、alicepgroonga.snippet_html関数を使うことができません。

SELECT pgroonga.snippet_html('PGroonga is fast', Array['fast']);
-- ERROR:  permission denied for schema pgroonga
-- LINE 1: SELECT pgroonga.snippet_html('PGroonga is fast', Array['fast...
--                ^

alicepgroongaスキーマのUSAGE権限を与える必要があります。

pgroongaスキーマのUSAGE権限を与える

GRANTを使って一般ユーザーalicepgroongaスキーマのUSAGE権限を与えることができます。

GRANT USAGE ON SCHEMA pgroonga TO alice;

これでalicepgroongaスキーマのすべての機能を使えるようになりました。例えば、alicepgroonga.snippet_html関数を使うことができます。

SELECT pgroonga.snippet_html('PGroonga is fast', Array['fast']);
--                     snippet_html                     
-- -----------------------------------------------------
--  {"PGroonga is <span class=\"keyword\">fast</span>"}
-- (1 row)