Skip to content

Commit ef8e039

Browse files
Adapt MySQL Router role to existing logic
1 parent 3995ec6 commit ef8e039

File tree

2 files changed

+10
-12
lines changed

2 files changed

+10
-12
lines changed

lib/charms/mysql/v0/mysql.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,12 +1129,13 @@ def configure_mysql_router_roles(self) -> None:
11291129
logger.debug(f"Missing MySQL role {role}")
11301130
configure_role_commands = [
11311131
f"CREATE ROLE {role}",
1132-
f"GRANT CREATE USER ON *.* TO {role} WITH GRANT OPTION",
1133-
f"GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON mysql_innodb_cluster_metadata.* TO {role}",
1134-
f"GRANT SELECT ON mysql.user TO {role}",
1135-
f"GRANT SELECT ON performance_schema.replication_group_members TO {role}",
1136-
f"GRANT SELECT ON performance_schema.replication_group_member_stats TO {role}",
1137-
f"GRANT SELECT ON performance_schema.global_variables TO {role}",
1132+
f"GRANT CREATE ON *.* TO {role}",
1133+
f"GRANT CREATE USER ON *.* TO {role}",
1134+
# The granting of all privileges to the MySQL Router role
1135+
# can only be restricted when the privileges to the users
1136+
# created by such role are restricted as well
1137+
# https://github.com/canonical/mysql-router-operator/blob/main/src/mysql_shell/__init__.py#L134-L136
1138+
f"GRANT ALL ON *.* TO {role} WITH GRANT OPTION",
11381139
]
11391140

11401141
try:

tests/unit/test_mysql.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,12 +147,9 @@ def test_configure_mysql_router_roles(self, _run_mysqlcli_script, _list_mysql_ro
147147

148148
_expected_configure_role_commands = [
149149
f"CREATE ROLE {role}",
150-
f"GRANT CREATE USER ON *.* TO {role} WITH GRANT OPTION",
151-
f"GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON mysql_innodb_cluster_metadata.* TO {role}",
152-
f"GRANT SELECT ON mysql.user TO {role}",
153-
f"GRANT SELECT ON performance_schema.replication_group_members TO {role}",
154-
f"GRANT SELECT ON performance_schema.replication_group_member_stats TO {role}",
155-
f"GRANT SELECT ON performance_schema.global_variables TO {role}",
150+
f"GRANT CREATE ON *.* TO {role}",
151+
f"GRANT CREATE USER ON *.* TO {role}",
152+
f"GRANT ALL ON *.* TO {role} WITH GRANT OPTION",
156153
]
157154

158155
self.mysql.configure_mysql_router_roles()

0 commit comments

Comments
 (0)