mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Fix for bug #17394 - Events namespace is wrong
mysql-test/lib/init_db.sql: remove definer from PK mysql-test/r/events.result: update results mysql-test/r/system_mysql_db.result: update results mysql-test/t/events.test: remove I_S.EVENTS test and move it to events_grant.test scripts/mysql_fix_privilege_tables.sql: change table definition sql/event.cc: make events non-user specific (namespace change) sql/event.h: make events non-user specific (namespace change) sql/event_priv.h: make events non-user specific (namespace change) sql/event_scheduler.cc: make events non-user specific (namespace change) sql/event_timed.cc: make events non-user specific (namespace change) sql/sql_parse.cc: make events non-user specific (namespace change) sql/sql_show.cc: SHOW EVENTS is available to everyone who has EVENT on specific schema. No additional privileges are needed to see others' events. - user A has events in db1 and db2 - user B has events in db1 and db3 A will see all his events from db1 and db2 as well as B's events from db1 but not from db3. B will see her events from db1 and db3. In addition B will see only A's events from db1 but not db2.
This commit is contained in:
@ -570,7 +570,7 @@ DROP PROCEDURE create_log_tables;
|
||||
|
||||
CREATE TABLE event (
|
||||
db char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
|
||||
name char(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
|
||||
name char(64) CHARACTER SET utf8 NOT NULL default '',
|
||||
body longblob NOT NULL,
|
||||
definer char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL default '',
|
||||
execute_at DATETIME default NULL,
|
||||
@ -636,7 +636,7 @@ SELECT @hadEventPriv :=1 FROM user WHERE Event_priv LIKE '%';
|
||||
ALTER TABLE user add Event_priv enum('N','Y') character set utf8 DEFAULT 'N' NOT NULL AFTER Create_user_priv;
|
||||
ALTER TABLE db add Event_priv enum('N','Y') character set utf8 DEFAULT 'N' NOT NULL;
|
||||
ALTER TABLE event DROP PRIMARY KEY;
|
||||
ALTER TABLE event ADD PRIMARY KEY(definer, db, name);
|
||||
ALTER TABLE event ADD PRIMARY KEY(db, name);
|
||||
ALTER TABLE event ADD sql_mode
|
||||
set('REAL_AS_FLOAT',
|
||||
'PIPES_AS_CONCAT',
|
||||
|
Reference in New Issue
Block a user