2017-12-05 7 views
0

포스트 그레스 권한을 부여 (오히려 식별자보다) 데이터를 사용하는 방법 :내가 (테이블의 삽입에 트리거로) 다음과 같은 기능을 사용하려면

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

에서 좋은 생각이다 의심 .. @VaoTsun 당신이 정교한 수 –

+0

? 함수 안에서 동적으로 이것을 어떻게합니까? – 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; 

하지만 그것은 단지 동적

일반
관련 문제