mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fixed BUG#14834: Server denies to execute Stored Procedure
The problem was that databases with '_' in the name did not match a correct ACL with a literal '_' (i.e. '\_') in the db name, only identical strings matched. The fix makes this work, and also ACLs with wildcards in the db name work.
This commit is contained in:
@ -263,3 +263,24 @@ CREATE VIEW v1 AS SELECT test.bug12812()|
|
||||
ERROR 42000: execute command denied to user 'user_bug12812'@'localhost' for routine 'test.bug12812'
|
||||
DROP USER user_bug12812@localhost|
|
||||
drop function bug12812|
|
||||
create database db_bug14834;
|
||||
create user user1_bug14834@localhost identified by '';
|
||||
grant all on `db\_bug14834`.* to user1_bug14834@localhost;
|
||||
create user user2_bug14834@localhost identified by '';
|
||||
grant all on `db\_bug14834`.* to user2_bug14834@localhost;
|
||||
create user user3_bug14834@localhost identified by '';
|
||||
grant all on `db__ug14834`.* to user3_bug14834@localhost;
|
||||
create procedure p_bug14834() select user(), current_user();
|
||||
call p_bug14834();
|
||||
user() current_user()
|
||||
user1_bug14834@localhost user1_bug14834@localhost
|
||||
call p_bug14834();
|
||||
user() current_user()
|
||||
user2_bug14834@localhost user1_bug14834@localhost
|
||||
call p_bug14834();
|
||||
user() current_user()
|
||||
user3_bug14834@localhost user1_bug14834@localhost
|
||||
drop user user1_bug14834@localhost;
|
||||
drop user user2_bug14834@localhost;
|
||||
drop user user3_bug14834@localhost;
|
||||
drop database db_bug14834;
|
||||
|
Reference in New Issue
Block a user