File: rpl_clear_priv_checks_user_configuration.inc

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (83 lines) | stat: -rw-r--r-- 3,077 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# ==== Purpose ====
#
# Reverts the changes done by rpl_priv_checks_user_configuration.inc
# This file is normally sourced by rpl_end.inc for replication use cases
# or gr_clear_configuration.inc for group replication use cases.
#
# ==== Usage ====
# [--let $rpl_change_topology_user_created= 1:rpl_applier_priv_user'@'localhost
#    2:rpl_applier_priv_user'@'localhost]
#  --source include/rpl_clear_priv_checks_user_configuration.inc
#
# Parameters:
#   $rpl_change_topology_user_created
#     Specifies the user account created for each server in format :
#     server_number1:user1, server_number2:user2 ...
#


--let $include_filename= rpl_clear_priv_checks_user_configuration.inc
--source include/begin_include_file.inc

--let $_sql_log_bin_saved= `SELECT @@sql_log_bin`
--let $_read_only_saved= `SELECT @@global.read_only`
--let $_super_read_only_saved = `SELECT @@global.read_only`
--disable_query_log
SET @@sql_log_bin = 0;

# Ensure that rpl servers are writable when reverting the changes
# required to configure privilege_checks_user
SET @@global.read_only = 0;
SET @@global.super_read_only = 0;

# Drop applier user, if created
--let $_rpl_change_topology_user_created_index= `SELECT LOCATE('$_rpl_server:', "$rpl_change_topology_user_created")`
if ($_rpl_change_topology_user_created_index)
{
  --let $_rpl_change_topology_user_created= `SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING("$rpl_change_topology_user_created", $_rpl_change_topology_user_created_index), ' ', 1), ':', -1)`
  --let $_rpl_change_topology_user_name= `SELECT SUBSTRING("$_rpl_change_topology_user_created", 1, $_privilege_checks_user_at_index - 1)`
  --let $_rpl_change_topology_user_host= '%'
  if ($_privilege_checks_user_at_index != 0)
  {
    --let $_rpl_change_topology_user_host= `SELECT SUBSTRING("$_rpl_change_topology_user_created", $_privilege_checks_user_at_index + 1)`
  }

  # Revert changes done to mysql.db
  # --eval INSERT INTO mysql.db VALUES ('','test','%','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y')
  UPDATE mysql.db SET
      Select_priv = 'Y',
      Insert_priv = 'Y',
      Update_priv = 'Y',
      Delete_priv = 'Y',
      Create_priv = 'Y',
      Drop_priv = 'Y',
      Grant_priv = 'N',
      References_priv = 'Y',
      Index_priv = 'Y',
      Alter_priv = 'Y',
      Create_tmp_table_priv = 'Y',
      Lock_tables_priv = 'Y',
      Create_view_priv = 'Y',
      Show_view_priv = 'Y',
      Create_routine_priv = 'Y',
      Alter_routine_priv = 'N',
      Execute_priv = 'N',
      Event_priv = 'Y',
      Trigger_priv = 'Y'
    WHERE db = 'test' and user = '';
  FLUSH PRIVILEGES;

  --eval DROP USER $_rpl_change_topology_user_created
   if ($rpl_privilege_checks_use_roles == 1)
   {
     --eval DROP ROLE 'sql_applier_thread'
   }
}

--eval SET @@global.read_only = $_read_only_saved
--eval SET @@global.super_read_only = $_super_read_only_saved
--eval SET @@sql_log_bin = $_sql_log_bin_saved
--enable_query_log

--let $include_filename= rpl_clear_priv_checks_user_configuration.inc
--source include/end_include_file.inc