Browse Source

kamdbctl: split create user and grant access statements for mysql

- MySQL 8 doesn't support all in one statement
Daniel-Constantin Mierla 5 years ago
parent
commit
c0879add55
1 changed files with 12 additions and 6 deletions
  1. 12 6
      utils/kamctl/kamdbctl.mysql

+ 12 - 6
utils/kamctl/kamdbctl.mysql

@@ -160,8 +160,10 @@ kamailio_db_grant () # pars: <database name>
 	minfo "granting privileges to database $1 ..."
 
 	# Users: kamailio is the regular user, kamailioro only for reading
-	sql_query "" "GRANT ALL PRIVILEGES ON $1.* TO '${DBRWUSER}'@'$DBHOST' IDENTIFIED BY '$DBRWPW';
-		GRANT SELECT ON $1.* TO '${DBROUSER}'@'$DBHOST' IDENTIFIED BY '$DBROPW';"
+	sql_query "" "CREATE USER '${DBRWUSER}'@'$DBHOST' IDENTIFIED BY '$DBRWPW';
+		GRANT ALL PRIVILEGES ON $1.* TO '${DBRWUSER}'@'$DBHOST';
+		CREATE USER '${DBROUSER}'@'$DBHOST' IDENTIFIED BY '$DBROPW';
+		GRANT SELECT ON $1.* TO '${DBROUSER}'@'$DBHOST';"
 
 	if [ $? -ne 0 ] ; then
 		merr "granting privileges to database $1 failed!"
@@ -169,8 +171,10 @@ kamailio_db_grant () # pars: <database name>
 	fi
 
 	if [ "$DBHOST" != "localhost" ] ; then
-		sql_query "" "GRANT ALL PRIVILEGES ON $1.* TO '$DBRWUSER'@'localhost' IDENTIFIED  BY '$DBRWPW';
-			GRANT SELECT ON $1.* TO '$DBROUSER'@'localhost' IDENTIFIED BY '$DBROPW';"
+		sql_query "" "CREATE USER '$DBRWUSER'@'localhost' IDENTIFIED BY '$DBRWPW';
+			GRANT ALL PRIVILEGES ON $1.* TO '$DBRWUSER'@'localhost';
+			CREATE USER '$DBROUSER'@'localhost' IDENTIFIED BY '$DBROPW';
+			GRANT SELECT ON $1.* TO '$DBROUSER'@'localhost';"
 		if [ $? -ne 0 ] ; then
 			merr "granting localhost privileges to database $1 failed!"
 			exit 1
@@ -178,8 +182,10 @@ kamailio_db_grant () # pars: <database name>
 	fi
 
 	if [ ! -z "$DBACCESSHOST" ] ; then
-		sql_query "" "GRANT ALL PRIVILEGES ON $1.* TO '$DBRWUSER'@'$DBACCESSHOST' IDENTIFIED  BY '$DBRWPW';
-			GRANT SELECT ON $1.* TO '$DBROUSER'@'$DBACCESSHOST' IDENTIFIED BY '$DBROPW';"
+		sql_query "" "CREATE USER '$DBRWUSER'@'$DBACCESSHOST' IDENTIFIED BY '$DBRWPW';
+			GRANT ALL PRIVILEGES ON $1.* TO '$DBRWUSER'@'$DBACCESSHOST';
+			CREATE USER '$DBROUSER'@'$DBACCESSHOST' IDENTIFIED BY '$DBROPW';
+			GRANT SELECT ON $1.* TO '$DBROUSER'@'$DBACCESSHOST';"
 		if [ $? -ne 0 ] ; then
 			merr "granting access host privileges to database $1 failed!"
 			exit 1