mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 12:32:27 +01:00
Bug#11577 'show procedure/function status' doesn't work for user with limited access
changed 'SHOW PROCEDURE' behavoiur to be like INFORMATION_SCHEMA.routines
This commit is contained in:
parent
d2814fb1b5
commit
d59ff2764c
3 changed files with 11 additions and 4 deletions
|
@ -298,6 +298,9 @@ show create function sub2;
|
|||
Function sql_mode Create Function
|
||||
sub2 CREATE FUNCTION `test`.`sub2`(i int) RETURNS int(11)
|
||||
return i+1
|
||||
show function status like "sub2";
|
||||
Db Name Type Definer Modified Created Security_type Comment
|
||||
test sub2 FUNCTION mysqltest_1@localhost # # DEFINER
|
||||
drop function sub2;
|
||||
show create procedure sel2;
|
||||
Procedure sql_mode Create Procedure
|
||||
|
|
|
@ -157,6 +157,8 @@ select ROUTINE_NAME, ROUTINE_DEFINITION from information_schema.ROUTINES;
|
|||
show create procedure sel2;
|
||||
show create function sub1;
|
||||
show create function sub2;
|
||||
--replace_column 5 # 6 #
|
||||
show function status like "sub2";
|
||||
connection default;
|
||||
disconnect user1;
|
||||
drop function sub2;
|
||||
|
|
|
@ -2386,10 +2386,12 @@ mysql_execute_command(THD *thd)
|
|||
select_result *result=lex->result;
|
||||
if (all_tables)
|
||||
{
|
||||
res= check_table_access(thd,
|
||||
lex->exchange ? SELECT_ACL | FILE_ACL :
|
||||
SELECT_ACL,
|
||||
all_tables, 0);
|
||||
if (lex->orig_sql_command != SQLCOM_SHOW_STATUS_PROC &&
|
||||
lex->orig_sql_command != SQLCOM_SHOW_STATUS_FUNC)
|
||||
res= check_table_access(thd,
|
||||
lex->exchange ? SELECT_ACL | FILE_ACL :
|
||||
SELECT_ACL,
|
||||
all_tables, 0);
|
||||
}
|
||||
else
|
||||
res= check_access(thd,
|
||||
|
|
Loading…
Reference in a new issue