1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194
|
# This tests not performed with embedded server
-- source include/not_embedded.inc
-- disable_ps_protocol
use test;
#
# BUG#16777: Can not create trigger nor view w/o definer if --skip-grant-tables
# specified
#
# Also, the following test cases have been moved here:
# - test that we can create VIEW if privileges check switched off has been
# moved here;
# - test that we can create and drop procedure without warnings (BUG#9993);
# - BUG#17595: "DROP FUNCTION IF EXISTS" crashes server;
# - BUG#13504: creation view with DEFINER clause if --skip-grant-tables
#
# Test case.
CREATE TABLE t1(c INT);
# - try to create with implicit definer (definer would be ''@'');
CREATE TRIGGER t1_bi BEFORE INSERT ON t1
FOR EACH ROW
SET @a = 1;
CREATE VIEW v1 AS SELECT * FROM t1;
CREATE PROCEDURE p1()
SELECT 1;
CREATE FUNCTION f1() RETURNS INT
RETURN 1;
# - try to create with explicit definer;
CREATE DEFINER=a@b TRIGGER ti_ai AFTER INSERT ON t1
FOR EACH ROW
SET @b = 1;
CREATE DEFINER=a@b VIEW v2 AS SELECT * FROM t1;
CREATE DEFINER=a@b PROCEDURE p2()
SELECT 2;
CREATE DEFINER=a@b FUNCTION f2() RETURNS INT
RETURN 2;
# - try to create with explicit definer with empty host;
CREATE DEFINER=a@'' TRIGGER ti_bu BEFORE UPDATE ON t1
FOR EACH ROW
SET @c = 1;
CREATE DEFINER=a@'' VIEW v3 AS SELECT * FROM t1;
CREATE DEFINER=a@'' PROCEDURE p3()
SELECT 3;
CREATE DEFINER=a@'' FUNCTION f3() RETURNS INT
RETURN 3;
# - check that empty host name is treated correctly;
SHOW CREATE VIEW v3;
SHOW CREATE PROCEDURE p3;
SHOW CREATE FUNCTION f3;
# Cleanup.
DROP TRIGGER t1_bi;
DROP TRIGGER ti_ai;
DROP TRIGGER ti_bu;
DROP VIEW v1;
DROP VIEW v2;
DROP VIEW v3;
DROP TABLE t1;
DROP PROCEDURE p1;
DROP PROCEDURE p2;
DROP PROCEDURE p3;
DROP FUNCTION f1;
DROP FUNCTION f2;
DROP FUNCTION f3;
--echo #
--echo # Bug #26807 "set global event_scheduler=1" and --skip-grant-tables crashes server
--echo #
--error ER_OPTION_PREVENTS_STATEMENT
set global event_scheduler=1;
--echo #
--echo # Bug#26285 Selecting information_schema crahes server
--echo #
select count(*) from information_schema.COLUMN_PRIVILEGES;
select count(*) from information_schema.SCHEMA_PRIVILEGES;
select count(*) from information_schema.TABLE_PRIVILEGES;
select count(*) from information_schema.USER_PRIVILEGES;
--echo # End of 5.0 tests
--echo #
--echo # Bug#29817 Queries with UDF fail with non-descriptive error
--echo # if mysql.proc is missing
--echo #
--error ER_SP_DOES_NOT_EXIST
select no_such_function(1);
--echo # End of 5.1 tests
--echo #
--echo # MDEV-8280 crash in 'show global status' with --skip-grant-tables
--echo #
show global status like 'Acl%';
--echo # End of 10.1 tests
--echo #
--echo # MDEV-22966 Server crashes or hangs with SET ROLE when started with skip-grant-tables
--echo #
--error ER_OPTION_PREVENTS_STATEMENT
set role x;
--echo # End of 10.2 tests
#
# MDEV-18297
# How to reset a forgotten root password
#
--error ER_OPTION_PREVENTS_STATEMENT
show create user root@localhost;
insert mysql.global_priv values ('foo', 'bar', '{}');
insert mysql.global_priv values ('baz', 'baz', '{"plugin":"baz"}');
--error ER_OPTION_PREVENTS_STATEMENT
set password for bar@foo = password("pass word");
flush privileges;
show create user root@localhost;
show create user bar@foo;
show create user baz@baz;
set password for bar@foo = password("pass word");
show create user bar@foo;
alter user baz@baz identified with mysql_native_password as password("baz");
show create user baz@baz;
drop user bar@foo;
drop user baz@baz;
# Need to restart the server to restore the "--skip-grant-tables" state
--source include/restart_mysqld.inc
--enable_ps_protocol
--echo # End of 10.3 tests
--echo #
--echo # MDEV-34501: SIGSEGV in pfs_start_mutex_wait_v1, __strlen_avx2, or __strlen_evex from safe_mutex_lock on CREATE DEFINER when using skip-grant-tables
--echo #
CREATE DEFINER=a PROCEDURE p() SELECT 1;
CREATE DEFINER=a FUNCTION f() RETURNS INT RETURN 100;
DROP PROCEDURE p;
DROP FUNCTION f;
--echo # End of 10.5 tests
--echo #
--echo # MDEV-24815 Show "--skip-grant-tables" state in SYSTEM VARIABLES
--echo #
SELECT @@skip_grant_tables AS EXPECT_1;
# Also check when the server starts without "--skip-grant-table" option
--let $restart_parameters = --skip-skip-grant-tables
--source include/restart_mysqld.inc
SELECT @@skip_grant_tables AS EXPECT_0;
# Need to restart the server to restore the "--skip-grant-tables" state
--let $restart_parameters = --skip-grant-tables
--source include/restart_mysqld.inc
--echo # End of 10.10 tests
--echo #
--echo # MDEV-36351 MariaDB crashes when trying to access information_schema.users under --skip-grant-tables
--echo #
select * from information_schema.users;
--echo # End of 11.8 tests
|