Skip to content

Incorrect EFFECTIVE_USER in functions #8295

Open
@asfernandes

Description

@asfernandes
isql -term ! -user dbo
create database 't.fdb' user dbo!

create or alter function oi returns varchar(15) sql security invoker as
begin return rdb$get_context('SYSTEM', 'EFFECTIVE_USER'); end!

create or alter function od returns varchar(15) sql security definer as
begin return rdb$get_context('SYSTEM', 'EFFECTIVE_USER'); end!

create or alter procedure oi returns (o varchar(15)) sql security invoker as
begin o = rdb$get_context('SYSTEM', 'EFFECTIVE_USER'); end!

create or alter procedure od returns (o varchar(15)) sql security definer as
begin o = rdb$get_context('SYSTEM', 'EFFECTIVE_USER'); end!

grant execute on function oi to public!
grant execute on function od to public!
grant execute on procedure oi to public!
grant execute on procedure od to public!
isql t.fdb -term ! -user u1

-- Correct: U1
execute procedure oi!

-- Correct: DBO
execute procedure od!


-- Correct: U1
select oi() from rdb$database!

-- Incorrect: U1
select od() from rdb$database!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions