Postgres:如何声明用户类型变量?
Postgres: how to declare user type variable?
我想写一个小脚本来授予权限。如果我直接在每个查询中输入用户,脚本就可以工作,但使用变量更有效,但我找不到将其声明为什么类型。
DO $$
DECLARE
usr ??? := myuser;
BEGIN
GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA public
TO usr;
GRANT ALL PRIVILEGES ON SCHEMA public to usr;
END $$
为此您需要动态 SQL:
DO
$$DECLARE
usr text := 'myuser' ;
BEGIN
EXECUTE format('GRANT SELECT, INSERT, UPDATE, DELETE '
'ON ALL TABLES IN SCHEMA public '
'TO %I',
usr);
END;$$;
第二个语句的工作方式类似。
我想写一个小脚本来授予权限。如果我直接在每个查询中输入用户,脚本就可以工作,但使用变量更有效,但我找不到将其声明为什么类型。
DO $$
DECLARE
usr ??? := myuser;
BEGIN
GRANT SELECT, INSERT, UPDATE, DELETE
ON ALL TABLES IN SCHEMA public
TO usr;
GRANT ALL PRIVILEGES ON SCHEMA public to usr;
END $$
为此您需要动态 SQL:
DO
$$DECLARE
usr text := 'myuser' ;
BEGIN
EXECUTE format('GRANT SELECT, INSERT, UPDATE, DELETE '
'ON ALL TABLES IN SCHEMA public '
'TO %I',
usr);
END;$$;
第二个语句的工作方式类似。