

RDS-postgresqlで、以下のようなユーザ定義関数を登録したいのですが、superuser権限がないため、エラーになってしまいます。

[code]

    db=> CREATE OR REPLACE FUNCTION "public".bittoint4(bit) RETURNS int4 AS 'bittoint4' LANGUAGE 'internal';
    ERROR:  permission denied for language internal
    
[/code]

rdsadminのロールを付与しないと、上記は正常終了できなさそうなのですが、RDSではrdsadminのロール付与もできなさそうです。

[code]

    rds-db=> grant rdsadmin to postgres;
    ERROR:  must be superuser to alter superusers
    
[/code]

すみませんが、回避策ご存じの方おりましたらご教授頂けないでしょうか。


CC BY-SA 4.0
2019-10-15T05:06:35.067
59715
2019-10-16T04:46:45.580
2019-10-15T05:16:15.300
2238
36209
question
aws postgresql
RDSのユーザ定義関数が登録できない件について


plpgsqlで同様の内容に書き換えて、定義することで対応できました。

[code]

    CREATE OR REPLACE FUNCTION square_root(precision bit) RETURNS int AS $$
    BEGIN
        RETURN precision;
    END;
    $$ LANGUAGE plpgsql;
    
[/code]


CC BY-SA 4.0
2019-10-16T04:46:45.580
59737
2019-10-16T04:46:45.580
36211
59715
answer