diff options
author | unknown <anozdrin@mysql.com> | 2006-03-10 14:40:15 +0300 |
---|---|---|
committer | unknown <anozdrin@mysql.com> | 2006-03-10 14:40:15 +0300 |
commit | cf539a5ac0420bb15d9eed06998510be4bb46598 (patch) | |
tree | 4409b8f31e6e19dde59ed5021f897520893db43d /mysql-test/t/skip_grants.test | |
parent | 50c8c206fca3ea3b7ca6978ba1fe283f9777db4d (diff) | |
download | mariadb-git-cf539a5ac0420bb15d9eed06998510be4bb46598.tar.gz |
Additional fix for BUG#16777: Can not create trigger nor view
w/o definer if --skip-grant-tables specified.
The previous patch does not allow to specify empty host name in
DEFINER-clause explicitly.
mysql-test/r/skip_grants.result:
Updated the result file.
mysql-test/r/view_grant.result:
Updated the result file.
mysql-test/t/skip_grants.test:
Added test cases for BUG#16777; re-organized tests.
mysql-test/t/view_grant.test:
Updated after final fix of BUG#16777.
sql/sql_parse.cc:
The final part of fixing BUG#16777: allow empty host name in explicitly
specified DEFINER-clause.
sql/sql_show.cc:
Quote an identifier if it is empty.
Diffstat (limited to 'mysql-test/t/skip_grants.test')
-rw-r--r-- | mysql-test/t/skip_grants.test | 88 |
1 files changed, 63 insertions, 25 deletions
diff --git a/mysql-test/t/skip_grants.test b/mysql-test/t/skip_grants.test index 93e052d8c71..6dda97fcf8a 100644 --- a/mysql-test/t/skip_grants.test +++ b/mysql-test/t/skip_grants.test @@ -1,37 +1,18 @@ # This tests not performed with embedded server -- source include/not_embedded.inc ---disable_warnings -drop table if exists t1,v1; -drop view if exists t1,v1; -drop procedure if exists f1; ---enable_warnings use test; # -# Test that we can create and drop procedure without warnings -# see bug#9993 -# -create procedure f1() select 1; -drop procedure f1; - -# -# BUG#13504: creation view with DEFINER clause if --skip-grant-tables -# -create table t1 (a int); -create definer='user'@'host' sql security definer view v1 as select * from t1; -drop view v1; -drop table t1; - -# BUG#17595: DROP FUNCTION IF EXISTS f1 crashes server -drop function if exists f1; - -# # BUG#16777: Can not create trigger nor view w/o definer if --skip-grant-tables # specified # -# Also, a test that we can create VIEW if privileges check switched off has -# been moved here. +# 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 # # Prepare. @@ -40,33 +21,90 @@ drop function if exists f1; DROP VIEW IF EXISTS v1; DROP VIEW IF EXISTS v2; +DROP VIEW IF EXISTS v3; DROP TABLE IF EXISTS t1; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +DROP PROCEDURE IF EXISTS p3; + +DROP FUNCTION IF EXISTS f1; +DROP FUNCTION IF EXISTS f2; +DROP FUNCTION IF EXISTS f3; + --enable_warnings # 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; |