mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into dl145c.mysql.com:/home/ndbdev/tomas/mysql-5.1 scripts/mysql_create_system_tables.sh: Auto merged scripts/mysql_fix_privilege_tables.sql: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_innodb.h: Auto merged sql/mysql_priv.h: Auto merged sql/sql_acl.cc: Auto merged sql/sql_acl.h: Auto merged sql/sql_base.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_yacc.yy: Auto merged
This commit is contained in:
@ -51,3 +51,11 @@ select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
drop table t1;
|
||||
create table t1 as select uuid(), length(uuid());
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`uuid()` varchar(36) character set utf8 NOT NULL default '',
|
||||
`length(uuid())` int(10) NOT NULL default '0'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
|
@ -23,10 +23,10 @@ root@localhost 1
|
||||
select db();
|
||||
db()
|
||||
db1_secret
|
||||
grant execute on db1_secret.stamp to user1@'%';
|
||||
grant execute on db1_secret.db to user1@'%';
|
||||
grant execute on db1_secret.stamp to ''@'%';
|
||||
grant execute on db1_secret.db to ''@'%';
|
||||
grant execute on procedure db1_secret.stamp to user1@'%';
|
||||
grant execute on function db1_secret.db to user1@'%';
|
||||
grant execute on procedure db1_secret.stamp to ''@'%';
|
||||
grant execute on function db1_secret.db to ''@'%';
|
||||
call db1_secret.stamp(2);
|
||||
select db1_secret.db();
|
||||
db1_secret.db()
|
||||
@ -105,8 +105,8 @@ select * from t2;
|
||||
s1
|
||||
0
|
||||
2
|
||||
grant usage on db2.q to user2@localhost with grant option;
|
||||
grant execute on db2.q to user1@localhost;
|
||||
grant usage on procedure db2.q to user2@localhost with grant option;
|
||||
grant execute on procedure db2.q to user1@localhost;
|
||||
use db2;
|
||||
call q();
|
||||
select * from t2;
|
||||
@ -117,9 +117,9 @@ s1
|
||||
alter procedure p modifies sql data;
|
||||
drop procedure p;
|
||||
alter procedure q modifies sql data;
|
||||
ERROR 42000: alter procedure command denied to user 'user1'@'localhost' for routine 'db2.q'
|
||||
ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db2.q'
|
||||
drop procedure q;
|
||||
ERROR 42000: alter procedure command denied to user 'user1'@'localhost' for routine 'db2.q'
|
||||
ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db2.q'
|
||||
use db2;
|
||||
alter procedure q modifies sql data;
|
||||
drop procedure q;
|
||||
@ -141,52 +141,52 @@ create database sptest;
|
||||
create table t1 ( u varchar(64), i int );
|
||||
create procedure sptest.p1(i int) insert into test.t1 values (user(), i);
|
||||
grant insert on t1 to usera@localhost;
|
||||
grant execute on sptest.p1 to usera@localhost;
|
||||
grant execute on procedure sptest.p1 to usera@localhost;
|
||||
show grants for usera@localhost;
|
||||
Grants for usera@localhost
|
||||
GRANT USAGE ON *.* TO 'usera'@'localhost'
|
||||
GRANT INSERT ON `test`.`t1` TO 'usera'@'localhost'
|
||||
GRANT EXECUTE ON `sptest`.`p1` TO 'usera'@'localhost'
|
||||
grant execute on sptest.p1 to userc@localhost with grant option;
|
||||
GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'usera'@'localhost'
|
||||
grant execute on procedure sptest.p1 to userc@localhost with grant option;
|
||||
show grants for userc@localhost;
|
||||
Grants for userc@localhost
|
||||
GRANT USAGE ON *.* TO 'userc'@'localhost'
|
||||
GRANT EXECUTE ON `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION
|
||||
GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION
|
||||
call sptest.p1(1);
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
ERROR 42000: grant command denied to user 'usera'@'localhost' for routine 'sptest.p1'
|
||||
drop procedure sptest.p1;
|
||||
ERROR 42000: alter procedure command denied to user 'usera'@'localhost' for routine 'sptest.p1'
|
||||
ERROR 42000: alter routine command denied to user 'usera'@'localhost' for routine 'sptest.p1'
|
||||
call sptest.p1(2);
|
||||
ERROR 42000: execute command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
ERROR 42000: execute command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
drop procedure sptest.p1;
|
||||
ERROR 42000: alter procedure command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
ERROR 42000: alter routine command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
call sptest.p1(3);
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
drop procedure sptest.p1;
|
||||
ERROR 42000: alter procedure command denied to user 'userc'@'localhost' for routine 'sptest.p1'
|
||||
ERROR 42000: alter routine command denied to user 'userc'@'localhost' for routine 'sptest.p1'
|
||||
call sptest.p1(4);
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
ERROR 42000: grant command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
drop procedure sptest.p1;
|
||||
ERROR 42000: alter procedure command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
ERROR 42000: alter routine command denied to user 'userb'@'localhost' for routine 'sptest.p1'
|
||||
select * from t1;
|
||||
u i
|
||||
usera@localhost 1
|
||||
userc@localhost 3
|
||||
userb@localhost 4
|
||||
grant all privileges on sptest.p1 to userc@localhost;
|
||||
grant all privileges on procedure sptest.p1 to userc@localhost;
|
||||
show grants for userc@localhost;
|
||||
Grants for userc@localhost
|
||||
GRANT USAGE ON *.* TO 'userc'@'localhost'
|
||||
GRANT EXECUTE, ALTER ROUTINE ON `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION
|
||||
GRANT EXECUTE, ALTER ROUTINE ON PROCEDURE `sptest`.`p1` TO 'userc'@'localhost' WITH GRANT OPTION
|
||||
show grants for userb@localhost;
|
||||
Grants for userb@localhost
|
||||
GRANT USAGE ON *.* TO 'userb'@'localhost'
|
||||
GRANT EXECUTE ON `sptest`.`p1` TO 'userb'@'localhost'
|
||||
revoke all privileges on sptest.p1 from userb@localhost;
|
||||
GRANT EXECUTE ON PROCEDURE `sptest`.`p1` TO 'userb'@'localhost'
|
||||
revoke all privileges on procedure sptest.p1 from userb@localhost;
|
||||
show grants for userb@localhost;
|
||||
Grants for userb@localhost
|
||||
GRANT USAGE ON *.* TO 'userb'@'localhost'
|
||||
|
@ -152,10 +152,11 @@ procs_priv CREATE TABLE `procs_priv` (
|
||||
`Db` char(64) collate utf8_bin NOT NULL default '',
|
||||
`User` char(16) collate utf8_bin NOT NULL default '',
|
||||
`Routine_name` char(64) collate utf8_bin NOT NULL default '',
|
||||
`Routine_type` enum('FUNCTION','PROCEDURE') collate utf8_bin NOT NULL default 'FUNCTION',
|
||||
`Grantor` char(77) collate utf8_bin NOT NULL default '',
|
||||
`Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||
`Proc_priv` set('Execute','Alter Routine','Grant') character set utf8 NOT NULL default '',
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`),
|
||||
`Timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`Host`,`Db`,`User`,`Routine_name`,`Routine_type`),
|
||||
KEY `Grantor` (`Grantor`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='Procedure privileges'
|
||||
show create table proc;
|
||||
|
@ -38,3 +38,11 @@ select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
|
||||
|
||||
drop table t1;
|
||||
|
||||
# Test for BUG#9535
|
||||
create table t1 as select uuid(), length(uuid());
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -43,10 +43,10 @@ call stamp(1);
|
||||
select * from t1;
|
||||
select db();
|
||||
|
||||
grant execute on db1_secret.stamp to user1@'%';
|
||||
grant execute on db1_secret.db to user1@'%';
|
||||
grant execute on db1_secret.stamp to ''@'%';
|
||||
grant execute on db1_secret.db to ''@'%';
|
||||
grant execute on procedure db1_secret.stamp to user1@'%';
|
||||
grant execute on function db1_secret.db to user1@'%';
|
||||
grant execute on procedure db1_secret.stamp to ''@'%';
|
||||
grant execute on function db1_secret.db to ''@'%';
|
||||
|
||||
connect (con2user1,localhost,user1,,);
|
||||
connect (con3anon,localhost,anon,,);
|
||||
@ -183,10 +183,10 @@ call q();
|
||||
select * from t2;
|
||||
|
||||
connection con1root;
|
||||
grant usage on db2.q to user2@localhost with grant option;
|
||||
grant usage on procedure db2.q to user2@localhost with grant option;
|
||||
|
||||
connection con4user2;
|
||||
grant execute on db2.q to user1@localhost;
|
||||
grant execute on procedure db2.q to user1@localhost;
|
||||
|
||||
connection con2user1;
|
||||
use db2;
|
||||
@ -245,9 +245,9 @@ create database sptest;
|
||||
create table t1 ( u varchar(64), i int );
|
||||
create procedure sptest.p1(i int) insert into test.t1 values (user(), i);
|
||||
grant insert on t1 to usera@localhost;
|
||||
grant execute on sptest.p1 to usera@localhost;
|
||||
grant execute on procedure sptest.p1 to usera@localhost;
|
||||
show grants for usera@localhost;
|
||||
grant execute on sptest.p1 to userc@localhost with grant option;
|
||||
grant execute on procedure sptest.p1 to userc@localhost with grant option;
|
||||
show grants for userc@localhost;
|
||||
|
||||
connect (con2usera,localhost,usera,,);
|
||||
@ -257,7 +257,7 @@ connect (con4userc,localhost,userc,,);
|
||||
connection con2usera;
|
||||
call sptest.p1(1);
|
||||
--error 1370
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
--error 1370
|
||||
drop procedure sptest.p1;
|
||||
|
||||
@ -265,32 +265,32 @@ connection con3userb;
|
||||
--error 1370
|
||||
call sptest.p1(2);
|
||||
--error 1370
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
--error 1370
|
||||
drop procedure sptest.p1;
|
||||
|
||||
connection con4userc;
|
||||
call sptest.p1(3);
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
--error 1370
|
||||
drop procedure sptest.p1;
|
||||
|
||||
connection con3userb;
|
||||
call sptest.p1(4);
|
||||
--error 1370
|
||||
grant execute on sptest.p1 to userb@localhost;
|
||||
grant execute on procedure sptest.p1 to userb@localhost;
|
||||
--error 1370
|
||||
drop procedure sptest.p1;
|
||||
|
||||
connection con1root;
|
||||
select * from t1;
|
||||
|
||||
grant all privileges on sptest.p1 to userc@localhost;
|
||||
grant all privileges on procedure sptest.p1 to userc@localhost;
|
||||
show grants for userc@localhost;
|
||||
show grants for userb@localhost;
|
||||
|
||||
connection con4userc;
|
||||
revoke all privileges on sptest.p1 from userb@localhost;
|
||||
revoke all privileges on procedure sptest.p1 from userb@localhost;
|
||||
|
||||
connection con1root;
|
||||
show grants for userb@localhost;
|
||||
|
Reference in New Issue
Block a user