Unexpected error in grant/revoke script
| От | Webb Sprague | 
|---|---|
| Тема | Unexpected error in grant/revoke script | 
| Дата | |
| Msg-id | b11ea23c0803141000i15f497edj53c950f81fd2fc9f@mail.gmail.com обсуждение исходный текст  | 
		
| Ответы | 
                	
            		Re: Unexpected error in grant/revoke script
            		
            		 Re: Unexpected error in grant/revoke script  | 
		
| Список | pgsql-general | 
Hi all,
I have the following function:
create function new_student (text) returns text as $$
        declare
                wtf integer := 1;
        begin
        execute 'create schema ' || $1;
        execute 'create role ' || $1 || 'LOGIN';
        execute 'revoke all on schema public from ' || $1;
        execute 'grant select on schema public to ' || $1;
        execute 'grant all on schema ' || $1 || ' to ' || $1 || '
with grant option';
        return $1;
end;
$$ language plpgsql
;
When I run this with select new_student('foobar'), I get the following
error message
oregon=# \i new_student.sql
CREATE FUNCTION
oregon=# select new_student('foobar');
ERROR:  role "foobar" does not exist
CONTEXT:  SQL statement "revoke all on schema public from foobar"
PL/pgSQL function "new_student" line 6 at EXECUTE statement
However, I can run the following from the command line just fine:
# create role foobar login;
# revoke all on schema public from foobar;
Can anyone explain and help me fix?  TIA.
		
	В списке pgsql-general по дате отправления: