Skip to content

Commit 256d8ad

Browse files
Adapt MySQL Router role to existing logic
1 parent 551c3f8 commit 256d8ad

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
@@ -1208,12 +1208,13 @@ def configure_mysql_router_roles(self) -> None:
12081208
logger.debug(f"Missing MySQL role {role}")
12091209
configure_role_commands = [
12101210
f"CREATE ROLE {role}",
1211-
f"GRANT CREATE USER ON *.* TO {role} WITH GRANT OPTION",
1212-
f"GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE ON mysql_innodb_cluster_metadata.* TO {role}",
1213-
f"GRANT SELECT ON mysql.user TO {role}",
1214-
f"GRANT SELECT ON performance_schema.replication_group_members TO {role}",
1215-
f"GRANT SELECT ON performance_schema.replication_group_member_stats TO {role}",
1216-
f"GRANT SELECT ON performance_schema.global_variables TO {role}",
1211+
f"GRANT CREATE ON *.* TO {role}",
1212+
f"GRANT CREATE USER ON *.* TO {role}",
1213+
# The granting of all privileges to the MySQL Router role
1214+
# can only be restricted when the privileges to the users
1215+
# created by such role are restricted as well
1216+
# https://github.com/canonical/mysql-router-operator/blob/main/src/mysql_shell/__init__.py#L134-L136
1217+
f"GRANT ALL ON *.* TO {role} WITH GRANT OPTION",
12171218
]
12181219

12191220
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)