@@ -64,26 +64,24 @@ def self.instances
6464 end
6565
6666 sorted_privileges = stripped_privileges . uniq . sort
67- if newer_than ( 'mysql' => '8.0.0' ) && sorted_privileges == [ 'ALTER' , 'ALTER ROUTINE' , 'CREATE' , 'CREATE ROLE' , 'CREATE ROUTINE' , 'CREATE TABLESPACE' , 'CREATE TEMPORARY TABLES' , 'CREATE USER' ,
68- 'CREATE VIEW' , 'DELETE' , 'DROP' , 'DROP ROLE' , 'EVENT' , 'EXECUTE' , 'FILE' , 'INDEX' , 'INSERT' , 'LOCK TABLES' , 'PROCESS' , 'REFERENCES' ,
69- 'RELOAD' , 'REPLICATION CLIENT' , 'REPLICATION SLAVE' , 'SELECT' , 'SHOW DATABASES' , 'SHOW VIEW' , 'SHUTDOWN' , 'SUPER' , 'TRIGGER' ,
70- 'UPDATE' ]
71- sorted_privileges = [ 'ALL' ]
72-
73- # The following two elsif blocks of code are a workaround for issue #1474.
74- elsif sorted_privileges == [ 'ALL' , 'APPLICATION_PASSWORD_ADMIN' , 'AUDIT_ABORT_EXEMPT' , 'AUDIT_ADMIN' , 'AUTHENTICATION_POLICY_ADMIN' , 'BACKUP_ADMIN' , 'BINLOG_ADMIN' , 'BINLOG_ENCRYPTION_ADMIN' ,
75- 'CLONE_ADMIN' , 'CONNECTION_ADMIN' , 'ENCRYPTION_KEY_ADMIN' , 'FLUSH_OPTIMIZER_COSTS' , 'FLUSH_STATUS' , 'FLUSH_TABLES' , 'FLUSH_USER_RESOURCES' ,
76- 'GROUP_REPLICATION_ADMIN' , 'GROUP_REPLICATION_STREAM' , 'INNODB_REDO_LOG_ARCHIVE' , 'INNODB_REDO_LOG_ENABLE' , 'PASSWORDLESS_USER_ADMIN' , 'PERSIST_RO_VARIABLES_ADMIN' ,
77- 'REPLICATION_APPLIER' , 'REPLICATION_SLAVE_ADMIN' , 'RESOURCE_GROUP_ADMIN' , 'RESOURCE_GROUP_USER' , 'ROLE_ADMIN' , 'SERVICE_CONNECTION_ADMIN' ,
78- 'SESSION_VARIABLES_ADMIN' , 'SET_USER_ID' , 'SHOW_ROUTINE' , 'SYSTEM_USER' , 'SYSTEM_VARIABLES_ADMIN' , 'TABLE_ENCRYPTION_ADMIN' , 'XA_RECOVER_ADMIN' ]
79- sorted_privileges = [ 'ALL' ]
80-
81- elsif sorted_privileges == [ 'ALL' , 'APPLICATION_PASSWORD_ADMIN' , 'AUDIT_ABORT_EXEMPT' , 'AUDIT_ADMIN' , 'AUTHENTICATION_POLICY_ADMIN' , 'BACKUP_ADMIN' , 'BINLOG_ADMIN' , 'BINLOG_ENCRYPTION_ADMIN' ,
82- 'CLONE_ADMIN' , 'CONNECTION_ADMIN' , 'ENCRYPTION_KEY_ADMIN' , 'FLUSH_OPTIMIZER_COSTS' , 'FLUSH_STATUS' , 'FLUSH_TABLES' , 'FLUSH_USER_RESOURCES' ,
83- 'GROUP_REPLICATION_ADMIN' , 'GROUP_REPLICATION_STREAM' , 'INNODB_REDO_LOG_ARCHIVE' , 'INNODB_REDO_LOG_ENABLE' , 'PASSWORDLESS_USER_ADMIN' , 'PERSIST_RO_VARIABLES_ADMIN' ,
84- 'REPLICATION_APPLIER' , 'REPLICATION_SLAVE_ADMIN' , 'RESOURCE_GROUP_ADMIN' , 'RESOURCE_GROUP_USER' , 'ROLE_ADMIN' , 'SENSITIVE_VARIABLES_OBSERVER' ,
85- 'SERVICE_CONNECTION_ADMIN' , 'SESSION_VARIABLES_ADMIN' , 'SET_USER_ID' , 'SHOW_ROUTINE' , 'SYSTEM_USER' , 'SYSTEM_VARIABLES_ADMIN' , 'TABLE_ENCRYPTION_ADMIN' ,
86- 'XA_RECOVER_ADMIN' ]
67+ mysql_v8_privileges = [ 'ALTER' , 'ALTER ROUTINE' , 'CREATE' , 'CREATE ROLE' , 'CREATE ROUTINE' , 'CREATE TABLESPACE' , 'CREATE TEMPORARY TABLES' , 'CREATE USER' ,
68+ 'CREATE VIEW' , 'DELETE' , 'DROP' , 'DROP ROLE' , 'EVENT' , 'EXECUTE' , 'FILE' , 'INDEX' , 'INSERT' , 'LOCK TABLES' , 'PROCESS' , 'REFERENCES' ,
69+ 'RELOAD' , 'REPLICATION CLIENT' , 'REPLICATION SLAVE' , 'SELECT' , 'SHOW DATABASES' , 'SHOW VIEW' , 'SHUTDOWN' , 'SUPER' , 'TRIGGER' ,
70+ 'UPDATE' ]
71+ # The following two compare blocks are a workaround for issue #1474.
72+ mysql_pre_v8_privileges_one = [ 'ALL' , 'APPLICATION_PASSWORD_ADMIN' , 'AUDIT_ABORT_EXEMPT' , 'AUDIT_ADMIN' , 'AUTHENTICATION_POLICY_ADMIN' , 'BACKUP_ADMIN' , 'BINLOG_ADMIN' ,
73+ 'BINLOG_ENCRYPTION_ADMIN' , 'CLONE_ADMIN' , 'CONNECTION_ADMIN' , 'ENCRYPTION_KEY_ADMIN' , 'FLUSH_OPTIMIZER_COSTS' , 'FLUSH_STATUS' ,
74+ 'FLUSH_TABLES' , 'FLUSH_USER_RESOURCES' , 'GROUP_REPLICATION_ADMIN' , 'GROUP_REPLICATION_STREAM' , 'INNODB_REDO_LOG_ARCHIVE' ,
75+ 'INNODB_REDO_LOG_ENABLE' , 'PASSWORDLESS_USER_ADMIN' , 'PERSIST_RO_VARIABLES_ADMIN' , 'REPLICATION_APPLIER' , 'REPLICATION_SLAVE_ADMIN' ,
76+ 'RESOURCE_GROUP_ADMIN' , 'RESOURCE_GROUP_USER' , 'ROLE_ADMIN' , 'SERVICE_CONNECTION_ADMIN' , 'SESSION_VARIABLES_ADMIN' , 'SET_USER_ID' ,
77+ 'SHOW_ROUTINE' , 'SYSTEM_USER' , 'SYSTEM_VARIABLES_ADMIN' , 'TABLE_ENCRYPTION_ADMIN' , 'XA_RECOVER_ADMIN' ]
78+ mysql_pre_v8_privileges_two = [ 'ALL' , 'APPLICATION_PASSWORD_ADMIN' , 'AUDIT_ABORT_EXEMPT' , 'AUDIT_ADMIN' , 'AUTHENTICATION_POLICY_ADMIN' , 'BACKUP_ADMIN' , 'BINLOG_ADMIN' ,
79+ 'BINLOG_ENCRYPTION_ADMIN' , 'CLONE_ADMIN' , 'CONNECTION_ADMIN' , 'ENCRYPTION_KEY_ADMIN' , 'FLUSH_OPTIMIZER_COSTS' , 'FLUSH_STATUS' ,
80+ 'FLUSH_TABLES' , 'FLUSH_USER_RESOURCES' , 'GROUP_REPLICATION_ADMIN' , 'GROUP_REPLICATION_STREAM' , 'INNODB_REDO_LOG_ARCHIVE' ,
81+ 'INNODB_REDO_LOG_ENABLE' , 'PASSWORDLESS_USER_ADMIN' , 'PERSIST_RO_VARIABLES_ADMIN' , 'REPLICATION_APPLIER' , 'REPLICATION_SLAVE_ADMIN' ,
82+ 'RESOURCE_GROUP_ADMIN' , 'RESOURCE_GROUP_USER' , 'ROLE_ADMIN' , 'SENSITIVE_VARIABLES_OBSERVER' , 'SERVICE_CONNECTION_ADMIN' ,
83+ 'SESSION_VARIABLES_ADMIN' , 'SET_USER_ID' , 'SHOW_ROUTINE' , 'SYSTEM_USER' , 'SYSTEM_VARIABLES_ADMIN' , 'TABLE_ENCRYPTION_ADMIN' , 'XA_RECOVER_ADMIN' ]
84+ if ( newer_than ( 'mysql' => '8.0.0' ) && sorted_privileges == mysql_v8_privileges ) || sorted_privileges == mysql_pre_v8_privileges_one || sorted_privileges == mysql_pre_v8_privileges_two
8785 sorted_privileges = [ 'ALL' ]
8886 end
8987
0 commit comments