1
#======================================================================
4
# test cases for TRIGGER privilege on db, table and column level
5
#======================================================================
7
--disable_abort_on_error
9
###########################################
10
################ Section 3.5.3 ############
11
# Check for the definer of Triggers #
12
###########################################
14
# General setup to be used in all testcases
15
let $message= ######### Testcase for definer: ########;
16
--source include/show_msg.inc
19
drop database if exists priv_db;
21
create database priv_db;
23
eval create table t1 (f1 char(20)) engine= $engine_type;
25
create User test_yesprivs@localhost;
26
set password for test_yesprivs@localhost = password('PWD');
28
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
30
--replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK
31
connect (yes_privs,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK);
33
# create trigger with not existing definer shall deliver a warning:
37
create definer=not_ex_user@localhost trigger trg1_0
38
before INSERT on t1 for each row
39
set new.f1 = 'trig 1_0-yes';
41
# create trigger with definer test_yesprivs@localhost->succeed:
42
create definer=test_yesprivs@localhost trigger trg1_0
43
before INSERT on t1 for each row
44
set new.f1 = 'trig 1_0-yes';
45
grant select, insert, update
46
on priv_db.t1 to test_yesprivs@localhost;
51
# user hasn't trigger privilege->fail:
53
insert into t1 (f1) values ('insert-no');
54
select f1 from t1 order by f1;
58
connection default; select current_user; grant select, insert, update ,trigger
59
on priv_db.t1 to test_yesprivs@localhost;
60
show grants for test_yesprivs@localhost;
64
# user now has trigger privilege->succeed:
65
insert into t1 (f1) values ('insert-no');
66
select f1 from t1 order by f1;
68
# user has not super privilege->fail:
70
create definer=not_ex_user@localhost trigger trg1_0
71
before INSERT on t1 for each row
72
set new.f1 = 'trig 1_0-yes';
73
# shall always succeed:
74
create definer=current_user trigger trg1_1
75
before INSERT on t1 for each row
76
set new.f1 = 'trig 1_1-yes';
77
insert into t1 (f1) values ('insert-no');
78
select f1 from t1 order by f1;
79
# shall always succeed:
80
create definer=test_yesprivs@localhost trigger trg1_2
81
before UPDATE on t1 for each row
82
set new.f1 = 'trig 1_2-yes';
83
update t1 set f1 = 'update-yes' where f1 like '%trig%';
84
select f1 from t1 order by f1;
88
grant trigger on priv_db.* to test_yesprivs@localhost
91
# user has not super privilege->fail:
96
create definer=not_ex_user@localhost trigger trg1_3
97
after UPDATE on t1 for each row
98
set @var1 = 'trig 1_3-yes';
105
disconnect yes_privs;
114
drop database if exists priv_db;
115
drop user test_yesprivs@localhost;