mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
25b5c63905
This commit adds 3 new status variables to 'show all slaves status': - Master_last_event_time ; timestamp of the last event read from the master by the IO thread. - Slave_last_event_time ; Master timestamp of the last event committed on the slave. - Master_Slave_time_diff: The difference of the above two timestamps. All the above variables are NULL until the slave has started and the slave has read one query event from the master that changes data. - Added information_schema.slave_status, which allows us to remove: - show_master_info(), show_master_info_get_fields(), send_show_master_info_data(), show_all_master_info() - class Sql_cmd_show_slave_status. - Protocol::store(I_List<i_string_pair>* str_list) as it is not used anymore. - Changed old SHOW SLAVE STATUS and SHOW ALL SLAVES STATUS to use the SELECT code path, as all other SHOW ... STATUS commands. Other things: - Xid_log_time is set to time of commit to allow slave that reads the binary log to calculate Master_last_event_time and Slave_last_event_time. This is needed as there is not 'exec_time' for row events. - Fixed that Load_log_event calculates exec_time identically to Query_event. - Updated RESET SLAVE to reset Master/Slave_last_event_time - Updated SQL thread's update on first transaction read-in to only update Slave_last_event_time on group events. - Fixed possible (unlikely) bugs in sql_show.cc ...old_format() functions if allocation of 'field' would fail. Reviewed By: Brandon Nesterenko <brandon.nesterenko@mariadb.com> Kristian Nielsen <knielsen@knielsen-hq.org>
61 lines
3.7 KiB
Text
61 lines
3.7 KiB
Text
CREATE USER user1@localhost IDENTIFIED BY '';
|
|
GRANT ALL PRIVILEGES ON *.* TO user1@localhost;
|
|
REVOKE SLAVE MONITOR ON *.* FROM user1@localhost;
|
|
FLUSH PRIVILEGES;
|
|
connect con1,localhost,user1,,;
|
|
connection con1;
|
|
SHOW GRANTS;
|
|
Grants for user1@localhost
|
|
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, BINLOG MONITOR, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, DELETE HISTORY, SET USER, FEDERATED ADMIN, CONNECTION ADMIN, READ_ONLY ADMIN, REPLICATION SLAVE ADMIN, REPLICATION MASTER ADMIN, BINLOG ADMIN, BINLOG REPLAY, SHOW CREATE ROUTINE ON *.* TO `user1`@`localhost`
|
|
#
|
|
# Verify that having REPLICATION SLAVE ADMIN doesn't allow SHOW SLAVE STATUS
|
|
# Expected error: Access denied; you need (at least one of) the SLAVE MONITOR privilege(s) for this operation
|
|
#
|
|
SHOW SLAVE STATUS;
|
|
ERROR 42000: Access denied; you need (at least one of) the SLAVE MONITOR privilege(s) for this operation
|
|
SELECT * from information_schema.slave_status;
|
|
ERROR 42000: Access denied; you need (at least one of) the SLAVE MONITOR privilege(s) for this operation
|
|
#
|
|
# Verify that having REPLICATION SLAVE ADMIN doesn't allow SHOW RELAYLOG EVENTS
|
|
# Expected error: Access denied; you need (at least one of) the REPLICA MONITOR
|
|
# privilege(s) for this operation
|
|
#
|
|
SHOW RELAYLOG EVENTS;
|
|
ERROR 42000: Access denied; you need (at least one of) the SLAVE MONITOR privilege(s) for this operation
|
|
disconnect con1;
|
|
#
|
|
# SHOW SLAVE STATUS and SHOW RELAYLOG EVENTS are allowed with SLAVE MONITOR privilege
|
|
#
|
|
connection default;
|
|
GRANT SLAVE MONITOR ON *.* TO user1@localhost;
|
|
FLUSH PRIVILEGES;
|
|
connect con1,localhost,user1,,;
|
|
connection con1;
|
|
SHOW GRANTS;
|
|
Grants for user1@localhost
|
|
GRANT ALL PRIVILEGES ON *.* TO `user1`@`localhost`
|
|
SHOW SLAVE STATUS;
|
|
SHOW RELAYLOG EVENTS;
|
|
disconnect con1;
|
|
connection default;
|
|
DROP USER user1@localhost;
|
|
#
|
|
# MDEV-25030 Upgrade to 10.5.9 breaks root's ability to grant
|
|
#
|
|
insert mysql.global_priv values ('bar', 'foo7', '{"access":274877906943,"version_id":100507,"plugin":"mysql_native_password","authentication_string":""}'),
|
|
('bar', 'foo8', '{"access":274877906943,"version_id":100508,"plugin":"mysql_native_password","authentication_string":""}'),
|
|
('bar', 'foo9', '{"access":274877906943,"version_id":100509,"plugin":"mysql_native_password","authentication_string":""}');
|
|
flush privileges;
|
|
show grants for foo7@bar;
|
|
Grants for foo7@bar
|
|
GRANT ALL PRIVILEGES ON *.* TO `foo7`@`bar` WITH GRANT OPTION
|
|
show grants for foo8@bar;
|
|
Grants for foo8@bar
|
|
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, BINLOG MONITOR, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, DELETE HISTORY, SET USER, FEDERATED ADMIN, CONNECTION ADMIN, READ_ONLY ADMIN, REPLICATION SLAVE ADMIN, REPLICATION MASTER ADMIN, BINLOG ADMIN, BINLOG REPLAY, SLAVE MONITOR ON *.* TO `foo8`@`bar` WITH GRANT OPTION
|
|
show grants for foo9@bar;
|
|
Grants for foo9@bar
|
|
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, BINLOG MONITOR, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, DELETE HISTORY, SET USER, FEDERATED ADMIN, CONNECTION ADMIN, READ_ONLY ADMIN, REPLICATION SLAVE ADMIN, REPLICATION MASTER ADMIN, BINLOG ADMIN, BINLOG REPLAY, SLAVE MONITOR ON *.* TO `foo9`@`bar` WITH GRANT OPTION
|
|
drop user foo7@bar, foo8@bar, foo9@bar;
|
|
#
|
|
# End of 10.5 tests
|
|
#
|