2017-12-05 5 views
0

postgresの権限を付与する(という識別子以外)のデータを使用する方法:は、私は(表の挿入上のトリガとして)次の関数を使用したい

ERROR: syntax error at or near "." 
LINE 3: GRANT ALL ON DATABASE testdb TO NEW.username; 

CREATE OR REPLACE FUNCTION insert_authid_fn() RETURNS trigger AS $$ 
BEGIN 
    GRANT ALL ON DATABASE testdb TO NEW.username; 
    RETURN NEW; 
END; 
$$ LANGUAGE plpgsql; 

私はエラーを取得します

New.usernameは識別子ではなく値であるためです。

どうすれば実現できますか?GRANT?構文的に

+0

一般的には良いアイデアです疑う... –

+0

@VaoTsunあなたは手の込んだてもらえますか?関数内でこれをどのように動的に行うのですか? – fadedbee

+0

作業コードで答えました。 –

答えて

1

:?

CREATE OR REPLACE FUNCTION insert_authid_fn() RETURNS trigger AS $$ 
BEGIN 
    execute format ('GRANT ALL ON DATABASE testdb TO %I',NEW.username); 
    RETURN NEW; 
END; 
$$ LANGUAGE plpgsql; 

しかし、私はそれだけで動的に

関連する問題