@@ -64,26 +64,24 @@ def self.instances
64
64
end
65
65
66
66
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
87
85
sorted_privileges = [ 'ALL' ]
88
86
end
89
87
0 commit comments