mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Bug#27407480: AUTOMATIC_SP_PRIVILEGES REQUIRES NEED THE INSERT PRIVILEGES FOR MYSQL.USER TABLE
A test case and a followup fix
This commit is contained in:
@ -617,3 +617,24 @@ SELECT 1 latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
# Connection default
|
||||
DROP USER user2@localhost;
|
||||
DROP DATABASE db1;
|
||||
create user foo@local_ost;
|
||||
create user foo@`local\_ost` identified by 'nevermore';
|
||||
create database foodb;
|
||||
grant create routine on foodb.* to foo@local_ost;
|
||||
select user(), current_user();
|
||||
user() current_user()
|
||||
foo@localhost foo@local_ost
|
||||
show grants;
|
||||
Grants for foo@local_ost
|
||||
GRANT USAGE ON *.* TO 'foo'@'local_ost'
|
||||
GRANT CREATE ROUTINE ON `foodb`.* TO 'foo'@'local_ost'
|
||||
create procedure fooproc() select 'i am fooproc';
|
||||
show grants;
|
||||
Grants for foo@local_ost
|
||||
GRANT USAGE ON *.* TO 'foo'@'local_ost'
|
||||
GRANT CREATE ROUTINE ON `foodb`.* TO 'foo'@'local_ost'
|
||||
GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `test`.`fooproc` TO 'foo'@'local_ost'
|
||||
drop user foo@local_ost;
|
||||
drop user foo@`local\_ost`;
|
||||
drop procedure fooproc;
|
||||
drop database foodb;
|
||||
|
@ -995,7 +995,24 @@ disconnect con2;
|
||||
DROP USER user2@localhost;
|
||||
DROP DATABASE db1;
|
||||
|
||||
#
|
||||
# Bug#27407480: AUTOMATIC_SP_PRIVILEGES REQUIRES NEED THE INSERT PRIVILEGES FOR MYSQL.USER TABLE
|
||||
#
|
||||
create user foo@local_ost;
|
||||
create user foo@`local\_ost` identified by 'nevermore';
|
||||
create database foodb;
|
||||
grant create routine on foodb.* to foo@local_ost;
|
||||
connect con1,localhost,foo;
|
||||
select user(), current_user();
|
||||
show grants;
|
||||
create procedure fooproc() select 'i am fooproc';
|
||||
show grants;
|
||||
disconnect con1;
|
||||
connection default;
|
||||
drop user foo@local_ost;
|
||||
drop user foo@`local\_ost`;
|
||||
drop procedure fooproc;
|
||||
drop database foodb;
|
||||
|
||||
# Wait till all disconnects are completed
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
||||
|
@ -7190,7 +7190,7 @@ bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name,
|
||||
mysql_mutex_lock(&acl_cache->lock);
|
||||
|
||||
if ((au= find_acl_user(combo->host.str= (char *) sctx->priv_host,
|
||||
combo->user.str, FALSE)))
|
||||
combo->user.str, TRUE)))
|
||||
goto found_acl;
|
||||
|
||||
mysql_mutex_unlock(&acl_cache->lock);
|
||||
|
Reference in New Issue
Block a user