
If you were logged in you would be able to see more operations.
|
|
|
File Attachments:
|
None
|
Image Attachments:
|
|
|
QA Status: |
Done successfully
|
Consider following script (correct here name of alias - i used 'employee'):
===
connect 'localhost:employee' user 'SYSDBA' password 'masterkey';
create user foo password '123';
create user bar password '456';
commit;
create role worker;
create role manager;
commit;
grant worker to foo;
grant manager to bar;
commit;
--connect 'localhost:employee' user 'BAR' password '456';
connect 'localhost:employee' user 'BAR' password '456' role manager;
set list on;
select rdb$get_context('SYSTEM', 'DB_NAME') as where_i_am, mon$user who_am_i, mon$role whats_my_rtole
from mon$attachments
where mon$attachment_id = current_connection;
set term ^;
execute block returns(where_i_am varchar(255), who_am_i varchar(31), whats_my_role varchar(31)) as
declare v_sttm varchar(2048);
declare v_user varchar(31) = 'foo';
declare v_pswd varchar(31) = '123';
declare v_role varchar(31) = 'WORKER';
declare v_extd varchar(255);
begin
v_extd = 'localhost:' || rdb$get_context('SYSTEM', 'DB_NAME');
v_sttm = 'select rdb$get_context(''SYSTEM'', ''DB_NAME''), mon$user, mon$role from mon$attachments where mon$attachment_id = current_connection';
execute statement
v_sttm
on external v_extd
as user v_user password v_pswd role v_role
into
where_i_am, who_am_i, whats_my_role;
suspend;
end
^
set term ;^
commit;
connect 'localhost:employee' user 'SYSDBA' password 'masterkey';
drop user foo;
drop user bar;
commit;
revoke all on all from foo;
revoke all on all from bar;
drop role worker;
drop role manager;
commit;
show version;
===
On 2.5.9.27126 out will be as expected:
WHERE_I_AM C:\MIX\FIREBIRD\FB25\EXAMPLES\EMPBUILD\EMPLOYEE.FDB
WHO_AM_I BAR
WHATS_MY_RTOLE MANAGER
WHERE_I_AM C:\MIX\FIREBIRD\FB25\EXAMPLES\EMPBUILD\EMPLOYEE.FDB
WHO_AM_I FOO
WHATS_MY_ROLE WORKER
On 3.0.5.33086 and 4.0.0.1378:
WHERE_I_AM C:\MIX\firebird\fb40\examples\empbuild\employee.fdb
WHO_AM_I BAR
WHATS_MY_RTOLE MANAGER
WHERE_I_AM C:\MIX\FIREBIRD\FB40\EXAMPLES\EMPBUILD\EMPLOYEE.FDB
WHO_AM_I FOO
WHATS_MY_ROLE NONE <<<<<<<<<<<<<<<<<<<<<<<<<<< [ Why ? ] <<<<<
|
Description
|
Consider following script (correct here name of alias - i used 'employee'):
===
connect 'localhost:employee' user 'SYSDBA' password 'masterkey';
create user foo password '123';
create user bar password '456';
commit;
create role worker;
create role manager;
commit;
grant worker to foo;
grant manager to bar;
commit;
--connect 'localhost:employee' user 'BAR' password '456';
connect 'localhost:employee' user 'BAR' password '456' role manager;
set list on;
select rdb$get_context('SYSTEM', 'DB_NAME') as where_i_am, mon$user who_am_i, mon$role whats_my_rtole
from mon$attachments
where mon$attachment_id = current_connection;
set term ^;
execute block returns(where_i_am varchar(255), who_am_i varchar(31), whats_my_role varchar(31)) as
declare v_sttm varchar(2048);
declare v_user varchar(31) = 'foo';
declare v_pswd varchar(31) = '123';
declare v_role varchar(31) = 'WORKER';
declare v_extd varchar(255);
begin
v_extd = 'localhost:' || rdb$get_context('SYSTEM', 'DB_NAME');
v_sttm = 'select rdb$get_context(''SYSTEM'', ''DB_NAME''), mon$user, mon$role from mon$attachments where mon$attachment_id = current_connection';
execute statement
v_sttm
on external v_extd
as user v_user password v_pswd role v_role
into
where_i_am, who_am_i, whats_my_role;
suspend;
end
^
set term ;^
commit;
connect 'localhost:employee' user 'SYSDBA' password 'masterkey';
drop user foo;
drop user bar;
commit;
revoke all on all from foo;
revoke all on all from bar;
drop role worker;
drop role manager;
commit;
show version;
===
On 2.5.9.27126 out will be as expected:
WHERE_I_AM C:\MIX\FIREBIRD\FB25\EXAMPLES\EMPBUILD\EMPLOYEE.FDB
WHO_AM_I BAR
WHATS_MY_RTOLE MANAGER
WHERE_I_AM C:\MIX\FIREBIRD\FB25\EXAMPLES\EMPBUILD\EMPLOYEE.FDB
WHO_AM_I FOO
WHATS_MY_ROLE WORKER
On 3.0.5.33086 and 4.0.0.1378:
WHERE_I_AM C:\MIX\firebird\fb40\examples\empbuild\employee.fdb
WHO_AM_I BAR
WHATS_MY_RTOLE MANAGER
WHERE_I_AM C:\MIX\FIREBIRD\FB40\EXAMPLES\EMPBUILD\EMPLOYEE.FDB
WHO_AM_I FOO
WHATS_MY_ROLE NONE <<<<<<<<<<<<<<<<<<<<<<<<<<< [ Why ? ] <<<<<
|
Show » |
There are no subversion log entries for this issue yet.
|
|