diff options
author | unknown <msvensson@neptunus.(none)> | 2006-11-29 12:04:29 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-11-29 12:04:29 +0100 |
commit | 2278d96215aabafe6d46e5be57561d0f1e80b5a9 (patch) | |
tree | 3764d3cb2844393bf04702d986c57ae9bab16603 /mysql-test/t/fix_priv_tables.test | |
parent | 139450341f3e41135e8fa92a6464ae0ec62341f8 (diff) | |
download | mariadb-git-2278d96215aabafe6d46e5be57561d0f1e80b5a9.tar.gz |
Bug#20589 Missing some table level privileges after upgrade
- The table_priv column of table_privs table was altered to a enum type
with fewer enums causing the SHOW/CREATE VIEW grants to be truncated.
- Improved comments and moved all declarations for table_privs, column_privs
and proc_privs to one section for each table making it easy to see hat alterations
are performed on each table
- Reduced the number of ALTER's slightly, but as this is an upgrade script we need
to take all possibilites into account.
scripts/mysql_fix_privilege_tables.sql:
Collect everything for tables_priv, columns_priv and procs_priv in one section for each table
Remove duplicate ALTERS
Remove the ALTERS that truncated "SHOW VIEW" and "CREATE VIEW" from
the enum type for Table_priv.
mysql-test/r/fix_priv_tables.result:
New BitKeeper file ``mysql-test/r/fix_priv_tables.result''
mysql-test/r/fix_priv_tabs.result:
New BitKeeper file ``mysql-test/r/fix_priv_tabs.result''
mysql-test/t/fix_priv_tables.test:
New BitKeeper file ``mysql-test/t/fix_priv_tables.test''
Diffstat (limited to 'mysql-test/t/fix_priv_tables.test')
-rw-r--r-- | mysql-test/t/fix_priv_tables.test | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/mysql-test/t/fix_priv_tables.test b/mysql-test/t/fix_priv_tables.test new file mode 100644 index 00000000000..3a91f41dfcc --- /dev/null +++ b/mysql-test/t/fix_priv_tables.test @@ -0,0 +1,66 @@ +# Embedded server doesn't support external clients +--source include/not_embedded.inc + +# +# This is the test for mysql_fix_privilege_tables +# It checks that a system tables from mysql 4.1.23 +# can be upgraded to current system table format +# +# Note: If this test fails, don't be confused about the errors reported +# by mysql-test-run This shows warnings generated by +# mysql_fix_system_tables which should be ignored. +# Instead, concentrate on the errors in r/system_mysql_db.reject + +--disable_warnings +drop table if exists t1,t1aa,t2aa; +--enable_warnings + +# +# Bug #20589 Missing some table level privileges after upgrade +# +# Add some grants that should survive the "upgrade" + +--disable_warnings +DROP DATABASE IF EXISTS testdb; +--enable_warnings +CREATE DATABASE testdb; +CREATE TABLE testdb.t1 ( + c1 INT, + c3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY); + +CREATE VIEW testdb.v1 AS + SELECT * FROM testdb.t1; + +GRANT CREATE VIEW, SHOW VIEW ON testdb.v1 TO 'show_view_tbl'@'localhost'; +SHOW GRANTS FOR 'show_view_tbl'@'localhost'; +echo; + +# Some extra GRANTS for more complete test +GRANT SELECT(c1) on testdb.v1 to 'select_only_c1'@localhost; +SHOW GRANTS FOR 'select_only_c1'@'localhost'; +echo; + +-- disable_result_log +-- disable_query_log + +# Run the mysql_fix_privilege_tables.sql using "mysql --force" +--exec $MYSQL --force mysql < $MYSQL_FIX_PRIVILEGE_TABLES > $MYSQLTEST_VARDIR/log/fix_priv_tables.log 2>&1 + +-- enable_query_log +-- enable_result_log + +echo "after fix privs"; + +SHOW GRANTS FOR 'show_view_tbl'@'localhost'; +echo; +SHOW GRANTS FOR 'select_only_c1'@'localhost'; +echo; + +DROP USER 'show_view_tbl'@'localhost'; +DROP USER 'select_only_c1'@'localhost'; + +DROP VIEW testdb.v1; +DROP TABLE testdb.t1; +DROP DATABASE testdb; + +# End of 4.1 tests |