Commit 0f9725ad authored by unknown's avatar unknown
Browse files

Bug#16180 Setting SQL_LOG_OFF without SUPER privilege is silently ignored


mysql-test/r/grant2.result:
  Added results for bug#16180
mysql-test/t/grant2.test:
  Added test for bug# 16180
sql/set_var.cc:
  Verify user has appropiate rights before setting the sql_log_off system variable.
parent f4a07612
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -143,3 +143,13 @@ flush privileges;
drop user mysqltest_3@host3;
drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
create database mysqltest_1;
grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
set sql_log_off = 1;
ERROR HY000: Access denied; you need the SUPER privilege for this operation
set sql_log_bin = 0;
ERROR HY000: Access denied; you need the SUPER privilege for this operation
delete from mysql.user where user like 'mysqltest\_1';
delete from mysql.db where user like 'mysqltest\_1';
drop database mysqltest_1;
flush privileges;
+17 −0
Original line number Diff line number Diff line
@@ -238,5 +238,22 @@ connect (con9,127.0.0.1,root,,test,$MASTER_MYPORT,);
disconnect con9;
connection default;

#
# Bug# 16180 - Setting SQL_LOG_OFF without SUPER privilege is silently ignored
#
create database mysqltest_1;
grant select, insert, update on `mysqltest\_1`.* to mysqltest_1@localhost;
connect (con10,localhost,mysqltest_1,,);
connection con10;
--error 1227
set sql_log_off = 1;
--error 1227
set sql_log_bin = 0;
disconnect con10;
connection default;
delete from mysql.user where user like 'mysqltest\_1';
delete from mysql.db where user like 'mysqltest\_1';
drop database mysqltest_1;
flush privileges;

# End of 4.1 tests
+2 −1
Original line number Diff line number Diff line
@@ -423,7 +423,8 @@ static sys_var_thd_bit sys_sql_big_tables("sql_big_tables", 0,
static sys_var_thd_bit	sys_big_selects("sql_big_selects", 0,
					set_option_bit,
					OPTION_BIG_SELECTS);
static sys_var_thd_bit	sys_log_off("sql_log_off", 0,
static sys_var_thd_bit	sys_log_off("sql_log_off",
				    check_log_update,
				    set_option_bit,
				    OPTION_LOG_OFF);
static sys_var_thd_bit	sys_log_update("sql_log_update",