【发布时间】:2017-04-20 18:43:16
【问题描述】:
我正在寻找一种方法来创建一个函数,该函数接受用户名和密码的两个参数并使用它创建一个只读角色。我尝试过类似的方法:
create or replace function create_user_readonly (
unm varchar,
pwd varchar
)
returns varchar(10) as $$
begin
create role unm login password @pwd;
return 'success';
end;
$$ language plpgsql;
这会引发错误:
[42601] 错误:“@”位置或附近的语法错误:151
我曾想过使用动态 SQL 来构造查询,但在这里遇到了这个问题 (https://www.postgresql.org/docs/9.1/static/plpgsql-statements.html):
参数符号的另一个限制是它们只能在 SELECT、INSERT、UPDATE 和 DELETE 命令。在其他语句类型中 (通常称为实用程序语句),您必须以文本方式插入值 即使它们只是数据值。
【问题讨论】:
标签: sql postgresql plpgsql