Bug #42624 corrupt view when connecting while --skip-grant-tables is active
| Submitted: | 5 Feb 2009 15:53 | Modified: | 16 Feb 2009 15:17 |
|---|---|---|---|
| Reporter: | S Kim | Email Updates: | |
| Status: | Verified | Impact on me: | |
| Category: | MySQL Server: Views | Severity: | S3 (Non-critical) |
| Version: | 5.1.30, 5.0, 5.1, 6.0 bzr | OS: | Any (MS Windows, Linux) |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | --skip-grant-tables, 1141, 42000 | ||
[5 Feb 2009 17:41]
Sveta Smirnova
Thank you for the report. Please indicate accurate minor version of the MySQL server you use.
[6 Feb 2009 10:15]
S Kim
5.1.30-community-log
[16 Feb 2009 15:17]
Sveta Smirnova
Thank you for the report. Verified as described. Test case for MTR: $cat src/tests/t/bug42624.test create table t1(f1 int); flush privileges; create view v1 as select f1 from t1; select * from v1; $cat src/tests/t/bug42624-master.opt --skip-grant-tables
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.057 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: I started a server with the --skip-grant-tables options (because I was doing a backup training and had removed the data directory.) I later flushed the privileges, but hat the session still open that began before the flush privileges. This session behaved strangely. When I do "Show grants": ERROR 1141 (42000): There is no such grant defined for user '' on host '' mysql> select user(), current_user(); +--------+----------------+ | user() | current_user() | +--------+----------------+ | root@ | @ | +--------+----------------+ 1 row in set (0.00 sec) But worst, I can create a view, but can't query it: mysql> create view kor_city as select * from city where countrycode='KOR'; Query OK, 0 rows affected (0.00 sec) mysql> select * from kor_city; ERROR 1449 (HY000): The user specified as a definer (''@'') does not exist mysql> show tables like 'kor_city%'; +-----------------------------+ | Tables_in_world (kor_city%) | +-----------------------------+ | kor_city | +-----------------------------+ 1 row in set (0.00 sec) How to repeat: start mysql --skip-grant-tables flush privileges but leave mysql client session open create view query view Suggested fix: give an error message when trying to create views without a valid user context