Commit 900d7bf3 authored by Sergei Golubchik's avatar Sergei Golubchik

Merge branch '10.5' into 10.6

parents 2ab52cc0 3a211624
...@@ -506,7 +506,7 @@ list_dbs(MYSQL *mysql,const char *wild) ...@@ -506,7 +506,7 @@ list_dbs(MYSQL *mysql,const char *wild)
MYSQL_RES *tresult = mysql_list_tables(mysql,(char*)NULL); MYSQL_RES *tresult = mysql_list_tables(mysql,(char*)NULL);
if (mysql_affected_rows(mysql) > 0) if (mysql_affected_rows(mysql) > 0)
{ {
sprintf(tables,"%6lu",(ulong) mysql_affected_rows(mysql)); snprintf(tables, sizeof(tables), "%6lu",(ulong) mysql_affected_rows(mysql));
rowcount = 0; rowcount = 0;
if (opt_verbose > 1) if (opt_verbose > 1)
{ {
...@@ -527,13 +527,13 @@ list_dbs(MYSQL *mysql,const char *wild) ...@@ -527,13 +527,13 @@ list_dbs(MYSQL *mysql,const char *wild)
} }
} }
} }
sprintf(rows,"%12lu",rowcount); snprintf(rows, sizeof(rows), "%12lu", rowcount);
} }
} }
else else
{ {
sprintf(tables,"%6d",0); snprintf(tables, sizeof(tables), "%6d" ,0);
sprintf(rows,"%12d",0); snprintf(rows, sizeof(rows), "%12d", 0);
} }
mysql_free_result(tresult); mysql_free_result(tresult);
} }
...@@ -651,7 +651,7 @@ list_tables(MYSQL *mysql,const char *db,const char *table) ...@@ -651,7 +651,7 @@ list_tables(MYSQL *mysql,const char *db,const char *table)
} }
else else
{ {
sprintf(fields,"%8u",(uint) mysql_num_fields(rresult)); snprintf(fields, sizeof(fields), "%8u", (uint) mysql_num_fields(rresult));
mysql_free_result(rresult); mysql_free_result(rresult);
if (opt_verbose > 1) if (opt_verbose > 1)
...@@ -667,10 +667,10 @@ list_tables(MYSQL *mysql,const char *db,const char *table) ...@@ -667,10 +667,10 @@ list_tables(MYSQL *mysql,const char *db,const char *table)
rowcount += (unsigned long) strtoull(rrow[0], (char**) 0, 10); rowcount += (unsigned long) strtoull(rrow[0], (char**) 0, 10);
mysql_free_result(rresult); mysql_free_result(rresult);
} }
sprintf(rows,"%10lu",rowcount); snprintf(rows, sizeof(rows), "%10lu", rowcount);
} }
else else
sprintf(rows,"%10d",0); snprintf(rows, sizeof(rows), "%10d", 0);
} }
} }
} }
......
...@@ -956,6 +956,17 @@ extern ulonglong my_getcputime(void); ...@@ -956,6 +956,17 @@ extern ulonglong my_getcputime(void);
#define hrtime_sec_part(X) ((ulong)((X).val % HRTIME_RESOLUTION)) #define hrtime_sec_part(X) ((ulong)((X).val % HRTIME_RESOLUTION))
#define my_time(X) hrtime_to_time(my_hrtime_coarse()) #define my_time(X) hrtime_to_time(my_hrtime_coarse())
/**
Make high resolution time from two parts.
*/
static inline my_hrtime_t make_hr_time(my_time_t time, ulong time_sec_part)
{
my_hrtime_t res= {((ulonglong) time)*1000000 + time_sec_part};
return res;
}
#if STACK_DIRECTION < 0 #if STACK_DIRECTION < 0
#define available_stack_size(CUR,END) (long) ((char*)(CUR) - (char*)(END)) #define available_stack_size(CUR,END) (long) ((char*)(CUR) - (char*)(END))
#else #else
......
...@@ -11,11 +11,11 @@ CREATE USER u1@localhost; ...@@ -11,11 +11,11 @@ CREATE USER u1@localhost;
grant ALL on db.v1 to u1@localhost; grant ALL on db.v1 to u1@localhost;
connect con1,localhost,u1,,; connect con1,localhost,u1,,;
select * from db.t1; select * from db.t1;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t1`
explain select * from db.t1; explain select * from db.t1;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t1`
analyze select * from db.t1; analyze select * from db.t1;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t1`
select * from db.v1; select * from db.v1;
i c i c
2 bar 2 bar
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -8,7 +8,7 @@ drop table if exists t1; ...@@ -8,7 +8,7 @@ drop table if exists t1;
# Add the datadir to the bootstrap command # Add the datadir to the bootstrap command
let $MYSQLD_DATADIR= `select @@datadir`; let $MYSQLD_DATADIR= `select @@datadir`;
let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --default-storage-engine=MyISAM --loose-skip-innodb --plugin-maturity=unknown; let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --tmpdir=$MYSQL_TMP_DIR --default-storage-engine=MyISAM --loose-skip-innodb --plugin-maturity=unknown;
# #
# Check that --bootstrap reads from stdin # Check that --bootstrap reads from stdin
# #
......
...@@ -19,7 +19,7 @@ rollback to savepoint s1; ...@@ -19,7 +19,7 @@ rollback to savepoint s1;
insert t1 values (5); insert t1 values (5);
commit; commit;
EOF EOF
exec $MYSQLD_BOOTSTRAP_CMD --datadir=$datadir --innodb < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1; exec $MYSQLD_BOOTSTRAP_CMD --datadir=$datadir --tmpdir=$MYSQL_TMP_DIR --innodb < $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql >> $MYSQLTEST_VARDIR/tmp/bootstrap.log 2>&1;
remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql; remove_file $MYSQLTEST_VARDIR/tmp/bootstrap_test.sql;
source include/start_mysqld.inc; source include/start_mysqld.inc;
......
...@@ -32,7 +32,7 @@ CREATE OR REPLACE DATABASE db2; ...@@ -32,7 +32,7 @@ CREATE OR REPLACE DATABASE db2;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'db2' ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'db2'
USE db1; USE db1;
CREATE OR REPLACE TABLE t1(id INT); CREATE OR REPLACE TABLE t1(id INT);
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `db1`.`t1`
CREATE OR REPLACE PROCEDURE proc1 (OUT cnt INT) BEGIN END; CREATE OR REPLACE PROCEDURE proc1 (OUT cnt INT) BEGIN END;
ERROR 42000: alter routine command denied to user 'mysqltest_1'@'localhost' for routine 'db1.proc1' ERROR 42000: alter routine command denied to user 'mysqltest_1'@'localhost' for routine 'db1.proc1'
CREATE OR REPLACE FUNCTION lookup RETURNS STRING SONAME "UDF_EXAMPLE_LIB"; CREATE OR REPLACE FUNCTION lookup RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
......
...@@ -51,7 +51,7 @@ c ...@@ -51,7 +51,7 @@ c
select d from mysqltest.v2; select d from mysqltest.v2;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'd' in table 'v2' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'd' in table 'v2'
select * from mysqltest.v3; select * from mysqltest.v3;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v3' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`v3`
connection root; connection root;
grant select on mysqltest.v3 to mysqltest_1@localhost; grant select on mysqltest.v3 to mysqltest_1@localhost;
connection user1; connection user1;
...@@ -116,7 +116,7 @@ revoke SELECT on db.t1 from foo@localhost; ...@@ -116,7 +116,7 @@ revoke SELECT on db.t1 from foo@localhost;
connection con1; connection con1;
with cte as (select * from t1 where i < 4) with cte as (select * from t1 where i < 4)
select * from cte; select * from cte;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db`.`t1`
disconnect con1; disconnect con1;
connection default; connection default;
drop database db; drop database db;
......
...@@ -39,7 +39,7 @@ cte3 AS ...@@ -39,7 +39,7 @@ cte3 AS
cte4 AS cte4 AS
(SELECT cte2.a FROM t2,cte2 WHERE cte2.a = t2.a) (SELECT cte2.a FROM t2,cte2 WHERE cte2.a = t2.a)
SELECT * FROM cte4 as r; SELECT * FROM cte4 as r;
ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'u1'@'localhost' for table `db`.`t2`
disconnect u1; disconnect u1;
connection default; connection default;
DROP USER 'u1'@'localhost'; DROP USER 'u1'@'localhost';
......
...@@ -5016,6 +5016,592 @@ t2 CREATE TABLE `t2` ( ...@@ -5016,6 +5016,592 @@ t2 CREATE TABLE `t2` (
set @@sql_mode=default; set @@sql_mode=default;
drop table t1,t2; drop table t1,t2;
# #
# MDEV-29361: Embedded recursive / non-recursive CTE within
# the scope of another embedded CTE with the same name
#
create table t1 (a int);
insert into t1 values (4), (5);
create table t2 (a int);
insert into t2 values (6), (8);
create table t3 (a int);
insert into t3 values (1), (9);
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
a
4
5
6
7
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
a
6
8
10
with
cte as
(
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
with
cte as
(
with recursive
x(a) as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select s1.a from x as s1, x
where s1.a = x.a and
x.a in (
with recursive
x(a) as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
7
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
with recursive
y as
(
select a from t1 union select a+1 from y as r1 where a < 7
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
with
y(a) as
(
select a+5 from t1
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a < 5 and
s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
ERROR 42S02: Table 'test.x' doesn't exist
with
cte as
(
select (
with recursive
x(a) as
(
select a+3 from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a < 8 and
s1.a in (
with recursive
x(a) as
(
select a-2 from t2
union
select a+1 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
7
7
with
cte as
(
select (
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
6
6
create table x (a int);
insert into x values (3), (7), (1), (5), (6);
with
cte as
(
select (
with
x as
(
select ( select a from x as r1 ) as a from t1
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x s2
)
) as r
from t3
)
select * from cte;
ERROR 21000: Subquery returns more than 1 row
with
cte as
(
select (
with
x as
(
select ( select a from x ) as a from t1
)
select exists (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x
)
) as r
from t3
)
select * from cte;
r
1
1
with
cte_e as
(
with
cte as
(
select (
with
x as
(
select ( select a from x ) from t1
)
select exists (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x
)
) as r
from t3
)
select * from cte
)
select s1.*, s2.* from cte_e as s1, cte_e as s2;
r r
1 1
1 1
1 1
1 1
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
a
4
5
2
6
7
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
a
6
8
5
9
3
7
with recursive
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1;
a
4
5
6
7
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2;
a
6
8
10
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with recursive
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
6
with
cte as
(
with
x as
(
select a from t1 union select a+1 from x as r1 where a < 7
)
select * from x as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
4
6
7
with
cte as
(
with recursive
y as
(
select a from t1 union select a+1 from y as r1 where a < 7
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
5
6
7
with
cte as
(
with
y(a) as
(
select a+5 from t1
)
select * from y as s1
where s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
)
select * from cte;
a
9
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a in (
with
recursive x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
6
6
with
cte as
(
select (
with
x as
(
select a from x as r1
)
select * from x as s1
where s1.a < 5 and
s1.a in (
with
x as
(
select a from t2
union
select a+2 from x as r2 where a < 10
)
select a from x as s2
)
) as r
from t3
)
select * from cte;
r
3
3
drop table t1,t2,t3,x;
#
# End of 10.3 tests # End of 10.3 tests
# #
# #
......
This diff is collapsed.
...@@ -30,7 +30,7 @@ disconnect con1; ...@@ -30,7 +30,7 @@ disconnect con1;
connection default; connection default;
connect con1, localhost, user5; connect con1, localhost, user5;
FLUSH TABLE db1.t1 FOR EXPORT; FLUSH TABLE db1.t1 FOR EXPORT;
ERROR 42000: SELECT command denied to user 'user5'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user5'@'localhost' for table `db1`.`t1`
disconnect con1; disconnect con1;
connection default; connection default;
DROP USER user1@localhost, user2@localhost, user3@localhost, DROP USER user1@localhost, user2@localhost, user3@localhost,
......
...@@ -38,13 +38,13 @@ CREATE VIEW v2 AS SELECT * FROM performance_schema.accounts; ...@@ -38,13 +38,13 @@ CREATE VIEW v2 AS SELECT * FROM performance_schema.accounts;
FLUSH TABLE information_schema.collations WITH READ LOCK; FLUSH TABLE information_schema.collations WITH READ LOCK;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
FLUSH TABLE performance_schema.accounts WITH READ LOCK; FLUSH TABLE performance_schema.accounts WITH READ LOCK;
ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table `performance_schema`.`accounts`
FLUSH TABLE information_schema.colums WITH READ LOCK; FLUSH TABLE information_schema.colums WITH READ LOCK;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
FLUSH TABLE information_schema.collations FOR EXPORT; FLUSH TABLE information_schema.collations FOR EXPORT;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
FLUSH TABLE performance_schema.accounts FOR EXPORT; FLUSH TABLE performance_schema.accounts FOR EXPORT;
ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' ERROR 42000: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table `performance_schema`.`accounts`
FLUSH TABLE information_schema.colums FOR EXPORT; FLUSH TABLE information_schema.colums FOR EXPORT;
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
# #
......
...@@ -39,7 +39,7 @@ create user foo@localhost; ...@@ -39,7 +39,7 @@ create user foo@localhost;
grant execute on mysql.* to foo@localhost; grant execute on mysql.* to foo@localhost;
connect foo, localhost, foo; connect foo, localhost, foo;
call mysql.AddGeometryColumn('', 'mysql', 'proc', 'c', 10); call mysql.AddGeometryColumn('', 'mysql', 'proc', 'c', 10);
ERROR 42000: ALTER command denied to user 'foo'@'localhost' for table 'proc' ERROR 42000: ALTER command denied to user 'foo'@'localhost' for table `mysql`.`proc`
disconnect foo; disconnect foo;
connection default; connection default;
drop user foo@localhost; drop user foo@localhost;
This diff is collapsed.
...@@ -108,9 +108,9 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` ...@@ -108,9 +108,9 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, INSERT ON `mysqltest`.* TO `mysqltest_1`@`localhost` GRANT SELECT, INSERT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
insert into t1 values (1, 'I can''t change it!'); insert into t1 values (1, 'I can''t change it!');
update t1 set data='I can change it!' where id = 1; update t1 set data='I can change it!' where id = 1;
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!'; insert into t1 values (1, 'XXX') on duplicate key update data= 'I can change it!';
ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
select * from t1; select * from t1;
id data id data
1 I can't change it! 1 I can't change it!
...@@ -127,7 +127,7 @@ connection mrugly; ...@@ -127,7 +127,7 @@ connection mrugly;
grant select (a,b) on t1 to mysqltest_2@localhost; grant select (a,b) on t1 to mysqltest_2@localhost;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't1'
grant select on t1 to mysqltest_3@localhost; grant select on t1 to mysqltest_3@localhost;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
disconnect mrugly; disconnect mrugly;
connection default; connection default;
drop table t1; drop table t1;
...@@ -312,7 +312,7 @@ grant create user on *.* to mysqltest_2@localhost; ...@@ -312,7 +312,7 @@ grant create user on *.* to mysqltest_2@localhost;
connect user3,localhost,mysqltest_2,,; connect user3,localhost,mysqltest_2,,;
connection user3; connection user3;
select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ; select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 'user' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysql`.`user`
create user mysqltest_A@'%'; create user mysqltest_A@'%';
rename user mysqltest_A@'%' to mysqltest_B@'%'; rename user mysqltest_A@'%' to mysqltest_B@'%';
drop user mysqltest_B@'%'; drop user mysqltest_B@'%';
...@@ -328,7 +328,7 @@ Grants for mysqltest_3@localhost ...@@ -328,7 +328,7 @@ Grants for mysqltest_3@localhost
GRANT USAGE ON *.* TO `mysqltest_3`@`localhost` GRANT USAGE ON *.* TO `mysqltest_3`@`localhost`
GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO `mysqltest_3`@`localhost` GRANT INSERT, UPDATE, DELETE ON `mysql`.* TO `mysqltest_3`@`localhost`
select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ; select host,user,password,plugin,authentication_string from mysql.user where user like 'mysqltest_%' ;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 'user' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysql`.`user`
insert into mysql.global_priv set host='%', user='mysqltest_B'; insert into mysql.global_priv set host='%', user='mysqltest_B';
create user mysqltest_A@'%'; create user mysqltest_A@'%';
rename user mysqltest_B@'%' to mysqltest_C@'%'; rename user mysqltest_B@'%' to mysqltest_C@'%';
...@@ -476,9 +476,9 @@ create table t1 (i int); ...@@ -476,9 +476,9 @@ create table t1 (i int);
connect user1,localhost,mysqltest_u1,,mysqltest_1; connect user1,localhost,mysqltest_u1,,mysqltest_1;
connection user1; connection user1;
show create table mysqltest_2.t1; show create table mysqltest_2.t1;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_2`.`t1`
create table t1 like mysqltest_2.t1; create table t1 like mysqltest_2.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_2`.`t1`
connection default; connection default;
grant select on mysqltest_2.t1 to mysqltest_u1@localhost; grant select on mysqltest_2.t1 to mysqltest_u1@localhost;
connection user1; connection user1;
...@@ -533,7 +533,7 @@ USE db1; ...@@ -533,7 +533,7 @@ USE db1;
SELECT c FROM t2; SELECT c FROM t2;
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2' ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
SELECT * FROM t2; SELECT * FROM t2;
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for table `db1`.`t2`
SELECT * FROM t1 JOIN t2 USING (b); SELECT * FROM t1 JOIN t2 USING (b);
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2' ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
connection default; connection default;
...@@ -629,7 +629,7 @@ CREATE TEMPORARY TABLE t4 SELECT * FROM t1; ...@@ -629,7 +629,7 @@ CREATE TEMPORARY TABLE t4 SELECT * FROM t1;
# temporary table without additional privileges. # temporary table without additional privileges.
CREATE TEMPORARY TABLE t5(a INT) ENGINE = MyISAM; CREATE TEMPORARY TABLE t5(a INT) ENGINE = MyISAM;
CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = (t5); CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = (t5);
ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
# Check that we allow creation of MERGE table with no underlying table # Check that we allow creation of MERGE table with no underlying table
# without additional privileges. # without additional privileges.
CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = (); CREATE TEMPORARY TABLE t6(a INT) ENGINE = MERGE UNION = ();
...@@ -657,7 +657,7 @@ ALTER TABLE t6 UNION = (); ...@@ -657,7 +657,7 @@ ALTER TABLE t6 UNION = ();
# Check that we do *not* allow altering of MERGE table with underlying # Check that we do *not* allow altering of MERGE table with underlying
# temporary table without additional privileges. # temporary table without additional privileges.
ALTER TABLE t6 UNION = (t5); ALTER TABLE t6 UNION = (t5);
ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
# #
# Simple INSERT and INSERT ... SELECT. # Simple INSERT and INSERT ... SELECT.
# #
...@@ -902,7 +902,7 @@ CREATE TEMPORARY TABLE t9(a INT); ...@@ -902,7 +902,7 @@ CREATE TEMPORARY TABLE t9(a INT);
CREATE TEMPORARY TABLE t10(a INT) ENGINE = MERGE UNION = (t7, t8); CREATE TEMPORARY TABLE t10(a INT) ENGINE = MERGE UNION = (t7, t8);
ALTER TABLE t10 UNION = (t9); ALTER TABLE t10 UNION = (t9);
ALTER TABLE t10 UNION = (mysqltest_db2.t2_1); ALTER TABLE t10 UNION = (mysqltest_db2.t2_1);
ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u5'@'localhost' for table 't2_1' ERROR 42000: SELECT, UPDATE, DELETE command denied to user 'mysqltest_u5'@'localhost' for table `mysqltest_db2`.`t2_1`
CREATE TEMPORARY TABLE mysqltest_db2.t2_2(a INT) ENGINE = MERGE UNION = (t7, t8); CREATE TEMPORARY TABLE mysqltest_db2.t2_2(a INT) ENGINE = MERGE UNION = (t7, t8);
ALTER TABLE mysqltest_db2.t2_2 UNION = (t9); ALTER TABLE mysqltest_db2.t2_2 UNION = (t9);
ALTER TABLE mysqltest_db2.t2_2 UNION = (); ALTER TABLE mysqltest_db2.t2_2 UNION = ();
......
...@@ -30,23 +30,23 @@ a int(11) YES NULL ...@@ -30,23 +30,23 @@ a int(11) YES NULL
** SHOW COLUMNS ** SHOW COLUMNS
** Should fail because there are no privileges on any column combination. ** Should fail because there are no privileges on any column combination.
show columns from mysqltest_db1.t_no_priv; show columns from mysqltest_db1.t_no_priv;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't_no_priv' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_no_priv`
** However, select from I_S.COLUMNS will succeed but not show anything: ** However, select from I_S.COLUMNS will succeed but not show anything:
select column_name as 'Field',column_type as 'Type',is_nullable as 'Null',column_key as 'Key',column_default as 'Default',extra as 'Extra' from information_schema.columns where table_schema='mysqltest_db1' and table_name='t_no_priv'; select column_name as 'Field',column_type as 'Type',is_nullable as 'Null',column_key as 'Key',column_default as 'Default',extra as 'Extra' from information_schema.columns where table_schema='mysqltest_db1' and table_name='t_no_priv';
Field Type Null Key Default Extra Field Type Null Key Default Extra
** CREATE TABLE ... LIKE ... require SELECT privleges and will fail. ** CREATE TABLE ... LIKE ... require SELECT privleges and will fail.
create table test.t_no_priv like mysqltest_db1.column_priv_only; create table test.t_no_priv like mysqltest_db1.column_priv_only;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'column_priv_only' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`column_priv_only`
** Just to be sure... SELECT also fails. ** Just to be sure... SELECT also fails.
select * from mysqltest_db1.t_column_priv_only; select * from mysqltest_db1.t_column_priv_only;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't_column_priv_only' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_column_priv_only`
** SHOW CREATE TABLE ... require any privileges on all columns (the entire table). ** SHOW CREATE TABLE ... require any privileges on all columns (the entire table).
** First we try and fail on a table with only one column privilege. ** First we try and fail on a table with only one column privilege.
show create table mysqltest_db1.t_column_priv_only; show create table mysqltest_db1.t_column_priv_only;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't_column_priv_only' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_column_priv_only`
** Now we do the same on a table with SELECT privileges. ** Now we do the same on a table with SELECT privileges.
...@@ -72,7 +72,7 @@ t_select_priv CREATE TABLE `t_select_priv` ( ...@@ -72,7 +72,7 @@ t_select_priv CREATE TABLE `t_select_priv` (
** SHOW CREATE TABLE will fail if there is no grants at all: ** SHOW CREATE TABLE will fail if there is no grants at all:
show create table mysqltest_db1.t_no_priv; show create table mysqltest_db1.t_no_priv;
ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table 't_no_priv' ERROR 42000: SHOW command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t_no_priv`
connection default; connection default;
use mysqltest_db1; use mysqltest_db1;
...@@ -97,7 +97,7 @@ SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5'; ...@@ -97,7 +97,7 @@ SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_name='t5';
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT INDEX_COMMENT IGNORED
** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination. ** SHOW INDEX FROM t5 will fail because we don't have any privileges on any column combination.
SHOW INDEX FROM t5; SHOW INDEX FROM t5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6. ** SHOW INDEX FROM t6 will succeed because there exist a privilege on a column combination on t6.
SHOW INDEX FROM t6; SHOW INDEX FROM t6;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment Ignored
...@@ -108,20 +108,20 @@ Table Op Msg_type Msg_text ...@@ -108,20 +108,20 @@ Table Op Msg_type Msg_text
mysqltest_db1.t6 check status OK mysqltest_db1.t6 check status OK
** With no privileges access is naturally denied: ** With no privileges access is naturally denied:
CHECK TABLE t5; CHECK TABLE t5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't5' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t5`
** CHECKSUM TABLE requires SELECT privileges on the table. The following should fail: ** CHECKSUM TABLE requires SELECT privileges on the table. The following should fail:
CHECKSUM TABLE t6; CHECKSUM TABLE t6;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't6' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t6`
** And this should work: ** And this should work:
CHECKSUM TABLE t_select_priv; CHECKSUM TABLE t_select_priv;
Table Checksum Table Checksum
mysqltest_db1.t_select_priv 0 mysqltest_db1.t_select_priv 0
SHOW CREATE VIEW v5; SHOW CREATE VIEW v5;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`v5`
SHOW CREATE VIEW v6; SHOW CREATE VIEW v6;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v6' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`v6`
SHOW CREATE VIEW v2; SHOW CREATE VIEW v2;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v2' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`v2`
SHOW CREATE VIEW v3; SHOW CREATE VIEW v3;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t_select_priv`.`a` AS `a`,`t_select_priv`.`b` AS `b` from `t_select_priv` latin1 latin1_swedish_ci v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t_select_priv`.`a` AS `a`,`t_select_priv`.`b` AS `b` from `t_select_priv` latin1 latin1_swedish_ci
...@@ -193,10 +193,10 @@ mysqltest_db1.t1 check error Corrupt ...@@ -193,10 +193,10 @@ mysqltest_db1.t1 check error Corrupt
# The below statement should fail before repairing t1. # The below statement should fail before repairing t1.
# Otherwise info about such repair will be missing from its result-set. # Otherwise info about such repair will be missing from its result-set.
repair table mysqltest_db1.t1, mysqltest_db1.t2; repair table mysqltest_db1.t1, mysqltest_db1.t2;
ERROR 42000: SELECT, INSERT command denied to user 'mysqltest_u1'@'localhost' for table 't2' ERROR 42000: SELECT, INSERT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t2`
# The same is true for CHECK TABLE statement. # The same is true for CHECK TABLE statement.
check table mysqltest_db1.t1, mysqltest_db1.t2; check table mysqltest_db1.t1, mysqltest_db1.t2;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t2`
check table mysqltest_db1.t1; check table mysqltest_db1.t1;
Table Op Msg_type Msg_text Table Op Msg_type Msg_text
mysqltest_db1.t1 check warning Table is marked as crashed mysqltest_db1.t1 check warning Table is marked as crashed
......
...@@ -185,6 +185,67 @@ GRANT USAGE ON *.* TO `test-user`@`%` ...@@ -185,6 +185,67 @@ GRANT USAGE ON *.* TO `test-user`@`%`
SET DEFAULT ROLE `r``o'l"e` FOR `test-user`@`%` SET DEFAULT ROLE `r``o'l"e` FOR `test-user`@`%`
DROP ROLE `r``o'l"e`; DROP ROLE `r``o'l"e`;
DROP USER 'test-user'; DROP USER 'test-user';
#
# MDEV-28548: ER_TABLEACCESS_DENIED_ERROR is missing information about DB
#
create database db1;
create user foo@localhost;
grant create on db1.* to foo@localhost;
connect con1,localhost,foo,,db1;
create table t(t int);
show columns in t;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t`
show columns in db1.t;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t`
create view t_v as select * from t;
ERROR 42000: CREATE VIEW command denied to user 'foo'@'localhost' for table `db1`.`t_v`
show create view t_v;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t_v`
create table t2(id int primary key, b int);
create table t3(a int, b int, CONSTRAINT `fk_db2_db1_t1`
FOREIGN KEY (a)
REFERENCES `db1 `.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
ERROR 42000: Incorrect database name 'db1 '
create table t3(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES db3.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
ERROR 42000: REFERENCES command denied to user 'foo'@'localhost' for table `db3`.`t1`
create table t1(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES t2 (id)
ON DELETE CASCADE
ON UPDATE RESTRICT);
ERROR 42000: REFERENCES command denied to user 'foo'@'localhost' for table `db1`.`t2`
connection default;
disconnect con1;
grant create view, select on db1.* to foo@localhost;
connect con1,localhost,foo,,db1;
create view t_v as select * from t;
show grants;
Grants for foo@localhost
GRANT USAGE ON *.* TO `foo`@`localhost`
GRANT SELECT, CREATE, CREATE VIEW ON `db1`.* TO `foo`@`localhost`
show create view t_v;
ERROR 42000: SHOW VIEW command denied to user 'foo'@'localhost' for table `db1`.`t_v`
connection default;
disconnect con1;
grant show view on db1.* to foo@localhost;
connect con1,localhost,foo,,db1;
show grants;
Grants for foo@localhost
GRANT USAGE ON *.* TO `foo`@`localhost`
GRANT SELECT, CREATE, CREATE VIEW, SHOW VIEW ON `db1`.* TO `foo`@`localhost`
show create view t_v;
View Create View character_set_client collation_connection
t_v CREATE ALGORITHM=UNDEFINED DEFINER=`foo`@`localhost` SQL SECURITY DEFINER VIEW `t_v` AS select `t`.`t` AS `t` from `t` latin1 latin1_swedish_ci
connection default;
disconnect con1;
drop database db1;
drop user foo@localhost;
# End of 10.3 tests # End of 10.3 tests
create user u1@h identified with 'mysql_native_password' using 'pwd'; create user u1@h identified with 'mysql_native_password' using 'pwd';
ERROR HY000: Password hash should be a 41-digit hexadecimal number ERROR HY000: Password hash should be a 41-digit hexadecimal number
......
...@@ -138,6 +138,78 @@ SHOW GRANTS FOR 'test-user'; ...@@ -138,6 +138,78 @@ SHOW GRANTS FOR 'test-user';
DROP ROLE `r``o'l"e`; DROP ROLE `r``o'l"e`;
DROP USER 'test-user'; DROP USER 'test-user';
--echo #
--echo # MDEV-28548: ER_TABLEACCESS_DENIED_ERROR is missing information about DB
--echo #
create database db1;
create user foo@localhost;
grant create on db1.* to foo@localhost;
--connect (con1,localhost,foo,,db1)
create table t(t int);
--error ER_TABLEACCESS_DENIED_ERROR
show columns in t;
--error ER_TABLEACCESS_DENIED_ERROR
show columns in db1.t;
# CREATE_VIEW_ACL needed
--error ER_TABLEACCESS_DENIED_ERROR
create view t_v as select * from t;
# show create view needs to have SELECT_ACL and SHOW_VIEW_ACL
--error ER_TABLEACCESS_DENIED_ERROR
show create view t_v;
create table t2(id int primary key, b int);
# Reference non existing DB with wrong DB name
--error ER_WRONG_DB_NAME
create table t3(a int, b int, CONSTRAINT `fk_db2_db1_t1`
FOREIGN KEY (a)
REFERENCES `db1 `.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
# Reference non-existing DB (with qualified DB name)
--error ER_TABLEACCESS_DENIED_ERROR
create table t3(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES db3.t1 (a)
ON DELETE CASCADE
ON UPDATE RESTRICT);
# Reference DB (with not qualified DB name)
--error ER_TABLEACCESS_DENIED_ERROR
create table t1(a int, b int, CONSTRAINT `fk_db2_db3_t1`
FOREIGN KEY (a)
REFERENCES t2 (id)
ON DELETE CASCADE
ON UPDATE RESTRICT);
--connection default
--disconnect con1
# Add CREATE_VIEW_ACL and SELECT_ACL
grant create view, select on db1.* to foo@localhost;
--connect (con1,localhost,foo,,db1)
create view t_v as select * from t;
show grants;
--error ER_TABLEACCESS_DENIED_ERROR
show create view t_v;
--connection default
--disconnect con1
# Add SHOW_VIEW_ACL
grant show view on db1.* to foo@localhost;
--connect (con1,localhost,foo,,db1)
show grants;
show create view t_v;
--connection default
--disconnect con1
drop database db1;
drop user foo@localhost;
--echo # End of 10.3 tests --echo # End of 10.3 tests
# #
......
...@@ -154,7 +154,7 @@ a b c a ...@@ -154,7 +154,7 @@ a b c a
1 1 1 test.t1 1 1 1 test.t1
2 2 2 test.t1 2 2 2 test.t1
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t2`
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 6 Qcache_queries_in_cache 6
...@@ -170,7 +170,7 @@ select "user3"; ...@@ -170,7 +170,7 @@ select "user3";
user3 user3
user3 user3
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
select a from t1; select a from t1;
a a
1 1
...@@ -178,7 +178,7 @@ a ...@@ -178,7 +178,7 @@ a
select c from t1; select c from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t2`
select mysqltest.t1.c from test.t1,mysqltest.t1; select mysqltest.t1.c from test.t1,mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
......
...@@ -154,7 +154,7 @@ a b c a ...@@ -154,7 +154,7 @@ a b c a
1 1 1 test.t1 1 1 1 test.t1
2 2 2 test.t1 2 2 2 test.t1
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t2`
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
Variable_name Value Variable_name Value
Qcache_queries_in_cache 6 Qcache_queries_in_cache 6
...@@ -170,7 +170,7 @@ select "user3"; ...@@ -170,7 +170,7 @@ select "user3";
user3 user3
user3 user3
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
select a from t1; select a from t1;
a a
1 1
...@@ -178,7 +178,7 @@ a ...@@ -178,7 +178,7 @@ a
select c from t1; select c from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
select * from t2; select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t2`
select mysqltest.t1.c from test.t1,mysqltest.t1; select mysqltest.t1.c from test.t1,mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
show status like "Qcache_queries_in_cache"; show status like "Qcache_queries_in_cache";
......
...@@ -10,13 +10,13 @@ connect con1,localhost,privtest,,; ...@@ -10,13 +10,13 @@ connect con1,localhost,privtest,,;
connection con1; connection con1;
USE privtest_db; USE privtest_db;
EXPLAIN INSERT INTO t1 VALUES (10); EXPLAIN INSERT INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
INSERT INTO t1 VALUES (10); INSERT INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN INSERT INTO t1 SELECT * FROM t2; EXPLAIN INSERT INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
INSERT INTO t1 SELECT * FROM t2; INSERT INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
...@@ -32,36 +32,36 @@ connection default; ...@@ -32,36 +32,36 @@ connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN REPLACE INTO t1 VALUES (10); EXPLAIN REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 VALUES (10); REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN REPLACE INTO t1 SELECT * FROM t2; EXPLAIN REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 SELECT * FROM t2; REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT, DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT INSERT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN REPLACE INTO t1 VALUES (10); EXPLAIN REPLACE INTO t1 VALUES (10);
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 VALUES (10); REPLACE INTO t1 VALUES (10);
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN REPLACE INTO t1 SELECT * FROM t2; EXPLAIN REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 SELECT * FROM t2; REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
REVOKE INSERT ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE INSERT ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN REPLACE INTO t1 VALUES (10); EXPLAIN REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 VALUES (10); REPLACE INTO t1 VALUES (10);
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN REPLACE INTO t1 SELECT * FROM t2; EXPLAIN REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
REPLACE INTO t1 SELECT * FROM t2; REPLACE INTO t1 SELECT * FROM t2;
ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT INSERT, DELETE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT INSERT, DELETE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
...@@ -77,13 +77,13 @@ connection default; ...@@ -77,13 +77,13 @@ connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN UPDATE t1 SET a = a + 1; EXPLAIN UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1 SET a = a + 1; UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT UPDATE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT UPDATE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
...@@ -100,13 +100,13 @@ REVOKE UPDATE ON privtest_db.t1 FROM 'privtest'@'localhost'; ...@@ -100,13 +100,13 @@ REVOKE UPDATE ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN UPDATE t1 SET a = a + 1; EXPLAIN UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1 SET a = a + 1; UPDATE t1 SET a = a + 1;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; EXPLAIN UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a; UPDATE t1, t2 SET t1.a = t1.a + 1 WHERE t1.a = t2.a;
ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: UPDATE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT UPDATE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT UPDATE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
...@@ -123,13 +123,13 @@ connection default; ...@@ -123,13 +123,13 @@ connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN DELETE FROM t1 WHERE a = 10; EXPLAIN DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 WHERE a = 10; DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT DELETE ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
...@@ -138,21 +138,21 @@ ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a' ...@@ -138,21 +138,21 @@ ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a'
DELETE FROM t1 WHERE a = 10; DELETE FROM t1 WHERE a = 10;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a' in table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for column 'a' in table 't1'
EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
connection con1; connection con1;
EXPLAIN DELETE FROM t1 WHERE a = 10; EXPLAIN DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 WHERE a = 10; DELETE FROM t1 WHERE a = 10;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; EXPLAIN DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a; DELETE FROM t1 USING t1, t2 WHERE t1.a = t2.a;
ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'privtest'@'localhost' for table `privtest_db`.`t1`
connection default; connection default;
REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost'; REVOKE ALL PRIVILEGES ON privtest_db.t1 FROM 'privtest'@'localhost';
GRANT DELETE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost'; GRANT DELETE, SELECT ON privtest_db.t1 TO 'privtest'@'localhost';
......
...@@ -6,12 +6,12 @@ GRANT SELECT ON db1.* to USER_1@localhost; ...@@ -6,12 +6,12 @@ GRANT SELECT ON db1.* to USER_1@localhost;
connect con1,localhost,user_1,,db1; connect con1,localhost,user_1,,db1;
CREATE TABLE t1(f1 int); CREATE TABLE t1(f1 int);
SELECT * FROM t1; SELECT * FROM t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db1`.`t1`
connect con2,localhost,USER_1,,db1; connect con2,localhost,USER_1,,db1;
SELECT * FROM t1; SELECT * FROM t1;
f1 f1
CREATE TABLE t2(f1 int); CREATE TABLE t2(f1 int);
ERROR 42000: CREATE command denied to user 'USER_1'@'localhost' for table 't2' ERROR 42000: CREATE command denied to user 'USER_1'@'localhost' for table `db1`.`t2`
connection default; connection default;
disconnect con1; disconnect con1;
disconnect con2; disconnect con2;
......
...@@ -163,17 +163,17 @@ use testdb_1; ...@@ -163,17 +163,17 @@ use testdb_1;
revoke select,show view on v6 from testdb_2@localhost; revoke select,show view on v6 from testdb_2@localhost;
connection testdb_2; connection testdb_2;
show fields from testdb_1.v5; show fields from testdb_1.v5;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v5`
show create view testdb_1.v5; show create view testdb_1.v5;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v5' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v5`
show fields from testdb_1.v6; show fields from testdb_1.v6;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v6' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v6`
show create view testdb_1.v6; show create view testdb_1.v6;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v6' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v6`
show fields from testdb_1.v7; show fields from testdb_1.v7;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v7' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v7`
show create view testdb_1.v7; show create view testdb_1.v7;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v7' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v7`
show create view v4; show create view v4;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v4 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `v3`.`f1` AS `f1`,`v3`.`f2` AS `f2` from `testdb_1`.`v3` latin1 latin1_swedish_ci v4 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v4` AS select `v3`.`f1` AS `f1`,`v3`.`f2` AS `f2` from `testdb_1`.`v3` latin1 latin1_swedish_ci
...@@ -191,7 +191,7 @@ show create view v2; ...@@ -191,7 +191,7 @@ show create view v2;
View Create View character_set_client collation_connection View Create View character_set_client collation_connection
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` latin1 latin1_swedish_ci v2 CREATE ALGORITHM=UNDEFINED DEFINER=`testdb_2`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `v1`.`f1` AS `f1` from `testdb_1`.`v1` latin1 latin1_swedish_ci
show create view testdb_1.v1; show create view testdb_1.v1;
ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'testdb_2'@'localhost' for table `testdb_1`.`v1`
select table_name from information_schema.columns a select table_name from information_schema.columns a
where a.table_name = 'v2'; where a.table_name = 'v2';
table_name table_name
...@@ -238,7 +238,7 @@ where table_name='v1'; ...@@ -238,7 +238,7 @@ where table_name='v1';
table_schema table_name view_definition table_schema table_name view_definition
testdb_1 v1 testdb_1 v1
show create view testdb_1.v1; show create view testdb_1.v1;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `testdb_1`.`v1`
connection default; connection default;
drop user mysqltest_1@localhost; drop user mysqltest_1@localhost;
drop database testdb_1; drop database testdb_1;
......
...@@ -38,7 +38,7 @@ INNER JOIN view_stations AS stations ...@@ -38,7 +38,7 @@ INNER JOIN view_stations AS stations
ON table_source.id = stations.icao ON table_source.id = stations.icao
LEFT JOIN table_target AS old LEFT JOIN table_target AS old
USING (mexs_id); USING (mexs_id);
ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table 'table_target' ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table `meow`.`table_target`
REPLACE INTO view_target2 REPLACE INTO view_target2
SELECT stations.mexs_id AS mexs_id, datetime AS messzeit SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
FROM table_source FROM table_source
...@@ -46,7 +46,7 @@ INNER JOIN view_stations AS stations ...@@ -46,7 +46,7 @@ INNER JOIN view_stations AS stations
ON table_source.id = stations.icao ON table_source.id = stations.icao
LEFT JOIN view_target2 AS old LEFT JOIN view_target2 AS old
USING (mexs_id); USING (mexs_id);
ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table 'view_target2' ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table `meow`.`view_target2`
REPLACE INTO view_target3 REPLACE INTO view_target3
SELECT stations.mexs_id AS mexs_id, datetime AS messzeit SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
FROM table_source FROM table_source
...@@ -70,7 +70,7 @@ ON table_source.id = stations.icao ...@@ -70,7 +70,7 @@ ON table_source.id = stations.icao
LEFT JOIN table_target AS old LEFT JOIN table_target AS old
USING (mexs_id); USING (mexs_id);
REPLACE INTO table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00'); REPLACE INTO table_target2 VALUES ('00X45Y78','2006-07-12 07:50:00');
ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table 'table_target2' ERROR 42000: INSERT, DELETE command denied to user 'user20989'@'localhost' for table `meow`.`table_target2`
REPLACE INTO view_target2 VALUES ('12X45Y78','2006-07-12 07:50:00'); REPLACE INTO view_target2 VALUES ('12X45Y78','2006-07-12 07:50:00');
SELECT stations.mexs_id AS mexs_id, datetime AS messzeit SELECT stations.mexs_id AS mexs_id, datetime AS messzeit
FROM table_source FROM table_source
......
...@@ -51,9 +51,9 @@ connection default; ...@@ -51,9 +51,9 @@ connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1;
connection con1; connection con1;
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
select invisible from t1; select invisible from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
disconnect con1; disconnect con1;
#Final Cleanup #Final Cleanup
......
...@@ -57,9 +57,9 @@ connection default; ...@@ -57,9 +57,9 @@ connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1; REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1;
connection con1; connection con1;
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
select count(row_start) from t1; select count(row_start) from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d`.`t1`
disconnect con1; disconnect con1;
#Cleanup #Cleanup
......
...@@ -217,6 +217,7 @@ drop table t2; ...@@ -217,6 +217,7 @@ drop table t2;
--echo # --echo #
--echo # Test kill USER --echo # Test kill USER
--echo # --echo #
--source include/count_sessions.inc
grant ALL on test.* to test@localhost; grant ALL on test.* to test@localhost;
grant ALL on test.* to test2@localhost; grant ALL on test.* to test2@localhost;
connect (con3, localhost, test,,); connect (con3, localhost, test,,);
...@@ -241,6 +242,7 @@ connection con4; ...@@ -241,6 +242,7 @@ connection con4;
--error 2013,2006,5014 --error 2013,2006,5014
select 1; select 1;
connection default; connection default;
--source include/wait_until_count_sessions.inc
--echo # --echo #
--echo # MDEV-4911 - add KILL query id, and add query id information to --echo # MDEV-4911 - add KILL query id, and add query id information to
......
This diff is collapsed.
...@@ -27,7 +27,7 @@ CREATE TABLE t1(f1 INT); ...@@ -27,7 +27,7 @@ CREATE TABLE t1(f1 INT);
GRANT SELECT ON T1 to user_1@localhost; GRANT SELECT ON T1 to user_1@localhost;
connect con1,localhost,user_1,,d1; connect con1,localhost,user_1,,d1;
select * from t1; select * from t1;
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `d1`.`t1`
select * from T1; select * from T1;
f1 f1
connection default; connection default;
......
This diff is collapsed.
--source include/have_debug.inc
--echo #
--echo # MDEV-29672 Add MTR tests covering key and key segment flags and types
--echo #
SET debug_dbug='+d,key';
CREATE TABLE types (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
type TEXT NOT NULL,
prefix_length INT NOT NULL
);
INSERT INTO types (type, prefix_length) VALUES
('INT', 0),
('BIGINT', 0),
('DOUBLE', 0),
('DECIMAL(20,10)', 0),
('CHAR(4)', 0),
('CHAR(10)', 0),
('VARCHAR(4)', 0),
('VARCHAR(6)', 0),
('VARCHAR(8)', 0),
('VARCHAR(12)', 0),
('VARCHAR(16)', 0),
('VARCHAR(100)', 0),
('TEXT', 4),
('TEXT', 6),
('TEXT', 8),
('TEXT', 12),
('TEXT', 16),
('TEXT', 100);
DELIMITER $$;
BEGIN NOT ATOMIC
DECLARE create2_template TEXT
DEFAULT 'CREATE TABLE t1 (a TYPE1 NOT NULL, b TYPE2 NOT NULL, KEY(SEG1,SEG2))';
DECLARE cur2 CURSOR FOR
SELECT t1.type AS type1,
t2.type AS type2,
t1.prefix_length AS prefix_length1,
t2.prefix_length AS prefix_length2
FROM types AS t1, types AS t2
ORDER BY t1.id, t2.id;
FOR rec IN cur2 DO
BEGIN
DECLARE tabledef TEXT DEFAULT REPLACE(create2_template,'TYPE1', rec.type1);
SET tabledef=REPLACE(tabledef, 'TYPE2', rec.type2);
SET tabledef=REPLACE(tabledef, 'SEG1',
IF(rec.prefix_length1,
CONCAT('a(',rec.prefix_length1,')'), 'a'));
SET tabledef=REPLACE(tabledef, 'SEG2',
IF(rec.prefix_length2,
CONCAT('b(',rec.prefix_length2,')'), 'b'));
SELECT tabledef AS ``;
EXECUTE IMMEDIATE tabledef;
SHOW WARNINGS;
SHOW CREATE TABLE t1;
DROP TABLE t1;
END;
END FOR;
END;
$$
DELIMITER ;$$
DROP TABLE types;
SET debug_dbug='';
...@@ -666,7 +666,7 @@ connect unsecure,localhost,untrusted,,mysqltest1; ...@@ -666,7 +666,7 @@ connect unsecure,localhost,untrusted,,mysqltest1;
mysql mysqltest1 -uuntrusted < var/tmp/bug31611.sql mysql mysqltest1 -uuntrusted < var/tmp/bug31611.sql
connection unsecure; connection unsecure;
INSERT INTO t1 VALUES (1,USER()); INSERT INTO t1 VALUES (1,USER());
ERROR 42000: INSERT command denied to user 'untrusted'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'untrusted'@'localhost' for table `mysqltest1`.`t1`
SELECT * FROM t1; SELECT * FROM t1;
a b a b
1 root@localhost 1 root@localhost
......
...@@ -1866,6 +1866,7 @@ drop table `t1`; ...@@ -1866,6 +1866,7 @@ drop table `t1`;
create table t1(a int); create table t1(a int);
create table t2(a int); create table t2(a int);
create table t3(a int); create table t3(a int);
mysqldump: Couldn't find table: "non_existing"
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
...@@ -3443,6 +3444,8 @@ create table t1 ( id serial ); ...@@ -3443,6 +3444,8 @@ create table t1 ( id serial );
create view v1 as select * from t1; create view v1 as select * from t1;
drop table t1; drop table t1;
mysqldump { mysqldump {
mysqldump: Got error: 1356: "View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them" when using LOCK TABLES
mysqldump: Couldn't execute 'SHOW FIELDS FROM `v1`': View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)
-- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1` -- failed on view `v1`: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`id` AS `id` from `t1`
...@@ -3736,6 +3739,9 @@ DROP TABLE t1; ...@@ -3736,6 +3739,9 @@ DROP TABLE t1;
CREATE TABLE t1(a int); CREATE TABLE t1(a int);
INSERT INTO t1 VALUES (1), (2); INSERT INTO t1 VALUES (1), (2);
mysqldump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa mysqldump: Input filename too long: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
DROP TABLE t1; DROP TABLE t1;
CREATE TABLE t2 (a INT) ENGINE=MyISAM; CREATE TABLE t2 (a INT) ENGINE=MyISAM;
CREATE TABLE t3 (a INT) ENGINE=MyISAM; CREATE TABLE t3 (a INT) ENGINE=MyISAM;
...@@ -3829,6 +3835,7 @@ grant all privileges on mysqldump_test_db.* to user2; ...@@ -3829,6 +3835,7 @@ grant all privileges on mysqldump_test_db.* to user2;
connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK; connect user27293,localhost,user1,,mysqldump_test_db,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user27293; connection user27293;
create procedure mysqldump_test_db.sp1() select 'hello'; create procedure mysqldump_test_db.sp1() select 'hello';
mysqldump: user2 has insufficient privileges to SHOW CREATE PROCEDURE `sp1`!
-- insufficient privileges to SHOW CREATE PROCEDURE `sp1` -- insufficient privileges to SHOW CREATE PROCEDURE `sp1`
-- does user2 have permissions on mysql.proc? -- does user2 have permissions on mysql.proc?
...@@ -4060,6 +4067,7 @@ UNLOCK TABLES; ...@@ -4060,6 +4067,7 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
mysqldump: Got error: 1146: "Table 'test.???????????????????????' doesn't exist" when using LOCK TABLES
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */; /*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
...@@ -4283,6 +4291,7 @@ Abernathy ...@@ -4283,6 +4291,7 @@ Abernathy
aberrant aberrant
aberration aberration
drop table words; drop table words;
mysqlimport: Error: 1146, Table 'test.words' doesn't exist, when using table: words
drop table t1; drop table t1;
drop table t2; drop table t2;
drop table words2; drop table words2;
...@@ -4603,6 +4612,8 @@ CREATE TABLE t1 (a INT, b CHAR(10) CHARSET koi8r, c CHAR(10) CHARSET latin1); ...@@ -4603,6 +4612,8 @@ CREATE TABLE t1 (a INT, b CHAR(10) CHARSET koi8r, c CHAR(10) CHARSET latin1);
CREATE TABLE t2 LIKE t1; CREATE TABLE t2 LIKE t1;
INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL); INSERT INTO t1 VALUES (1, 'ABC-АБВ', 'DEF-ÂÃÄ'), (2, NULL, NULL);
# error on multi-character ENCLOSED/ESCAPED BY # error on multi-character ENCLOSED/ESCAPED BY
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
mysqldump: Got error: 1083: "Field separator argument is not what is expected; check the manual" when executing 'SELECT INTO OUTFILE'
# default '--default-charset' (binary): # default '--default-charset' (binary):
################################################## ##################################################
1 ABC- DEF- 1 ABC- DEF-
...@@ -5089,6 +5100,7 @@ connection conn_1; ...@@ -5089,6 +5100,7 @@ connection conn_1;
<field name="c1">3</field> <field name="c1">3</field>
</row> </row>
</table_data> </table_data>
mysqldump: user1 has insufficient privileges to SHOW CREATE FUNCTION `hello1`!
<triggers name="t2"> <triggers name="t2">
<trigger Trigger="trig1" sql_mode="" character_set_client="latin1" collation_connection="latin1_swedish_ci" Database_Collation="latin1_swedish_ci" Created="--TIME--"> <trigger Trigger="trig1" sql_mode="" character_set_client="latin1" collation_connection="latin1_swedish_ci" Database_Collation="latin1_swedish_ci" Created="--TIME--">
<![CDATA[ <![CDATA[
...@@ -5392,6 +5404,8 @@ ROUTINE_NAME ...@@ -5392,6 +5404,8 @@ ROUTINE_NAME
proc proc
one one
DROP DATABASE bug25717383; DROP DATABASE bug25717383;
mysqldump: Got error: 2005: "Unknown server host 'unknownhost'" when trying to connect
mysqldump: Couldn't execute 'SHOW SLAVE STATUS': Server has gone away (2006)
Usage: mysqldump [OPTIONS] database [tables] Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases DB1 [DB2 DB3...] OR mysqldump [OPTIONS] --databases DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases OR mysqldump [OPTIONS] --all-databases
...@@ -5621,6 +5635,7 @@ t1_id int, ...@@ -5621,6 +5635,7 @@ t1_id int,
CONSTRAINT fk CONSTRAINT fk
FOREIGN KEY (t1_id) REFERENCES t1 (id) FOREIGN KEY (t1_id) REFERENCES t1 (id)
) ENGINE = InnoDB; ) ENGINE = InnoDB;
mysqlimport: Error: 1452, Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `fk` FOREIGN KEY (`t1_id`) REFERENCES `t1` (`id`)), when using table: t2
select count(*) from t2; select count(*) from t2;
count(*) count(*)
1 1
...@@ -6299,6 +6314,7 @@ j integer ...@@ -6299,6 +6314,7 @@ j integer
INSERT INTO t VALUES (1,1),(2,2),(3,3),(4,4); INSERT INTO t VALUES (1,1),(2,2),(3,3),(4,4);
# Dump database 1 # Dump database 1
# Restore from database 1 to database 2 # Restore from database 1 to database 2
ERROR 1100 (HY000) at line 45: Table 'seq_t_i' was not locked with LOCK TABLES
SETVAL(`seq_t_i`, 1, 0) SETVAL(`seq_t_i`, 1, 0)
1 1
DROP DATABASE IF EXISTS test1; DROP DATABASE IF EXISTS test1;
......
This diff is collapsed.
...@@ -22,7 +22,7 @@ select * from t1; ...@@ -22,7 +22,7 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user1'@'localhost' for table `test`.`t1`
connection con3; connection con3;
SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher'; SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
have_ssl have_ssl
...@@ -31,7 +31,7 @@ select * from t1; ...@@ -31,7 +31,7 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user3'@'localhost' for table `test`.`t1`
connection con4; connection con4;
SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher'; SELECT VARIABLE_VALUE <> '' AS have_ssl FROM INFORMATION_SCHEMA.SESSION_STATUS WHERE VARIABLE_NAME='Ssl_cipher';
have_ssl have_ssl
...@@ -40,7 +40,7 @@ select * from t1; ...@@ -40,7 +40,7 @@ select * from t1;
f1 f1
5 5
delete from t1; delete from t1;
ERROR 42000: DELETE command denied to user 'ssl_user4'@'localhost' for table 't1' ERROR 42000: DELETE command denied to user 'ssl_user4'@'localhost' for table `test`.`t1`
connection default; connection default;
disconnect con1; disconnect con1;
disconnect con3; disconnect con3;
......
...@@ -13,7 +13,7 @@ return a+1; ...@@ -13,7 +13,7 @@ return a+1;
END| END|
set optimizer_trace="enabled=on"; set optimizer_trace="enabled=on";
select * from db1.t1; select * from db1.t1;
ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'foo'@'localhost' for table `db1`.`t1`
select * from information_schema.OPTIMIZER_TRACE; select * from information_schema.OPTIMIZER_TRACE;
QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES QUERY TRACE MISSING_BYTES_BEYOND_MAX_MEM_SIZE INSUFFICIENT_PRIVILEGES
0 1 0 1
......
...@@ -1897,7 +1897,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ...@@ -1897,7 +1897,7 @@ ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
SELECT * FROM t1 PARTITION (p0); SELECT * FROM t1 PARTITION (p0);
i i
UNLOCK TABLES; UNLOCK TABLES;
DROP TABLE t1; DROP TABLE t1, t2;
# #
# MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause. # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
# #
...@@ -1915,7 +1915,88 @@ a b ...@@ -1915,7 +1915,88 @@ a b
4 3 4 3
8 2 8 2
2 6 2 6
DROP TABLE t1, t2; DROP TABLE t1;
#
# MDEV-21134 Crash with partitioned table, PARTITION syntax, and index_merge.
#
create table t1 (
pk int primary key,
a int,
b int,
filler char(32),
key (a),
key (b)
) engine=myisam partition by range(pk) (
partition p0 values less than (10),
partition p1 values less than MAXVALUE
) ;
insert into t1 select
seq,
MOD(seq, 100),
MOD(seq, 100),
'filler-data-filler-data'
from
seq_1_to_5000;
explain select * from t1 partition (p1) where a=10 and b=10;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 index_merge a,b a,b 5,5 NULL 1 Using intersect(a,b); Using where
flush tables;
select * from t1 partition (p1)where a=10 and b=10;
pk a b filler
10 10 10 filler-data-filler-data
110 10 10 filler-data-filler-data
210 10 10 filler-data-filler-data
310 10 10 filler-data-filler-data
410 10 10 filler-data-filler-data
510 10 10 filler-data-filler-data
610 10 10 filler-data-filler-data
710 10 10 filler-data-filler-data
810 10 10 filler-data-filler-data
910 10 10 filler-data-filler-data
1010 10 10 filler-data-filler-data
1110 10 10 filler-data-filler-data
1210 10 10 filler-data-filler-data
1310 10 10 filler-data-filler-data
1410 10 10 filler-data-filler-data
1510 10 10 filler-data-filler-data
1610 10 10 filler-data-filler-data
1710 10 10 filler-data-filler-data
1810 10 10 filler-data-filler-data
1910 10 10 filler-data-filler-data
2010 10 10 filler-data-filler-data
2110 10 10 filler-data-filler-data
2210 10 10 filler-data-filler-data
2310 10 10 filler-data-filler-data
2410 10 10 filler-data-filler-data
2510 10 10 filler-data-filler-data
2610 10 10 filler-data-filler-data
2710 10 10 filler-data-filler-data
2810 10 10 filler-data-filler-data
2910 10 10 filler-data-filler-data
3010 10 10 filler-data-filler-data
3110 10 10 filler-data-filler-data
3210 10 10 filler-data-filler-data
3310 10 10 filler-data-filler-data
3410 10 10 filler-data-filler-data
3510 10 10 filler-data-filler-data
3610 10 10 filler-data-filler-data
3710 10 10 filler-data-filler-data
3810 10 10 filler-data-filler-data
3910 10 10 filler-data-filler-data
4010 10 10 filler-data-filler-data
4110 10 10 filler-data-filler-data
4210 10 10 filler-data-filler-data
4310 10 10 filler-data-filler-data
4410 10 10 filler-data-filler-data
4510 10 10 filler-data-filler-data
4610 10 10 filler-data-filler-data
4710 10 10 filler-data-filler-data
4810 10 10 filler-data-filler-data
4910 10 10 filler-data-filler-data
DROP TABLE t1;
#
# End of 10.3 tests
#
# #
# MDEV-18982: INSERT using explicit patition pruning with column list # MDEV-18982: INSERT using explicit patition pruning with column list
# #
...@@ -1925,3 +2006,6 @@ select * from t1; ...@@ -1925,3 +2006,6 @@ select * from t1;
a a
1 1
drop table t1; drop table t1;
#
# End of 10.4 tests
#
--source include/have_innodb.inc --source include/have_innodb.inc
--source include/have_partition.inc --source include/have_partition.inc
--source include/have_sequence.inc
# Helper statement # Helper statement
let $get_handler_status_counts= SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS let $get_handler_status_counts= SELECT * FROM INFORMATION_SCHEMA.SESSION_STATUS
...@@ -876,7 +877,7 @@ SELECT * FROM t1 PARTITION (p0); ...@@ -876,7 +877,7 @@ SELECT * FROM t1 PARTITION (p0);
ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2; ALTER TABLE t1 EXCHANGE PARTITION p0 WITH TABLE t2;
SELECT * FROM t1 PARTITION (p0); SELECT * FROM t1 PARTITION (p0);
UNLOCK TABLES; UNLOCK TABLES;
DROP TABLE t1; DROP TABLE t1, t2;
--echo # --echo #
--echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause. --echo # MDEV-18371 Server crashes in ha_innobase::cmp_ref upon UPDATE with PARTITION clause.
...@@ -887,10 +888,41 @@ INSERT INTO t1 VALUES (3,0),(8,2),(7,8),(3,4),(2,4),(0,7),(4,3),(3,6); ...@@ -887,10 +888,41 @@ INSERT INTO t1 VALUES (3,0),(8,2),(7,8),(3,4),(2,4),(0,7),(4,3),(3,6);
FLUSH TABLES; FLUSH TABLES;
UPDATE t1 PARTITION (p3,p1) SET a = 2 WHERE a = 3; UPDATE t1 PARTITION (p3,p1) SET a = 2 WHERE a = 3;
SELECT * FROM t1; SELECT * FROM t1;
DROP TABLE t1;
--echo #
--echo # MDEV-21134 Crash with partitioned table, PARTITION syntax, and index_merge.
--echo #
create table t1 (
pk int primary key,
a int,
b int,
filler char(32),
key (a),
key (b)
) engine=myisam partition by range(pk) (
partition p0 values less than (10),
partition p1 values less than MAXVALUE
) ;
insert into t1 select
seq,
MOD(seq, 100),
MOD(seq, 100),
'filler-data-filler-data'
from
seq_1_to_5000;
explain select * from t1 partition (p1) where a=10 and b=10;
flush tables;
select * from t1 partition (p1)where a=10 and b=10;
# Cleanup DROP TABLE t1;
DROP TABLE t1, t2;
--echo #
--echo # End of 10.3 tests
--echo #
--echo # --echo #
--echo # MDEV-18982: INSERT using explicit patition pruning with column list --echo # MDEV-18982: INSERT using explicit patition pruning with column list
...@@ -900,3 +932,8 @@ create table t1 (a int) partition by hash(a); ...@@ -900,3 +932,8 @@ create table t1 (a int) partition by hash(a);
insert into t1 partition (p0) (a) values (1); insert into t1 partition (p0) (a) values (1);
select * from t1; select * from t1;
drop table t1; drop table t1;
--echo #
--echo # End of 10.4 tests
--echo #
...@@ -14,7 +14,7 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost` ...@@ -14,7 +14,7 @@ GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT, ALTER ON `mysqltest_1`.* TO `mysqltest_1`@`localhost` GRANT SELECT, ALTER ON `mysqltest_1`.* TO `mysqltest_1`@`localhost`
alter table t1 add b int; alter table t1 add b int;
alter table t1 drop partition p2; alter table t1 drop partition p2;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `mysqltest_1`.`t1`
disconnect conn1; disconnect conn1;
connection default; connection default;
grant drop on mysqltest_1.* to mysqltest_1@localhost; grant drop on mysqltest_1.* to mysqltest_1@localhost;
...@@ -25,7 +25,7 @@ connection default; ...@@ -25,7 +25,7 @@ connection default;
revoke alter on mysqltest_1.* from mysqltest_1@localhost; revoke alter on mysqltest_1.* from mysqltest_1@localhost;
connect conn3,localhost,mysqltest_1,,mysqltest_1; connect conn3,localhost,mysqltest_1,,mysqltest_1;
alter table t1 drop partition p3; alter table t1 drop partition p3;
ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: ALTER command denied to user 'mysqltest_1'@'localhost' for table `mysqltest_1`.`t1`
disconnect conn3; disconnect conn3;
connection default; connection default;
revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost; revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost;
......
...@@ -6,7 +6,7 @@ GRANT INSERT ON mysql.plugin TO bug51770@localhost; ...@@ -6,7 +6,7 @@ GRANT INSERT ON mysql.plugin TO bug51770@localhost;
connect con1,localhost,bug51770,,; connect con1,localhost,bug51770,,;
INSTALL PLUGIN example SONAME 'ha_example.so'; INSTALL PLUGIN example SONAME 'ha_example.so';
UNINSTALL PLUGIN example; UNINSTALL PLUGIN example;
ERROR 42000: DELETE command denied to user 'bug51770'@'localhost' for table 'plugin' ERROR 42000: DELETE command denied to user 'bug51770'@'localhost' for table `mysql`.`plugin`
connection default; connection default;
GRANT DELETE ON mysql.plugin TO bug51770@localhost; GRANT DELETE ON mysql.plugin TO bug51770@localhost;
connection con1; connection con1;
......
...@@ -216,7 +216,7 @@ new trigger: 10 ...@@ -216,7 +216,7 @@ new trigger: 10
drop trigger t1_bd; drop trigger t1_bd;
set @val=11; set @val=11;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select @message; select @message;
...@@ -226,7 +226,7 @@ Test 6-e: removing a relevant trigger ...@@ -226,7 +226,7 @@ Test 6-e: removing a relevant trigger
drop trigger t1_bi; drop trigger t1_bi;
set @val=12; set @val=12;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select @message; select @message;
...@@ -386,7 +386,7 @@ a ...@@ -386,7 +386,7 @@ a
flush table t1; flush table t1;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select * from t2; select * from t2;
...@@ -834,7 +834,7 @@ a b c ...@@ -834,7 +834,7 @@ a b c
10 20 50 10 20 50
20 40 100 20 40 100
30 60 150 30 60 150
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
# Check that we properly handle ALTER VIEW statements. # Check that we properly handle ALTER VIEW statements.
...@@ -1214,7 +1214,7 @@ drop trigger v2_bi; ...@@ -1214,7 +1214,7 @@ drop trigger v2_bi;
set @message=null; set @message=null;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
SUCCESS SUCCESS
select @message; select @message;
...@@ -2588,7 +2588,7 @@ SELECT * FROM t1; ...@@ -2588,7 +2588,7 @@ SELECT * FROM t1;
a a
2048 2048
1025 1025
1024 2048
DROP TABLE t1; DROP TABLE t1;
# #
# End of 10.1 tests # End of 10.1 tests
......
...@@ -252,7 +252,8 @@ drop trigger t1_bd; ...@@ -252,7 +252,8 @@ drop trigger t1_bd;
set @val=11; set @val=11;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); # No trigger in opened table => nothing to check => no reprepare
call p_verify_reprepare_count(0);
select @message; select @message;
--echo Test 6-e: removing a relevant trigger --echo Test 6-e: removing a relevant trigger
...@@ -261,7 +262,8 @@ drop trigger t1_bi; ...@@ -261,7 +262,8 @@ drop trigger t1_bi;
set @val=12; set @val=12;
execute stmt using @val; execute stmt using @val;
call p_verify_reprepare_count(1); # No trigger in opened table => nothing to check => no reprepare
call p_verify_reprepare_count(0);
select @message; select @message;
set @val=13; set @val=13;
execute stmt using @val; execute stmt using @val;
...@@ -376,7 +378,8 @@ select * from t3; ...@@ -376,7 +378,8 @@ select * from t3;
flush table t1; flush table t1;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); # flush tables now do not mean reprepare
call p_verify_reprepare_count(0);
select * from t2; select * from t2;
select * from t3; select * from t3;
drop view v1; drop view v1;
...@@ -745,7 +748,7 @@ call p_verify_reprepare_count(1); ...@@ -745,7 +748,7 @@ call p_verify_reprepare_count(1);
flush table t2; flush table t2;
execute stmt; execute stmt;
call p_verify_reprepare_count(1); call p_verify_reprepare_count(0);
--echo # Check that we properly handle ALTER VIEW statements. --echo # Check that we properly handle ALTER VIEW statements.
execute stmt; execute stmt;
...@@ -973,7 +976,8 @@ drop trigger v2_bi; ...@@ -973,7 +976,8 @@ drop trigger v2_bi;
set @message=null; set @message=null;
set @var=9; set @var=9;
execute stmt using @var; execute stmt using @var;
call p_verify_reprepare_count(1); # No trigger in opened table => nothing to check => no reprepare
call p_verify_reprepare_count(0);
select @message; select @message;
create trigger v2_bi after insert on v2 for each row set @message="v2_ai"; create trigger v2_bi after insert on v2 for each row set @message="v2_ai";
set @var= 10; set @var= 10;
......
...@@ -28,7 +28,7 @@ execute s_t9 ; ...@@ -28,7 +28,7 @@ execute s_t9 ;
my_col my_col
1 1
select a as my_col from t1; select a as my_col from t1;
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table `mysqltest`.`t1`
connection default; connection default;
grant select on mysqltest.t1 to second_user@localhost grant select on mysqltest.t1 to second_user@localhost
identified by 'looser' ; identified by 'looser' ;
...@@ -71,7 +71,7 @@ Grants for second_user@localhost ...@@ -71,7 +71,7 @@ Grants for second_user@localhost
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost` GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3' GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
execute s_t1 ; execute s_t1 ;
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table `mysqltest`.`t1`
connection default; connection default;
disconnect con3; disconnect con3;
revoke all privileges, grant option from second_user@localhost ; revoke all privileges, grant option from second_user@localhost ;
......
...@@ -541,25 +541,25 @@ show create database mysqltest; ...@@ -541,25 +541,25 @@ show create database mysqltest;
Database Create Database Database Create Database
mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */
drop table t1; drop table t1;
ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_1'@'localhost' for table `mysqltest`.`t1`
drop database mysqltest; drop database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest' ERROR 42000: Access denied for user 'mysqltest_1'@'localhost' to database 'mysqltest'
disconnect con1; disconnect con1;
connect con2,localhost,mysqltest_2,,test; connect con2,localhost,mysqltest_2,,test;
connection con2; connection con2;
select * from mysqltest.t1; select * from mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t1`
show create database mysqltest; show create database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest' ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
drop table mysqltest.t1; drop table mysqltest.t1;
ERROR 42000: DROP command denied to user 'mysqltest_2'@'localhost' for table 't1' ERROR 42000: DROP command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t1`
drop database mysqltest; drop database mysqltest;
ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest' ERROR 42000: Access denied for user 'mysqltest_2'@'localhost' to database 'mysqltest'
disconnect con2; disconnect con2;
connect con3,localhost,mysqltest_3,,test; connect con3,localhost,mysqltest_3,,test;
connection con3; connection con3;
select * from mysqltest.t1; select * from mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
show create database mysqltest; show create database mysqltest;
Database Create Database Database Create Database
mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */ mysqltest CREATE DATABASE `mysqltest` /*!40100 DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci */
......
...@@ -21,9 +21,9 @@ user1@localhost ...@@ -21,9 +21,9 @@ user1@localhost
# Making sure that user1 does not have privileges to db1.t1 # Making sure that user1 does not have privileges to db1.t1
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
# #
# Trigger: using TYPE OF with a table we don't have access to # Trigger: using TYPE OF with a table we don't have access to
# #
...@@ -39,7 +39,7 @@ SET NEW.b = 10; ...@@ -39,7 +39,7 @@ SET NEW.b = 10;
END END
$$ $$
INSERT INTO t1 (a) VALUES (10); INSERT INTO t1 (a) VALUES (10);
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
SELECT * FROM t1; SELECT * FROM t1;
a b a b
10 20 10 20
...@@ -56,7 +56,7 @@ SELECT a; ...@@ -56,7 +56,7 @@ SELECT a;
END; END;
$$ $$
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using TYPE OF for with a table that we don't have access to # Stored procedure: Using TYPE OF for with a table that we don't have access to
...@@ -72,7 +72,7 @@ END; ...@@ -72,7 +72,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
connection default; connection default;
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
...@@ -84,7 +84,7 @@ END; ...@@ -84,7 +84,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using TYPE OF for with a table that we don't have access to # Stored procedure: Using TYPE OF for with a table that we don't have access to
...@@ -129,7 +129,7 @@ RETURN OCTET_LENGTH(a); ...@@ -129,7 +129,7 @@ RETURN OCTET_LENGTH(a);
END; END;
$$ $$
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -147,7 +147,7 @@ END; ...@@ -147,7 +147,7 @@ END;
$$ $$
connection conn1; connection conn1;
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -176,7 +176,7 @@ connection conn1; ...@@ -176,7 +176,7 @@ connection conn1;
# Making sure that user1 has access to db1.t1.a, but not to db1.t1.b # Making sure that user1 has access to db1.t1.a, but not to db1.t1.b
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) YES NULL a int(11) YES NULL
......
...@@ -50,7 +50,7 @@ select db1_secret.db(); ...@@ -50,7 +50,7 @@ select db1_secret.db();
db1_secret.db() db1_secret.db()
test test
select * from db1_secret.t1; select * from db1_secret.t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1_secret`.`t1`
create procedure db1_secret.dummy() begin end; create procedure db1_secret.dummy() begin end;
ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret' ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret'
drop procedure db1_secret.dummy; drop procedure db1_secret.dummy;
...@@ -65,7 +65,7 @@ select db1_secret.db(); ...@@ -65,7 +65,7 @@ select db1_secret.db();
db1_secret.db() db1_secret.db()
test test
select * from db1_secret.t1; select * from db1_secret.t1;
ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1' ERROR 42000: SELECT command denied to user ''@'localhost' for table `db1_secret`.`t1`
create procedure db1_secret.dummy() begin end; create procedure db1_secret.dummy() begin end;
ERROR 42000: Access denied for user ''@'%' to database 'db1_secret' ERROR 42000: Access denied for user ''@'%' to database 'db1_secret'
drop procedure db1_secret.dummy; drop procedure db1_secret.dummy;
...@@ -102,14 +102,14 @@ db() ...@@ -102,14 +102,14 @@ db()
test test
connection con2user1; connection con2user1;
call db1_secret.stamp(5); call db1_secret.stamp(5);
ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table `db1_secret`.`t1`
select db1_secret.db(); select db1_secret.db();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1_secret`.`t1`
connection con3anon; connection con3anon;
call db1_secret.stamp(6); call db1_secret.stamp(6);
ERROR 42000: INSERT command denied to user ''@'localhost' for table 't1' ERROR 42000: INSERT command denied to user ''@'localhost' for table `db1_secret`.`t1`
select db1_secret.db(); select db1_secret.db();
ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1' ERROR 42000: SELECT command denied to user ''@'localhost' for table `db1_secret`.`t1`
connection con1root; connection con1root;
drop database if exists db2; drop database if exists db2;
create database db2; create database db2;
...@@ -127,7 +127,7 @@ connection con2user1; ...@@ -127,7 +127,7 @@ connection con2user1;
use db2; use db2;
create procedure p () insert into t2 values (1); create procedure p () insert into t2 values (1);
call p(); call p();
ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table `db2`.`t2`
connect con4user2,localhost,user2,,; connect con4user2,localhost,user2,,;
connection con4user2; connection con4user2;
use db2; use db2;
...@@ -405,9 +405,9 @@ id int(11) YES NULL ...@@ -405,9 +405,9 @@ id int(11) YES NULL
call db_bug14533.bug14533_2(); call db_bug14533.bug14533_2();
id id
desc db_bug14533.t1; desc db_bug14533.t1;
ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table `db_bug14533`.`t1`
select * from db_bug14533.t1; select * from db_bug14533.t1;
ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user_bug14533'@'localhost' for table `db_bug14533`.`t1`
connection default; connection default;
disconnect user_bug14533; disconnect user_bug14533;
drop user user_bug14533@localhost; drop user user_bug14533@localhost;
...@@ -567,24 +567,24 @@ END| ...@@ -567,24 +567,24 @@ END|
CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT f_evil(); CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT f_evil();
connect conn1, localhost, mysqltest_u1,,; connect conn1, localhost, mysqltest_u1,,;
SELECT COUNT(*) FROM t1; SELECT COUNT(*) FROM t1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT f_evil(); SELECT f_evil();
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
SELECT f_suid(f_evil()); SELECT f_suid(f_evil());
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
CALL p_suid(f_evil()); CALL p_suid(f_evil());
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`t1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
SELECT * FROM v1; SELECT * FROM v1;
ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'mysqltest_u1'@'localhost' for table `test`.`v1`
SELECT @a, @b; SELECT @a, @b;
@a @b @a @b
mysqltest_u1@localhost NULL mysqltest_u1@localhost NULL
......
...@@ -243,13 +243,13 @@ return (select * from db37908.t1 limit 1)| ...@@ -243,13 +243,13 @@ return (select * from db37908.t1 limit 1)|
connect user1,localhost,mysqltest_1,,test; connect user1,localhost,mysqltest_1,,test;
connection user1; connection user1;
select * from db37908.t1; select * from db37908.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
show status where variable_name ='uptime' and 2 in (select * from db37908.t1); show status where variable_name ='uptime' and 2 in (select * from db37908.t1);
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
show procedure status where name ='proc37908' and 1 in (select f1 from db37908.t1); show procedure status where name ='proc37908' and 1 in (select f1 from db37908.t1);
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
show function status where name ='func37908' and 1 in (select func37908()); show function status where name ='func37908' and 1 in (select func37908());
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `db37908`.`t1`
connection default; connection default;
disconnect user1; disconnect user1;
disconnect root; disconnect root;
......
...@@ -25,9 +25,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC') ...@@ -25,9 +25,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC')
update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC') update t1, t2 set t1.b = convert_tz('2004-10-21 19:00:00', 'Europe/Moscow', 'UTC')
where t1.a = t2.c and t2.d = (select max(d) from t2); where t1.a = t2.c and t2.d = (select max(d) from t2);
select * from mysql.time_zone_name; select * from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name; select Name, convert_tz('2004-10-21 19:00:00', Name, 'UTC') from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
connection default; connection default;
disconnect tzuser; disconnect tzuser;
connection default; connection default;
...@@ -54,9 +54,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC') ...@@ -54,9 +54,9 @@ convert_tz(b, 'Europe/Moscow', 'UTC')
update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC') update t1, t2 set t1.b = convert_tz('2004-11-30 12:00:00', 'Europe/Moscow', 'UTC')
where t1.a = t2.c and t2.d = (select max(d) from t2); where t1.a = t2.c and t2.d = (select max(d) from t2);
select * from mysql.time_zone_name; select * from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name; select Name, convert_tz('2004-11-30 12:00:00', Name, 'UTC') from mysql.time_zone_name;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone_name' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone_name`
drop table t1, t2; drop table t1, t2;
create table t1 (a int, b datetime); create table t1 (a int, b datetime);
create table t2 (a int, b varchar(40)); create table t2 (a int, b varchar(40));
...@@ -82,10 +82,10 @@ a lb ...@@ -82,10 +82,10 @@ a lb
1 2001-01-01 03:00:00 1 2001-01-01 03:00:00
2 2002-01-01 03:00:00 2 2002-01-01 03:00:00
select * from v1, mysql.time_zone; select * from v1, mysql.time_zone;
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table 'time_zone' ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone`
drop view v1; drop view v1;
create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone; create view v1 as select a, convert_tz(b, 'UTC', 'Europe/Moscow') as lb from t1, mysql.time_zone;
ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table 'time_zone' ERROR 42000: ANY command denied to user 'mysqltest_1'@'localhost' for table `mysql`.`time_zone`
connection default; connection default;
disconnect tzuser3; disconnect tzuser3;
drop table t1; drop table t1;
......
...@@ -23,7 +23,7 @@ connection wl2818_definer_con; ...@@ -23,7 +23,7 @@ connection wl2818_definer_con;
CREATE TRIGGER trg1 AFTER INSERT ON t1 CREATE TRIGGER trg1 AFTER INSERT ON t1
FOR EACH ROW FOR EACH ROW
INSERT INTO t2 VALUES(CURRENT_USER()); INSERT INTO t2 VALUES(CURRENT_USER());
ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t1`
disconnect wl2818_definer_con; disconnect wl2818_definer_con;
connection default; connection default;
GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
...@@ -38,12 +38,12 @@ REVOKE TRIGGER ON mysqltest_db1.t1 FROM mysqltest_dfn@localhost; ...@@ -38,12 +38,12 @@ REVOKE TRIGGER ON mysqltest_db1.t1 FROM mysqltest_dfn@localhost;
connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1; connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1;
connection wl2818_definer_con; connection wl2818_definer_con;
DROP TRIGGER trg1; DROP TRIGGER trg1;
ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t1`
disconnect wl2818_definer_con; disconnect wl2818_definer_con;
connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1; connect wl2818_definer_con,localhost,mysqltest_dfn,,mysqltest_db1;
connection wl2818_definer_con; connection wl2818_definer_con;
INSERT INTO t1 VALUES(0); INSERT INTO t1 VALUES(0);
ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t1`
disconnect wl2818_definer_con; disconnect wl2818_definer_con;
connection default; connection default;
GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost; GRANT TRIGGER ON mysqltest_db1.t1 TO mysqltest_dfn@localhost;
...@@ -95,7 +95,7 @@ REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost; ...@@ -95,7 +95,7 @@ REVOKE INSERT ON mysqltest_db1.t2 FROM mysqltest_dfn@localhost;
connection wl2818_invoker_con; connection wl2818_invoker_con;
use mysqltest_db1; use mysqltest_db1;
INSERT INTO t1 VALUES(3); INSERT INTO t1 VALUES(3);
ERROR 42000: INSERT command denied to user 'mysqltest_dfn'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'mysqltest_dfn'@'localhost' for table `mysqltest_db1`.`t2`
SELECT * FROM t1; SELECT * FROM t1;
num_value num_value
1 1
...@@ -563,7 +563,7 @@ INSERT INTO t2 VALUES (2); ...@@ -563,7 +563,7 @@ INSERT INTO t2 VALUES (2);
connection default; connection default;
REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_u1@localhost;
UPDATE IGNORE t1, t2 SET t1.a1 = 2, t2.a1 = 3 WHERE t1.a1 = 1 AND t2.a1 = 2; UPDATE IGNORE t1, t2 SET t1.a1 = 2, t2.a1 = 3 WHERE t1.a1 = 1 AND t2.a1 = 2;
ERROR 42000: TRIGGER command denied to user 'mysqltest_u1'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'mysqltest_u1'@'localhost' for table `mysqltest_db1`.`t1`
DROP DATABASE mysqltest_db1; DROP DATABASE mysqltest_db1;
DROP USER mysqltest_u1@localhost; DROP USER mysqltest_u1@localhost;
disconnect con1; disconnect con1;
......
...@@ -2679,5 +2679,90 @@ ALTER TABLE t4 ADD INDEX (`NULL`); ...@@ -2679,5 +2679,90 @@ ALTER TABLE t4 ADD INDEX (`NULL`);
DROP TABLE t1, t2, t3, t4; DROP TABLE t1, t2, t3, t4;
set @@default_storage_engine=@save_default_storage_engine; set @@default_storage_engine=@save_default_storage_engine;
# #
# MDEV-29022: add_slave destroy child list and has dead code
# (test added to be sure that ordering by several subqueries works)
#
create table t1 (aa int);
insert into t1 values (-1),(0),(1),(2),(3),(4),(5),(6),(98),(99),(100),(102);
create table t2 (a int, b int);
insert into t2 values (2,2),(2,3),(3,4),(3,5);
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
a b c d
0 99 -1 98
0 100 -1 99
2 2 1 1
2 3 1 2
3 4 2 3
3 5 2 4
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
a b c d
0 100 -1 101
0 99 -1 102
2 3 1 198
2 2 1 199
3 5 2 196
3 4 2 197
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
a b c d
0 99 -1 98
0 100 -1 99
2 2 1 1
2 3 1 2
3 4 2 3
3 5 2 4
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
a b c d
0 100 -1 101
0 99 -1 102
2 3 1 198
2 2 1 199
3 5 2 196
3 4 2 197
drop table t1,t2;
#
# End of 10.3 tests # End of 10.3 tests
# #
...@@ -1913,6 +1913,76 @@ DROP TABLE t1, t2, t3, t4; ...@@ -1913,6 +1913,76 @@ DROP TABLE t1, t2, t3, t4;
set @@default_storage_engine=@save_default_storage_engine; set @@default_storage_engine=@save_default_storage_engine;
--echo #
--echo # MDEV-29022: add_slave destroy child list and has dead code
--echo # (test added to be sure that ordering by several subqueries works)
--echo #
create table t1 (aa int);
insert into t1 values (-1),(0),(1),(2),(3),(4),(5),(6),(98),(99),(100),(102);
create table t2 (a int, b int);
insert into t2 values (2,2),(2,3),(3,4),(3,5);
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2
union select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d
union select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select max(aa) from t1 where aa < b);
(select a as a, b as b,
(select max(aa) from t1 where aa < t2.a) as c,
(select 200 - max(aa) from t1 where aa < t2.b) as d
from t2)
union (select 0 as a, 100 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 100) as d)
union (select 0 as a, 99 as b,
(select max(aa) from t1 where aa < 0) as c,
(select 200 - max(aa) from t1 where aa < 99) as d)
order by (select max(aa) from t1 where aa < a),
(select 200 - max(aa) from t1 where aa < b);
drop table t1,t2;
--echo # --echo #
--echo # End of 10.3 tests --echo # End of 10.3 tests
--echo # --echo #
...@@ -6823,6 +6823,34 @@ r ...@@ -6823,6 +6823,34 @@ r
drop view v1; drop view v1;
drop table t1; drop table t1;
# #
# MDEV-17124: mariadb 10.1.34, views and prepared statements:
# ERROR 1615 (HY000): Prepared statement needs to be re-prepared
#
set @tdc= @@table_definition_cache, @tc= @@table_open_cache;
set global table_definition_cache= 400, table_open_cache= 400;
create table tt (a int, primary key(a)) engine=MyISAM;
create view v as select * from tt;
insert into tt values(1),(2),(3),(4);
prepare stmt from 'select * from tt';
#fill table definition cache
execute stmt;
a
1
2
3
4
prepare stmt from 'select * from v';
execute stmt;
a
1
2
3
4
drop database db;
drop view v;
drop table tt;
set global table_definition_cache= @tdc, table_open_cache= @tc;
#
# End of 10.2 tests # End of 10.2 tests
# #
# #
......
...@@ -6539,6 +6539,46 @@ select * from (select sum((select * from cte)) as r) dt2; ...@@ -6539,6 +6539,46 @@ select * from (select sum((select * from cte)) as r) dt2;
drop view v1; drop view v1;
drop table t1; drop table t1;
--echo #
--echo # MDEV-17124: mariadb 10.1.34, views and prepared statements:
--echo # ERROR 1615 (HY000): Prepared statement needs to be re-prepared
--echo #
set @tdc= @@table_definition_cache, @tc= @@table_open_cache;
set global table_definition_cache= 400, table_open_cache= 400;
create table tt (a int, primary key(a)) engine=MyISAM;
create view v as select * from tt;
insert into tt values(1),(2),(3),(4);
prepare stmt from 'select * from tt';
--echo #fill table definition cache
--disable_query_log
--disable_result_log
create database db;
use db;
--let $tables=401
while ($tables)
{
--eval create table t$tables (i int) engine=MyISAM
--eval select * from t$tables
--dec $tables
}
use test;
--enable_query_log
--enable_result_log
execute stmt;
prepare stmt from 'select * from v';
execute stmt;
# Cleanup
drop database db;
drop view v;
drop table tt;
set global table_definition_cache= @tdc, table_open_cache= @tc;
--echo # --echo #
--echo # End of 10.2 tests --echo # End of 10.2 tests
--echo # --echo #
......
This diff is collapsed.
...@@ -23,9 +23,9 @@ user1@localhost ...@@ -23,9 +23,9 @@ user1@localhost
# Making sure that user1 does not have privileges to db1.t1 # Making sure that user1 does not have privileges to db1.t1
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
# #
# Trigger: using %TYPE with a table we don't have access to # Trigger: using %TYPE with a table we don't have access to
# #
...@@ -43,7 +43,7 @@ END; ...@@ -43,7 +43,7 @@ END;
END END
$$ $$
INSERT INTO t1 (a) VALUES (10); INSERT INTO t1 (a) VALUES (10);
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
SELECT * FROM t1; SELECT * FROM t1;
a b a b
10 20 10 20
...@@ -61,7 +61,7 @@ SELECT a; ...@@ -61,7 +61,7 @@ SELECT a;
END; END;
$$ $$
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
AS AS
...@@ -71,7 +71,7 @@ SELECT a.a; ...@@ -71,7 +71,7 @@ SELECT a.a;
END; END;
$$ $$
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using %TYPE for with a table that we don't have access to # Stored procedure: Using %TYPE for with a table that we don't have access to
...@@ -88,7 +88,7 @@ END; ...@@ -88,7 +88,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
connection default; connection default;
CREATE PROCEDURE p1() CREATE PROCEDURE p1()
...@@ -101,7 +101,7 @@ END; ...@@ -101,7 +101,7 @@ END;
$$ $$
connection conn1; connection conn1;
CALL p1; CALL p1;
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP PROCEDURE p1; DROP PROCEDURE p1;
# #
# Stored procedure: Using %TYPE for with a table that we don't have access to # Stored procedure: Using %TYPE for with a table that we don't have access to
...@@ -149,7 +149,7 @@ RETURN OCTET_LENGTH(a); ...@@ -149,7 +149,7 @@ RETURN OCTET_LENGTH(a);
END; END;
$$ $$
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -168,7 +168,7 @@ END; ...@@ -168,7 +168,7 @@ END;
$$ $$
connection conn1; connection conn1;
SELECT f1(); SELECT f1();
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table `db1`.`t1`
DROP FUNCTION f1; DROP FUNCTION f1;
DROP TABLE t1; DROP TABLE t1;
# #
...@@ -198,7 +198,7 @@ connection conn1; ...@@ -198,7 +198,7 @@ connection conn1;
# Making sure that user1 has access to db1.t1.a, but not to db1.t1.b # Making sure that user1 has access to db1.t1.a, but not to db1.t1.b
# #
SHOW CREATE TABLE db1.t1; SHOW CREATE TABLE db1.t1;
ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table 't1' ERROR 42000: SHOW command denied to user 'user1'@'localhost' for table `db1`.`t1`
SHOW FIELDS IN db1.t1; SHOW FIELDS IN db1.t1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
a int(11) YES NULL a int(11) YES NULL
......
...@@ -301,7 +301,7 @@ select * from t2; ...@@ -301,7 +301,7 @@ select * from t2;
a a
connection con1; connection con1;
create trigger trg before insert on t1 for each row set new.a= 10; create trigger trg before insert on t1 for each row set new.a= 10;
ERROR 42000: TRIGGER command denied to user 'zedjzlcsjhd'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'zedjzlcsjhd'@'localhost' for table `mysqltest1`.`t1`
connection master; connection master;
delete from t1; delete from t1;
create trigger trg before insert on t1 for each row set new.a= 10; create trigger trg before insert on t1 for each row set new.a= 10;
......
...@@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1; ...@@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant insert on db_storedproc_1.* to 'user_1'@'localhost'; grant insert on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
...@@ -276,9 +276,9 @@ inserted outside of SP NULL ...@@ -276,9 +276,9 @@ inserted outside of SP NULL
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
inserted from sp5_s_i 2000-10-00 inserted from sp5_s_i 2000-10-00
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
c1 c2 c3 c1 c2 c3
inserted outside of SP NULL inserted outside of SP NULL
...@@ -294,11 +294,11 @@ connection user5_2; ...@@ -294,11 +294,11 @@ connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
disconnect user5_2; disconnect user5_2;
connection default; connection default;
...@@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1 ...@@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
c1 c1
inserted outside SP inserted outside SP
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_sel(); CALL sp3166_sel();
c1 c1
inserted outside SP inserted outside SP
...@@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1; ...@@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
CALL sp3166_sel(); CALL sp3166_sel();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
disconnect user6_4; disconnect user6_4;
connection default; connection default;
CALL sp3166_s_i(); CALL sp3166_s_i();
......
...@@ -99,7 +99,7 @@ test_noprivs@localhost ...@@ -99,7 +99,7 @@ test_noprivs@localhost
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 3.5.3.2_1-no'; set new.f1 = 'trig 3.5.3.2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.2-no'); insert into t1 (f1) values ('insert 3.5.3.2-no');
...@@ -135,7 +135,7 @@ Testcase 3.5.3.6: ...@@ -135,7 +135,7 @@ Testcase 3.5.3.6:
connection no_privs; connection no_privs;
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.6-yes'); insert into t1 (f1) values ('insert 3.5.3.6-yes');
...@@ -688,7 +688,7 @@ insert into t2 values (new.f1); ...@@ -688,7 +688,7 @@ insert into t2 values (new.f1);
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant INSERT on priv_db.t2 to test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
...@@ -706,7 +706,7 @@ update t2 set f2=new.f1-1; ...@@ -706,7 +706,7 @@ update t2 set f2=new.f1-1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke INSERT on priv_db.t2 from test_yesprivs@localhost; revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
grant UPDATE on priv_db.t2 to test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
...@@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1; ...@@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
grant SELECT on priv_db.t2 to test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
...@@ -748,7 +748,7 @@ delete from t2; ...@@ -748,7 +748,7 @@ delete from t2;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant DELETE on priv_db.t2 to test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
......
...@@ -170,7 +170,7 @@ Field Type Null Key Default Extra ...@@ -170,7 +170,7 @@ Field Type Null Key Default Extra
f1 char(10) YES MUL NULL f1 char(10) YES MUL NULL
f2 text YES NULL f2 text YES NULL
SHOW COLUMNS FROM db_datadict.t2; SHOW COLUMNS FROM db_datadict.t2;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `db_datadict`.`t2`
SHOW COLUMNS FROM db_datadict.v1; SHOW COLUMNS FROM db_datadict.v1;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f2 int(1) NO 0 f2 int(1) NO 0
...@@ -182,13 +182,13 @@ TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAUL ...@@ -182,13 +182,13 @@ TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAUL
def db_datadict t2 f1 1 NULL NO char 10 10 NULL NULL NULL latin1 latin1_swedish_ci char(10) PRI insert NEVER NULL def db_datadict t2 f1 1 NULL NO char 10 10 NULL NULL NULL latin1 latin1_swedish_ci char(10) PRI insert NEVER NULL
def db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text insert NEVER NULL def db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL NULL latin1 latin1_swedish_ci text insert NEVER NULL
SHOW COLUMNS FROM db_datadict.t1; SHOW COLUMNS FROM db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table `db_datadict`.`t1`
SHOW COLUMNS FROM db_datadict.t2; SHOW COLUMNS FROM db_datadict.t2;
Field Type Null Key Default Extra Field Type Null Key Default Extra
f1 char(10) NO PRI NULL f1 char(10) NO PRI NULL
f2 text YES NULL f2 text YES NULL
SHOW COLUMNS FROM db_datadict.v1; SHOW COLUMNS FROM db_datadict.v1;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'v1' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table `db_datadict`.`v1`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
disconnect testuser2; disconnect testuser2;
......
...@@ -151,7 +151,7 @@ t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### NO ...@@ -151,7 +151,7 @@ t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### NO
t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### NO t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### NO
t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### NO t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### NO
SHOW INDEXES FROM db_datadict.t2; SHOW INDEXES FROM db_datadict.t2;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `db_datadict`.`t2`
connection default; connection default;
disconnect testuser1; disconnect testuser1;
DROP USER 'testuser1'@'localhost'; DROP USER 'testuser1'@'localhost';
......
...@@ -172,9 +172,9 @@ Grants for testuser4@localhost ...@@ -172,9 +172,9 @@ Grants for testuser4@localhost
GRANT TRIGGER ON *.* TO `testuser4`@`localhost` GRANT TRIGGER ON *.* TO `testuser4`@`localhost`
# TRIGGER Privilege + no SELECT Privilege on t1 --> result for query # TRIGGER Privilege + no SELECT Privilege on t1 --> result for query
SELECT * FROM db_datadict.t1; SELECT * FROM db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table `db_datadict`.`t1`
DESC db_datadict.t1; DESC db_datadict.t1;
ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table 't1' ERROR 42000: SELECT command denied to user 'testuser4'@'localhost' for table `db_datadict`.`t1`
SELECT * FROM information_schema.triggers SELECT * FROM information_schema.triggers
WHERE trigger_name = 'trg1'; WHERE trigger_name = 'trg1';
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
......
...@@ -367,7 +367,7 @@ PRIVILEGE_TYPE UPDATE ...@@ -367,7 +367,7 @@ PRIVILEGE_TYPE UPDATE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser2@localhost Grants for testuser2@localhost
GRANT INSERT, UPDATE ON *.* TO `testuser2`@`localhost` GRANT INSERT, UPDATE ON *.* TO `testuser2`@`localhost`
...@@ -381,7 +381,7 @@ PRIVILEGE_TYPE USAGE ...@@ -381,7 +381,7 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser3@localhost Grants for testuser3@localhost
GRANT USAGE ON *.* TO `testuser3`@`localhost` GRANT USAGE ON *.* TO `testuser3`@`localhost`
...@@ -447,12 +447,12 @@ PRIVILEGE_TYPE USAGE ...@@ -447,12 +447,12 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); CREATE TABLE db_datadict.tb_55 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_55' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table `db_datadict`.`tb_55`
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee LIKE '''testuser%''' WHERE grantee LIKE '''testuser%'''
ORDER BY grantee, table_catalog, privilege_type; ORDER BY grantee, table_catalog, privilege_type;
...@@ -462,12 +462,12 @@ PRIVILEGE_TYPE USAGE ...@@ -462,12 +462,12 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); CREATE TABLE db_datadict.tb_66 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_66' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table `db_datadict`.`tb_66`
# Add ALL on db_datadict.* (and select on mysql.global_priv) to testuser1; # Add ALL on db_datadict.* (and select on mysql.global_priv) to testuser1;
connection default; connection default;
...@@ -564,7 +564,7 @@ GRANT USAGE ON *.* TO `testuser1`@`localhost` ...@@ -564,7 +564,7 @@ GRANT USAGE ON *.* TO `testuser1`@`localhost`
GRANT ALL PRIVILEGES ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION GRANT ALL PRIVILEGES ON `db_datadict`.* TO `testuser1`@`localhost` WITH GRANT OPTION
GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost` GRANT SELECT ON `mysql`.`global_priv` TO `testuser1`@`localhost`
CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); CREATE TABLE db_datadict.tb_56 ( c1 TEXT );
ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_56' ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table `db_datadict`.`tb_56`
USE db_datadict; USE db_datadict;
SELECT * FROM information_schema.user_privileges SELECT * FROM information_schema.user_privileges
WHERE grantee LIKE '''testuser%''' WHERE grantee LIKE '''testuser%'''
...@@ -671,7 +671,7 @@ PRIVILEGE_TYPE USAGE ...@@ -671,7 +671,7 @@ PRIVILEGE_TYPE USAGE
IS_GRANTABLE NO IS_GRANTABLE NO
SELECT host,user,json_detailed(priv) FROM mysql.global_priv SELECT host,user,json_detailed(priv) FROM mysql.global_priv
WHERE user LIKE 'testuser%' ORDER BY host, user; WHERE user LIKE 'testuser%' ORDER BY host, user;
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'global_priv' ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table `mysql`.`global_priv`
SHOW GRANTS; SHOW GRANTS;
Grants for testuser1@localhost Grants for testuser1@localhost
GRANT USAGE ON *.* TO `testuser1`@`localhost` GRANT USAGE ON *.* TO `testuser1`@`localhost`
......
...@@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1; ...@@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant insert on db_storedproc_1.* to 'user_1'@'localhost'; grant insert on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
...@@ -276,9 +276,9 @@ inserted outside of SP NULL ...@@ -276,9 +276,9 @@ inserted outside of SP NULL
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
inserted from sp5_s_i 2000-10-00 inserted from sp5_s_i 2000-10-00
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
c1 c2 c3 c1 c2 c3
inserted outside of SP NULL inserted outside of SP NULL
...@@ -294,11 +294,11 @@ connection user5_2; ...@@ -294,11 +294,11 @@ connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
disconnect user5_2; disconnect user5_2;
connection default; connection default;
...@@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1 ...@@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
c1 c1
inserted outside SP inserted outside SP
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_sel(); CALL sp3166_sel();
c1 c1
inserted outside SP inserted outside SP
...@@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1; ...@@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
CALL sp3166_sel(); CALL sp3166_sel();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
disconnect user6_4; disconnect user6_4;
connection default; connection default;
CALL sp3166_s_i(); CALL sp3166_s_i();
......
...@@ -99,7 +99,7 @@ test_noprivs@localhost ...@@ -99,7 +99,7 @@ test_noprivs@localhost
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 3.5.3.2_1-no'; set new.f1 = 'trig 3.5.3.2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.2-no'); insert into t1 (f1) values ('insert 3.5.3.2-no');
...@@ -135,7 +135,7 @@ Testcase 3.5.3.6: ...@@ -135,7 +135,7 @@ Testcase 3.5.3.6:
connection no_privs; connection no_privs;
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.6-yes'); insert into t1 (f1) values ('insert 3.5.3.6-yes');
...@@ -688,7 +688,7 @@ insert into t2 values (new.f1); ...@@ -688,7 +688,7 @@ insert into t2 values (new.f1);
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant INSERT on priv_db.t2 to test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
...@@ -706,7 +706,7 @@ update t2 set f2=new.f1-1; ...@@ -706,7 +706,7 @@ update t2 set f2=new.f1-1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke INSERT on priv_db.t2 from test_yesprivs@localhost; revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
grant UPDATE on priv_db.t2 to test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
...@@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1; ...@@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
grant SELECT on priv_db.t2 to test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
...@@ -748,7 +748,7 @@ delete from t2; ...@@ -748,7 +748,7 @@ delete from t2;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant DELETE on priv_db.t2 to test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
......
...@@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1; ...@@ -221,31 +221,31 @@ connect user5_2, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant insert on db_storedproc_1.* to 'user_1'@'localhost'; grant insert on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
connection default; connection default;
root@localhost db_storedproc_1 root@localhost db_storedproc_1
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
flush privileges; flush privileges;
connection user5_2; connection user5_2;
...@@ -276,9 +276,9 @@ inserted outside of SP NULL ...@@ -276,9 +276,9 @@ inserted outside of SP NULL
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
inserted from sp5_s_i 2000-10-00 inserted from sp5_s_i 2000-10-00
inserted from sp5_ins 2000-10-00 inserted from sp5_ins 2000-10-00
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
c1 c2 c3 c1 c2 c3
inserted outside of SP NULL inserted outside of SP NULL
...@@ -294,11 +294,11 @@ connection user5_2; ...@@ -294,11 +294,11 @@ connection user5_2;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp5_s_i(); CALL sp5_s_i();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_ins(); CALL sp5_ins();
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
CALL sp5_sel(); CALL sp5_sel();
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165' ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table `db_storedproc_1`.`t3165`
disconnect user5_2; disconnect user5_2;
connection default; connection default;
...@@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1 ...@@ -348,9 +348,9 @@ user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
c1 c1
inserted outside SP inserted outside SP
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_sel(); CALL sp3166_sel();
c1 c1
inserted outside SP inserted outside SP
...@@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1; ...@@ -390,10 +390,10 @@ connect user6_4, localhost, user_2, , db_storedproc_1;
user_2@localhost db_storedproc_1 user_2@localhost db_storedproc_1
CALL sp3166_s_i(); CALL sp3166_s_i();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
CALL sp3166_ins(); CALL sp3166_ins();
CALL sp3166_sel(); CALL sp3166_sel();
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166' ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table `db_storedproc_1`.`t3166`
disconnect user6_4; disconnect user6_4;
connection default; connection default;
CALL sp3166_s_i(); CALL sp3166_s_i();
......
...@@ -99,7 +99,7 @@ test_noprivs@localhost ...@@ -99,7 +99,7 @@ test_noprivs@localhost
use priv_db; use priv_db;
create trigger trg1_1 before INSERT on t1 for each row create trigger trg1_1 before INSERT on t1 for each row
set new.f1 = 'trig 3.5.3.2_1-no'; set new.f1 = 'trig 3.5.3.2_1-no';
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.2-no'); insert into t1 (f1) values ('insert 3.5.3.2-no');
...@@ -135,7 +135,7 @@ Testcase 3.5.3.6: ...@@ -135,7 +135,7 @@ Testcase 3.5.3.6:
connection no_privs; connection no_privs;
use priv_db; use priv_db;
drop trigger trg1_2; drop trigger trg1_2;
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1' ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table `priv_db`.`t1`
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values ('insert 3.5.3.6-yes'); insert into t1 (f1) values ('insert 3.5.3.6-yes');
...@@ -688,7 +688,7 @@ insert into t2 values (new.f1); ...@@ -688,7 +688,7 @@ insert into t2 values (new.f1);
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant INSERT on priv_db.t2 to test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (4); insert into t1 (f1) values (4);
...@@ -706,7 +706,7 @@ update t2 set f2=new.f1-1; ...@@ -706,7 +706,7 @@ update t2 set f2=new.f1-1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke INSERT on priv_db.t2 from test_yesprivs@localhost; revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
grant UPDATE on priv_db.t2 to test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (2); insert into t1 (f1) values (2);
...@@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1; ...@@ -725,7 +725,7 @@ select f2 into @aaa from t2 where f2=new.f1;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
grant SELECT on priv_db.t2 to test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
...@@ -748,7 +748,7 @@ delete from t2; ...@@ -748,7 +748,7 @@ delete from t2;
connection default; connection default;
use priv_db; use priv_db;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2' ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table `priv_db`.`t2`
revoke SELECT on priv_db.t2 from test_yesprivs@localhost; revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
grant DELETE on priv_db.t2 to test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost;
insert into t1 (f1) values (1); insert into t1 (f1) values (1);
......
...@@ -23,7 +23,7 @@ i ...@@ -23,7 +23,7 @@ i
1 1
# Following RENAME should not replicate to other node. # Following RENAME should not replicate to other node.
RENAME TABLE t1 TO t2; RENAME TABLE t1 TO t2;
ERROR 42000: DROP, ALTER command denied to user 'foo'@'localhost' for table 't1' ERROR 42000: DROP, ALTER command denied to user 'foo'@'localhost' for table `test`.`t1`
# On node 2 # On node 2
connection node_2; connection node_2;
USE test; USE test;
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
--source include/have_debug.inc --source include/have_debug.inc
--let MYSQLD_DATADIR= `select @@datadir` --let MYSQLD_DATADIR= `select @@datadir`
let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --debug-dbug=+d,innodb_small_log_block_no_limit; let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --tmpdir=$MYSQL_TMP_DIR --debug-dbug=+d,innodb_small_log_block_no_limit;
--source include/kill_mysqld.inc --source include/kill_mysqld.inc
--rmdir $MYSQLD_DATADIR --rmdir $MYSQLD_DATADIR
......
...@@ -13,7 +13,7 @@ Grants for test1@localhost ...@@ -13,7 +13,7 @@ Grants for test1@localhost
GRANT USAGE ON *.* TO `test1`@`localhost` GRANT USAGE ON *.* TO `test1`@`localhost`
GRANT SELECT, INSERT, CREATE, DROP ON `test`.* TO `test1`@`localhost` GRANT SELECT, INSERT, CREATE, DROP ON `test`.* TO `test1`@`localhost`
ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10;
ERROR 42000: ALTER command denied to user 'test1'@'localhost' for table 'tp' ERROR 42000: ALTER command denied to user 'test1'@'localhost' for table `test`.`tp`
disconnect test1; disconnect test1;
connect test2,localhost,test2,,test,$MASTER_MYPORT,$MASTER_MYSOCK; connect test2,localhost,test2,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
USE test; USE test;
...@@ -83,7 +83,7 @@ Grants for test2@localhost ...@@ -83,7 +83,7 @@ Grants for test2@localhost
GRANT USAGE ON *.* TO `test2`@`localhost` GRANT USAGE ON *.* TO `test2`@`localhost`
GRANT SELECT, INSERT, UPDATE, CREATE, DROP ON `test`.* TO `test2`@`localhost` GRANT SELECT, INSERT, UPDATE, CREATE, DROP ON `test`.* TO `test2`@`localhost`
ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10;
ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table 'tp' ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table `test`.`tp`
SELECT * FROM tp WHERE a BETWEEN 0 AND 10; SELECT * FROM tp WHERE a BETWEEN 0 AND 10;
a b a b
2 Two 2 Two
...@@ -91,11 +91,11 @@ a b ...@@ -91,11 +91,11 @@ a b
6 Six 6 Six
8 Eight 8 Eight
ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10; ALTER TABLE tp EXCHANGE PARTITION p0 WITH TABLE t_10;
ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table 'tp' ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table `test`.`tp`
ALTER TABLE tsp EXCHANGE PARTITION sp00 WITH TABLE tsp_00; ALTER TABLE tsp EXCHANGE PARTITION sp00 WITH TABLE tsp_00;
ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table 'tsp' ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table `test`.`tsp`
ALTER TABLE tsp EXCHANGE PARTITION sp00 WITH TABLE tsp_00; ALTER TABLE tsp EXCHANGE PARTITION sp00 WITH TABLE tsp_00;
ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table 'tsp' ERROR 42000: ALTER command denied to user 'test2'@'localhost' for table `test`.`tsp`
connection default; connection default;
disconnect test2; disconnect test2;
DROP TABLE IF EXISTS t_10; DROP TABLE IF EXISTS t_10;
......
...@@ -45,7 +45,7 @@ COUNT(DISTINCT PROCESSLIST_ID) ...@@ -45,7 +45,7 @@ COUNT(DISTINCT PROCESSLIST_ID)
1 1
SELECT COUNT(DISTINCT PROCESSLIST_ID) SELECT COUNT(DISTINCT PROCESSLIST_ID)
FROM performance_schema.session_connect_attrs; FROM performance_schema.session_connect_attrs;
ERROR 42000: SELECT command denied to user 'wl5924'@'localhost' for table 'session_connect_attrs' ERROR 42000: SELECT command denied to user 'wl5924'@'localhost' for table `performance_schema`.`session_connect_attrs`
connection default; connection default;
disconnect non_privileged_user; disconnect non_privileged_user;
grant select on performance_schema.* to wl5924@localhost; grant select on performance_schema.* to wl5924@localhost;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment