@@ -1067,25 +1067,27 @@ func resourceSqlDatabaseInstanceCreate(d *schema.ResourceData, meta interface{})
10671067 // Users in a replica instance are inherited from the master instance and should be left alone.
10681068 // This deletion is done immediately after the instance is created, in order to minimize the
10691069 // risk of it being left on the instance, which would present a security concern.
1070- if sqlDatabaseIsMaster (d ) && strings . Contains ( strings . ToUpper ( databaseVersion ), "MYSQL" ) {
1071- var user * sqladmin.User
1070+ if sqlDatabaseIsMaster (d ) {
1071+ var users * sqladmin.UsersListResponse
10721072 err = transport_tpg .RetryTimeDuration (func () error {
1073- user , err = config .NewSqlAdminClient (userAgent ).Users .Get (project , instance .Name , "root" ). Host ( "%" ).Do ()
1073+ users , err = config .NewSqlAdminClient (userAgent ).Users .List (project , instance .Name ).Do ()
10741074 return err
10751075 }, d .Timeout (schema .TimeoutRead ), transport_tpg .IsSqlOperationInProgressError )
10761076 if err != nil {
1077- return fmt .Errorf ("Error, attempting to fetch root user associated with instance %s: %s" , instance .Name , err )
1077+ return fmt .Errorf ("Error, attempting to list users associated with instance %s: %s" , instance .Name , err )
10781078 }
1079- if user != nil {
1080- err = transport_tpg .Retry (func () error {
1081- op , err = config .NewSqlAdminClient (userAgent ).Users .Delete (project , instance .Name ).Host (user .Host ).Name (user .Name ).Do ()
1082- if err == nil {
1083- err = SqlAdminOperationWaitTime (config , op , project , "Delete default root User" , userAgent , d .Timeout (schema .TimeoutCreate ))
1079+ for _ , u := range users .Items {
1080+ if u .Name == "root" && u .Host == "%" {
1081+ err = transport_tpg .Retry (func () error {
1082+ op , err = config .NewSqlAdminClient (userAgent ).Users .Delete (project , instance .Name ).Host (u .Host ).Name (u .Name ).Do ()
1083+ if err == nil {
1084+ err = SqlAdminOperationWaitTime (config , op , project , "Delete default root User" , userAgent , d .Timeout (schema .TimeoutCreate ))
1085+ }
1086+ return err
1087+ })
1088+ if err != nil {
1089+ return fmt .Errorf ("Error, failed to delete default 'root'@'*' user, but the database was created successfully: %s" , err )
10841090 }
1085- return err
1086- })
1087- if err != nil {
1088- return fmt .Errorf ("Error, failed to delete default 'root'@'*' user, but the database was created successfully: %s" , err )
10891091 }
10901092 }
10911093 }
0 commit comments