Skip to content

Commit 0d020f4

Browse files
Adapt MySQL Router role to existing logic
1 parent bed8b86 commit 0d020f4

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

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