Skip to content

Commit 9bf53a0

Browse files
committed
Update script for grant more permission on app user
1 parent e987c14 commit 9bf53a0

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

mysql-user-creator.sh

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ generate_password() {
2828
# Flags
2929
CREATED_ANY_USER=false
3030

31-
# Function to create user if not exists
32-
create_user_if_not_exists() {
31+
# Function to create MYSQL user
32+
create_mysql_user() {
3333
local USERNAME=$1
3434
local PASSWORD=$2
3535
local GRANTS=$3
@@ -54,16 +54,31 @@ EOF
5454
echo " Password: $PASSWORD"
5555
echo ""
5656
CREATED_ANY_USER=true
57+
else
58+
# User exists, just update grants
59+
mysql \
60+
-h "$MYSQL_HOST" \
61+
-u "$MYSQL_USER" \
62+
-p"$MYSQL_PASSWORD" \
63+
--ssl-ca="$SSL_CA" <<EOF
64+
$GRANTS
65+
FLUSH PRIVILEGES;
66+
EOF
67+
echo "🔄 Updated grants for user: $USERNAME"
5768
fi
5869
}
5970

6071
# Create readonly user if not exists
6172
READONLY_PASSWORD=$(generate_password)
62-
create_user_if_not_exists "$READONLY_USER" "$READONLY_PASSWORD" "GRANT SELECT ON \`$TARGET_DB\`.* TO '$READONLY_USER'@'%';"
73+
create_mysql_user "$READONLY_USER" "$READONLY_PASSWORD" "GRANT SELECT ON \`$TARGET_DB\`.* TO '$READONLY_USER'@'%';"
6374

6475
# Create app user if not exists
6576
APP_PASSWORD=$(generate_password)
66-
create_user_if_not_exists "$APP_USER" "$APP_PASSWORD" "GRANT ALL PRIVILEGES ON \`$TARGET_DB\`.* TO '$APP_USER'@'%';"
77+
create_mysql_user "$APP_USER" "$APP_PASSWORD" "
78+
GRANT ALL PRIVILEGES ON \`$TARGET_DB\`.* TO '$APP_USER'@'%';
79+
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO '$APP_USER'@'%';
80+
GRANT RELOAD, SHOW DATABASES ON *.* TO '$APP_USER'@'%';
81+
"
6782

6883
if [ "$CREATED_ANY_USER" = false ]; then
6984
echo "ℹ️ No new users created. Both users already exist."

0 commit comments

Comments
 (0)