小编Beg*_*ner的帖子

Postgresql 使用函数创建用户

我目前无法在函数中创建 postgresql 数据库用户。背景:我有一个 Java Swing 应用程序,我的目标是开发一个菜单来创建、更改和删除数据库用户。为了让它更安全,我创建了一个角色“usermanagement”,只有这个角色的成员才能使用该功能来创建用户。该角色还包含正确的“createuser”

查询运行没有任何问题,但它不会创建新用户......所以我不知道它有什么问题。

这就是我尝试使用我的功能的方式:

SELECT create_databaseuser(v_username := 'thisname' ,v_password := 'pwpwpw');
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙吗?

这是我的代码:

-- Function: public.create_databaseuser(text, text)

-- DROP FUNCTION public.create_databaseuser(text, text);

CREATE OR REPLACE FUNCTION public.create_databaseuser(
    v_username text,
    v_password text)
  RETURNS numeric AS
$BODY$
DECLARE
    r_id numeric;
BEGIN
    --CREATE ROLE v_username LOGIN
    --PASSWORD 'v_password' NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

    EXECUTE 'CREATE USER ' || v_username || ' WITH PASSWORD ' || v_password;
-- Alternative:CREATE ROLE v_username LOGIN PASSWORD v_password NOSUPERUSER INHERIT NOCREATEDB NOCREATEROLE NOREPLICATION;

    return …
Run Code Online (Sandbox Code Playgroud)

postgresql function user-management

4
推荐指数
1
解决办法
2357
查看次数

标签 统计

function ×1

postgresql ×1

user-management ×1