mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 17:23:46 +03:00
Merge ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0-marvel
into ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.1-marvel
This commit is contained in:
@@ -260,29 +260,29 @@ GRANT USAGE ON *.* TO 'mysqltest_1'@'localhost' IDENTIFIED BY PASSWORD '*2470C0C
|
||||
GRANT SELECT, INSERT, UPDATE ON `test`.* TO 'mysqltest_1'@'localhost'
|
||||
drop user mysqltest_1@localhost;
|
||||
SET NAMES koi8r;
|
||||
CREATE DATABASE <EFBFBD><EFBFBD>;
|
||||
USE <EFBFBD><EFBFBD>;
|
||||
CREATE TABLE <EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD> int);
|
||||
GRANT SELECT ON <EFBFBD><EFBFBD>.* TO <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
SHOW GRANTS FOR <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
Grants for <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost
|
||||
GRANT USAGE ON *.* TO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'@'localhost'
|
||||
GRANT SELECT ON `<EFBFBD><EFBFBD>`.* TO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'@'localhost'
|
||||
REVOKE SELECT ON <EFBFBD><EFBFBD>.* FROM <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
GRANT SELECT ON <EFBFBD><EFBFBD>.<2E><><EFBFBD> TO <20><><EFBFBD><EFBFBD>@localhost;
|
||||
SHOW GRANTS FOR <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
Grants for <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost
|
||||
GRANT USAGE ON *.* TO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'@'localhost'
|
||||
GRANT SELECT ON `<EFBFBD><EFBFBD>`.`<EFBFBD><EFBFBD><EFBFBD>` TO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'@'localhost'
|
||||
REVOKE SELECT ON <EFBFBD><EFBFBD>.<2E><><EFBFBD> FROM <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
GRANT SELECT (<EFBFBD><EFBFBD><EFBFBD>) ON <EFBFBD><EFBFBD>.<2E><><EFBFBD> TO <20><><EFBFBD><EFBFBD>@localhost;
|
||||
SHOW GRANTS FOR <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
Grants for <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost
|
||||
GRANT USAGE ON *.* TO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'@'localhost'
|
||||
GRANT SELECT (<EFBFBD><EFBFBD><EFBFBD>) ON `<EFBFBD><EFBFBD>`.`<EFBFBD><EFBFBD><EFBFBD>` TO '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'@'localhost'
|
||||
REVOKE SELECT (<EFBFBD><EFBFBD><EFBFBD>) ON <EFBFBD><EFBFBD>.<2E><><EFBFBD> FROM <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
DROP USER <EFBFBD><EFBFBD><EFBFBD><EFBFBD>@localhost;
|
||||
DROP DATABASE <EFBFBD><EFBFBD>;
|
||||
CREATE DATABASE ツト;
|
||||
USE ツト;
|
||||
CREATE TABLE ヤチツ (ヒマフ int);
|
||||
GRANT SELECT ON ツト.* TO タレナメ@localhost;
|
||||
SHOW GRANTS FOR タレナメ@localhost;
|
||||
Grants for タレナメ@localhost
|
||||
GRANT USAGE ON *.* TO 'タレナメ'@'localhost'
|
||||
GRANT SELECT ON `ツト`.* TO 'タレナメ'@'localhost'
|
||||
REVOKE SELECT ON ツト.* FROM タレナメ@localhost;
|
||||
GRANT SELECT ON ツト.ヤチツ TO タレナメ@localhost;
|
||||
SHOW GRANTS FOR タレナメ@localhost;
|
||||
Grants for タレナメ@localhost
|
||||
GRANT USAGE ON *.* TO 'タレナメ'@'localhost'
|
||||
GRANT SELECT ON `ツト`.`ヤチツ` TO 'タレナメ'@'localhost'
|
||||
REVOKE SELECT ON ツト.ヤチツ FROM タレナメ@localhost;
|
||||
GRANT SELECT (ヒマフ) ON ツト.ヤチツ TO タレナメ@localhost;
|
||||
SHOW GRANTS FOR タレナメ@localhost;
|
||||
Grants for タレナメ@localhost
|
||||
GRANT USAGE ON *.* TO 'タレナメ'@'localhost'
|
||||
GRANT SELECT (ヒマフ) ON `ツト`.`ヤチツ` TO 'タレナメ'@'localhost'
|
||||
REVOKE SELECT (ヒマフ) ON ツト.ヤチツ FROM タレナメ@localhost;
|
||||
DROP USER タレナメ@localhost;
|
||||
DROP DATABASE ツト;
|
||||
SET NAMES latin1;
|
||||
USE test;
|
||||
CREATE TABLE t1 (a int );
|
||||
@@ -613,22 +613,22 @@ set @user123="non-existent";
|
||||
select * from mysql.db where user=@user123;
|
||||
Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Execute_priv Event_priv Trigger_priv
|
||||
set names koi8r;
|
||||
create database <EFBFBD><EFBFBD>;
|
||||
grant select on <EFBFBD><EFBFBD>.* to root@localhost;
|
||||
select hex(Db) from mysql.db where Db='<EFBFBD><EFBFBD>';
|
||||
create database ツト;
|
||||
grant select on ツト.* to root@localhost;
|
||||
select hex(Db) from mysql.db where Db='ツト';
|
||||
hex(Db)
|
||||
D0B1D0B4
|
||||
show grants for root@localhost;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
GRANT SELECT ON `<EFBFBD><EFBFBD>`.* TO 'root'@'localhost'
|
||||
GRANT SELECT ON `ツト`.* TO 'root'@'localhost'
|
||||
flush privileges;
|
||||
show grants for root@localhost;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
GRANT SELECT ON `<EFBFBD><EFBFBD>`.* TO 'root'@'localhost'
|
||||
drop database <EFBFBD><EFBFBD>;
|
||||
revoke all privileges on <EFBFBD><EFBFBD>.* from root@localhost;
|
||||
GRANT SELECT ON `ツト`.* TO 'root'@'localhost'
|
||||
drop database ツト;
|
||||
revoke all privileges on ツト.* from root@localhost;
|
||||
show grants for root@localhost;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
@@ -1059,4 +1059,51 @@ DROP DATABASE bug23556;
|
||||
DROP USER bug23556@localhost;
|
||||
GRANT PROCESS ON * TO user@localhost;
|
||||
ERROR 3D000: No database selected
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
DROP DATABASE IF EXISTS mysqltest3;
|
||||
DROP DATABASE IF EXISTS mysqltest4;
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE DATABASE mysqltest2;
|
||||
CREATE DATABASE mysqltest3;
|
||||
CREATE DATABASE mysqltest4;
|
||||
CREATE PROCEDURE mysqltest1.p_def() SQL SECURITY DEFINER
|
||||
SELECT 1;
|
||||
CREATE PROCEDURE mysqltest2.p_inv() SQL SECURITY INVOKER
|
||||
SELECT 1;
|
||||
CREATE FUNCTION mysqltest3.f_def() RETURNS INT SQL SECURITY DEFINER
|
||||
RETURN 1;
|
||||
CREATE FUNCTION mysqltest4.f_inv() RETURNS INT SQL SECURITY INVOKER
|
||||
RETURN 1;
|
||||
GRANT EXECUTE ON PROCEDURE mysqltest1.p_def TO mysqltest_1@localhost;
|
||||
GRANT EXECUTE ON PROCEDURE mysqltest2.p_inv TO mysqltest_1@localhost;
|
||||
GRANT EXECUTE ON FUNCTION mysqltest3.f_def TO mysqltest_1@localhost;
|
||||
GRANT EXECUTE ON FUNCTION mysqltest4.f_inv TO mysqltest_1@localhost;
|
||||
GRANT ALL PRIVILEGES ON test.* TO mysqltest_1@localhost;
|
||||
|
||||
---> connection: bug9504_con1
|
||||
use mysqltest1;
|
||||
use mysqltest2;
|
||||
use mysqltest3;
|
||||
use mysqltest4;
|
||||
use test;
|
||||
CALL mysqltest1.p_def();
|
||||
1
|
||||
1
|
||||
CALL mysqltest2.p_inv();
|
||||
1
|
||||
1
|
||||
SELECT mysqltest3.f_def();
|
||||
mysqltest3.f_def()
|
||||
1
|
||||
SELECT mysqltest4.f_inv();
|
||||
mysqltest4.f_inv()
|
||||
1
|
||||
|
||||
---> connection: default
|
||||
DROP DATABASE mysqltest1;
|
||||
DROP DATABASE mysqltest2;
|
||||
DROP DATABASE mysqltest3;
|
||||
DROP DATABASE mysqltest4;
|
||||
DROP USER mysqltest_1@localhost;
|
||||
End of 5.0 tests
|
||||
|
||||
@@ -122,6 +122,24 @@ DELIMITER ;
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start and stop positions ---
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t1 values(null, "d")/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
@@ -482,6 +500,24 @@ DELIMITER ;
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start and stop positions ---
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
SET INSERT_ID=4/*!*/;
|
||||
use test/*!*/;
|
||||
SET TIMESTAMP=1579609946/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
/*!\C latin1 *//*!*/;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8/*!*/;
|
||||
insert into t1 values(null, "d")/*!*/;
|
||||
SET INSERT_ID=5/*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
|
||||
@@ -8,22 +8,29 @@ create procedure db1_secret.dummy() begin end;
|
||||
drop procedure db1_secret.dummy;
|
||||
use db1_secret;
|
||||
create table t1 ( u varchar(64), i int );
|
||||
insert into t1 values('test', 0);
|
||||
create procedure stamp(i int)
|
||||
insert into db1_secret.t1 values (user(), i);
|
||||
show procedure status like 'stamp';
|
||||
Db Name Type Definer Modified Created Security_type Comment
|
||||
db1_secret stamp PROCEDURE root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
|
||||
create function db() returns varchar(64) return database();
|
||||
create function db() returns varchar(64)
|
||||
begin
|
||||
declare v varchar(64);
|
||||
select u into v from t1 limit 1;
|
||||
return v;
|
||||
end|
|
||||
show function status like 'db';
|
||||
Db Name Type Definer Modified Created Security_type Comment
|
||||
db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 DEFINER
|
||||
call stamp(1);
|
||||
select * from t1;
|
||||
u i
|
||||
test 0
|
||||
root@localhost 1
|
||||
select db();
|
||||
db()
|
||||
db1_secret
|
||||
test
|
||||
grant execute on procedure db1_secret.stamp to user1@'%';
|
||||
grant execute on function db1_secret.db to user1@'%';
|
||||
grant execute on procedure db1_secret.stamp to ''@'%';
|
||||
@@ -31,25 +38,34 @@ grant execute on function db1_secret.db to ''@'%';
|
||||
call db1_secret.stamp(2);
|
||||
select db1_secret.db();
|
||||
db1_secret.db()
|
||||
db1_secret
|
||||
test
|
||||
select * from db1_secret.t1;
|
||||
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1'
|
||||
create procedure db1_secret.dummy() begin end;
|
||||
ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret'
|
||||
drop procedure db1_secret.dummy;
|
||||
ERROR 42000: PROCEDURE db1_secret.dummy does not exist
|
||||
drop procedure db1_secret.stamp;
|
||||
ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db1_secret.stamp'
|
||||
drop function db1_secret.db;
|
||||
ERROR 42000: alter routine command denied to user 'user1'@'localhost' for routine 'db1_secret.db'
|
||||
call db1_secret.stamp(3);
|
||||
select db1_secret.db();
|
||||
db1_secret.db()
|
||||
db1_secret
|
||||
test
|
||||
select * from db1_secret.t1;
|
||||
ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1'
|
||||
create procedure db1_secret.dummy() begin end;
|
||||
ERROR 42000: Access denied for user ''@'%' to database 'db1_secret'
|
||||
drop procedure db1_secret.dummy;
|
||||
ERROR 42000: PROCEDURE db1_secret.dummy does not exist
|
||||
drop procedure db1_secret.stamp;
|
||||
ERROR 42000: alter routine command denied to user ''@'%' for routine 'db1_secret.stamp'
|
||||
drop function db1_secret.db;
|
||||
ERROR 42000: alter routine command denied to user ''@'%' for routine 'db1_secret.db'
|
||||
select * from t1;
|
||||
u i
|
||||
test 0
|
||||
root@localhost 1
|
||||
user1@localhost 2
|
||||
anon@localhost 3
|
||||
@@ -64,21 +80,22 @@ db1_secret db FUNCTION root@localhost 0000-00-00 00:00:00 0000-00-00 00:00:00 IN
|
||||
call stamp(4);
|
||||
select * from t1;
|
||||
u i
|
||||
test 0
|
||||
root@localhost 1
|
||||
user1@localhost 2
|
||||
anon@localhost 3
|
||||
root@localhost 4
|
||||
select db();
|
||||
db()
|
||||
db1_secret
|
||||
test
|
||||
call db1_secret.stamp(5);
|
||||
ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret'
|
||||
ERROR 42000: INSERT command denied to user 'user1'@'localhost' for table 't1'
|
||||
select db1_secret.db();
|
||||
ERROR 42000: Access denied for user 'user1'@'localhost' to database 'db1_secret'
|
||||
ERROR 42000: SELECT command denied to user 'user1'@'localhost' for table 't1'
|
||||
call db1_secret.stamp(6);
|
||||
ERROR 42000: Access denied for user ''@'%' to database 'db1_secret'
|
||||
ERROR 42000: INSERT command denied to user ''@'localhost' for table 't1'
|
||||
select db1_secret.db();
|
||||
ERROR 42000: Access denied for user ''@'%' to database 'db1_secret'
|
||||
ERROR 42000: SELECT command denied to user ''@'localhost' for table 't1'
|
||||
drop database if exists db2;
|
||||
create database db2;
|
||||
use db2;
|
||||
|
||||
@@ -6061,4 +6061,44 @@ SUM(f2) bug25373(f1)
|
||||
21.300000071526 NULL
|
||||
DROP FUNCTION bug25373|
|
||||
DROP TABLE t3|
|
||||
DROP DATABASE IF EXISTS mysqltest1|
|
||||
DROP DATABASE IF EXISTS mysqltest2|
|
||||
CREATE DATABASE mysqltest1|
|
||||
CREATE DATABASE mysqltest2|
|
||||
CREATE PROCEDURE mysqltest1.p1()
|
||||
DROP DATABASE mysqltest2|
|
||||
use mysqltest2|
|
||||
CALL mysqltest1.p1()|
|
||||
Warnings:
|
||||
Note 1049 Unknown database 'mysqltest2'
|
||||
SELECT DATABASE()|
|
||||
DATABASE()
|
||||
NULL
|
||||
DROP DATABASE mysqltest1|
|
||||
use test|
|
||||
drop table t1,t2;
|
||||
CREATE TABLE t1 (a int auto_increment primary key) engine=MyISAM;
|
||||
CREATE TABLE t2 (a int auto_increment primary key, b int) engine=innodb;
|
||||
set @a=0;
|
||||
CREATE function bug27354() RETURNS int deterministic
|
||||
begin
|
||||
insert into t1 values (null);
|
||||
set @a=@a+1;
|
||||
return @a;
|
||||
end|
|
||||
update t2 set b=1 where a=bug27354();
|
||||
select count(t_1.a),count(t_2.a) from t1 as t_1, t2 as t_2 /* must be 0,0 */;
|
||||
count(t_1.a) count(t_2.a)
|
||||
0 0
|
||||
insert into t2 values (1,1),(2,2),(3,3);
|
||||
update t2 set b=-b where a=bug27354();
|
||||
select * from t2 /* must return 1,-1 ... */;
|
||||
a b
|
||||
1 -1
|
||||
2 -2
|
||||
3 -3
|
||||
select count(*) from t1 /* must be 3 */;
|
||||
count(*)
|
||||
3
|
||||
drop table t1,t2;
|
||||
drop function bug27354;
|
||||
|
||||
@@ -530,6 +530,27 @@ count(*)
|
||||
drop table t3, t4|
|
||||
drop procedure bug14210|
|
||||
set @@session.max_heap_table_size=default|
|
||||
drop function if exists bug23333|
|
||||
drop table if exists t1,t2|
|
||||
CREATE TABLE t1 (a int NOT NULL auto_increment primary key) ENGINE=MyISAM|
|
||||
CREATE TABLE t2 (a int NOT NULL auto_increment, b int, PRIMARY KEY (a)) ENGINE=InnoDB|
|
||||
insert into t2 values (1,1)|
|
||||
create function bug23333()
|
||||
RETURNS int(11)
|
||||
DETERMINISTIC
|
||||
begin
|
||||
insert into t1 values (null);
|
||||
select count(*) from t1 into @a;
|
||||
return @a;
|
||||
end|
|
||||
reset master|
|
||||
insert into t2 values (bug23333(),1)|
|
||||
ERROR 23000: Duplicate entry '1' for key 1
|
||||
show binlog events from 98 /* with fixes for #23333 will show there is the query */|
|
||||
Log_name Pos Event_type Server_id End_log_pos Info
|
||||
select count(*),@a from t1 /* must be 1,1 */|
|
||||
count(*) @a
|
||||
1 1
|
||||
CREATE DATABASE db_bug7787|
|
||||
use db_bug7787|
|
||||
CREATE PROCEDURE p1()
|
||||
|
||||
@@ -284,15 +284,6 @@ create view mysqltest.v3 as select b from mysqltest.t2;
|
||||
grant create view, update on mysqltest.v3 to mysqltest_1@localhost;
|
||||
drop view mysqltest.v3;
|
||||
create view mysqltest.v3 as select b from mysqltest.t2;
|
||||
grant create view, update, insert on mysqltest.v3 to mysqltest_1@localhost;
|
||||
drop view mysqltest.v3;
|
||||
create view mysqltest.v3 as select b from mysqltest.t2;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 'v3'
|
||||
create table mysqltest.v3 (b int);
|
||||
grant select(b) on mysqltest.v3 to mysqltest_1@localhost;
|
||||
drop table mysqltest.v3;
|
||||
create view mysqltest.v3 as select b from mysqltest.t2;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 'v3'
|
||||
create view v4 as select b+1 from mysqltest.t2;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest_1'@'localhost' for column 'b' in table 't2'
|
||||
grant create view,update,select on test.* to mysqltest_1@localhost;
|
||||
@@ -796,6 +787,94 @@ View Create View
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f2` AS `f2` from `t1`
|
||||
DROP USER u26813@localhost;
|
||||
DROP DATABASE db26813;
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
CREATE DATABASE mysqltest1;
|
||||
CREATE DATABASE mysqltest2;
|
||||
CREATE TABLE mysqltest1.t1(c1 INT);
|
||||
CREATE TABLE mysqltest1.t2(c2 INT);
|
||||
CREATE TABLE mysqltest1.t3(c3 INT);
|
||||
CREATE TABLE mysqltest1.t4(c4 INT);
|
||||
INSERT INTO mysqltest1.t1 VALUES (11), (12), (13), (14);
|
||||
INSERT INTO mysqltest1.t2 VALUES (21), (22), (23), (24);
|
||||
INSERT INTO mysqltest1.t3 VALUES (31), (32), (33), (34);
|
||||
INSERT INTO mysqltest1.t4 VALUES (41), (42), (43), (44);
|
||||
GRANT SELECT ON mysqltest1.t1 TO mysqltest_u1@localhost;
|
||||
GRANT INSERT ON mysqltest1.t2 TO mysqltest_u1@localhost;
|
||||
GRANT SELECT, UPDATE ON mysqltest1.t3 TO mysqltest_u1@localhost;
|
||||
GRANT SELECT, DELETE ON mysqltest1.t4 TO mysqltest_u1@localhost;
|
||||
GRANT ALL PRIVILEGES ON mysqltest2.* TO mysqltest_u1@localhost;
|
||||
|
||||
---> connection: bug24040_con
|
||||
SELECT * FROM mysqltest1.t1;
|
||||
c1
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
INSERT INTO mysqltest1.t2 VALUES(25);
|
||||
UPDATE mysqltest1.t3 SET c3 = 331 WHERE c3 = 31;
|
||||
DELETE FROM mysqltest1.t4 WHERE c4 = 44;
|
||||
CREATE VIEW v1 AS SELECT * FROM mysqltest1.t1;
|
||||
CREATE VIEW v2 AS SELECT * FROM mysqltest1.t2;
|
||||
CREATE VIEW v3 AS SELECT * FROM mysqltest1.t3;
|
||||
CREATE VIEW v4 AS SELECT * FROM mysqltest1.t4;
|
||||
SELECT * FROM v1;
|
||||
c1
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
INSERT INTO v2 VALUES(26);
|
||||
UPDATE v3 SET c3 = 332 WHERE c3 = 32;
|
||||
DELETE FROM v4 WHERE c4 = 43;
|
||||
CREATE VIEW v12 AS SELECT c1, c2 FROM mysqltest1.t1, mysqltest1.t2;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c2' in table 'v12'
|
||||
CREATE VIEW v13 AS SELECT c1, c3 FROM mysqltest1.t1, mysqltest1.t3;
|
||||
CREATE VIEW v14 AS SELECT c1, c4 FROM mysqltest1.t1, mysqltest1.t4;
|
||||
CREATE VIEW v21 AS SELECT c2, c1 FROM mysqltest1.t2, mysqltest1.t1;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c1' in table 'v21'
|
||||
CREATE VIEW v23 AS SELECT c2, c3 FROM mysqltest1.t2, mysqltest1.t3;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c3' in table 'v23'
|
||||
CREATE VIEW v24 AS SELECT c2, c4 FROM mysqltest1.t2, mysqltest1.t4;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c4' in table 'v24'
|
||||
CREATE VIEW v31 AS SELECT c3, c1 FROM mysqltest1.t3, mysqltest1.t1;
|
||||
CREATE VIEW v32 AS SELECT c3, c2 FROM mysqltest1.t3, mysqltest1.t2;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c2' in table 'v32'
|
||||
CREATE VIEW v34 AS SELECT c3, c4 FROM mysqltest1.t3, mysqltest1.t4;
|
||||
CREATE VIEW v41 AS SELECT c4, c1 FROM mysqltest1.t4, mysqltest1.t1;
|
||||
CREATE VIEW v42 AS SELECT c4, c2 FROM mysqltest1.t4, mysqltest1.t2;
|
||||
ERROR 42000: create view command denied to user 'mysqltest_u1'@'localhost' for column 'c2' in table 'v42'
|
||||
CREATE VIEW v43 AS SELECT c4, c3 FROM mysqltest1.t4, mysqltest1.t3;
|
||||
|
||||
---> connection: default
|
||||
SELECT * FROM mysqltest1.t1;
|
||||
c1
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
SELECT * FROM mysqltest1.t2;
|
||||
c2
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
SELECT * FROM mysqltest1.t3;
|
||||
c3
|
||||
331
|
||||
332
|
||||
33
|
||||
34
|
||||
SELECT * FROM mysqltest1.t4;
|
||||
c4
|
||||
41
|
||||
42
|
||||
DROP DATABASE mysqltest1;
|
||||
DROP DATABASE mysqltest2;
|
||||
DROP USER mysqltest_u1@localhost;
|
||||
End of 5.0 tests.
|
||||
DROP VIEW IF EXISTS v1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
||||
Reference in New Issue
Block a user