Advertisement
Guest User

Fix collation issue in user view

a guest
Mar 30th, 2025
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 5.87 KB | None | 0 0
  1. CREATE OR REPLACE VIEW user AS
  2. SELECT
  3.     `global_priv`.`Host` COLLATE utf8mb4_unicode_520_ci AS `Host`,
  4.     `global_priv`.`User` COLLATE utf8mb4_unicode_520_ci AS `User`,
  5.    
  6.     IF(
  7.         JSON_VALUE(`global_priv`.`Priv`, '$.plugin') IN ('mysql_native_password', 'mysql_old_password'),
  8.         IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.authentication_string'), ''),
  9.         ''
  10.     ) COLLATE utf8mb4_unicode_520_ci AS `Password`,
  11.    
  12.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 1, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Select_priv`,
  13.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 2, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Insert_priv`,
  14.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 4, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Update_priv`,
  15.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 8, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Delete_priv`,
  16.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 16, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Create_priv`,
  17.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 32, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Drop_priv`,
  18.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 64, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Reload_priv`,
  19.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 128, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Shutdown_priv`,
  20.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 256, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Process_priv`,
  21.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 512, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `File_priv`,
  22.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 1024, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Grant_priv`,
  23.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 2048, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `References_priv`,
  24.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 4096, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Index_priv`,
  25.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 8192, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Alter_priv`,
  26.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 16384, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Show_db_priv`,
  27.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 32768, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Super_priv`,
  28.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 65536, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Create_tmp_table_priv`,
  29.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 131072, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Lock_tables_priv`,
  30.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 262144, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Execute_priv`,
  31.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 524288, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Repl_slave_priv`,
  32.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 1048576, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Repl_client_priv`,
  33.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 2097152, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Create_view_priv`,
  34.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 4194304, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Show_view_priv`,
  35.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 8388608, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Create_routine_priv`,
  36.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 16777216, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Alter_routine_priv`,
  37.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 33554432, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Create_user_priv`,
  38.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 67108864, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Event_priv`,
  39.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 134217728, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Trigger_priv`,
  40.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 268435456, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Create_tablespace_priv`,
  41.     IF(JSON_VALUE(`global_priv`.`Priv`, '$.access') & 536870912, 'Y', 'N') COLLATE utf8mb4_unicode_520_ci AS `Delete_history_priv`,
  42.    
  43.     ELT(
  44.         IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.ssl_type'), 0) + 1,
  45.         '', 'ANY', 'X509', 'SPECIFIED'
  46.     ) COLLATE utf8mb4_unicode_520_ci AS `ssl_type`,
  47.    
  48.     IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.ssl_cipher'), '') COLLATE utf8mb4_unicode_520_ci AS `ssl_cipher`,
  49.     IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.x509_issuer'), '') COLLATE utf8mb4_unicode_520_ci AS `x509_issuer`,
  50.     IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.x509_subject'), '') COLLATE utf8mb4_unicode_520_ci AS `x509_subject`,
  51.    
  52.     CAST(IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.max_questions'), 0) AS UNSIGNED) AS `max_questions`,
  53.     CAST(IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.max_updates'), 0) AS UNSIGNED) AS `max_updates`,
  54.     CAST(IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.max_connections'), 0) AS UNSIGNED) AS `max_connections`,
  55.     CAST(IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.max_user_connections'), 0) AS SIGNED) AS `max_user_connections`,
  56.    
  57.     IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.plugin'), '') COLLATE utf8mb4_unicode_520_ci AS `plugin`,
  58.     IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.authentication_string'), '') COLLATE utf8mb4_unicode_520_ci AS `authentication_string`,
  59.    
  60.     IF(
  61.         IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.password_last_changed'), 1) = 0,
  62.         'Y',
  63.         'N'
  64.     ) COLLATE utf8mb4_unicode_520_ci AS `password_expired`,
  65.    
  66.     ELT(
  67.         IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.is_role'), 0) + 1,
  68.         'N', 'Y'
  69.     ) COLLATE utf8mb4_unicode_520_ci AS `is_role`,
  70.    
  71.     IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.default_role'), '') COLLATE utf8mb4_unicode_520_ci AS `default_role`,
  72.    
  73.     CAST(
  74.         IFNULL(JSON_VALUE(`global_priv`.`Priv`, '$.max_statement_time'), 0.0) AS DECIMAL(12,6)
  75.     ) AS `max_statement_time`
  76.    
  77. FROM `global_priv`;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement