only change DB default privileges on creation

This commit is contained in:
Felix Kunde 2020-04-28 12:17:45 +02:00
parent 7469eadac3
commit ef5cc6560f
1 changed files with 11 additions and 5 deletions

View File

@ -109,9 +109,9 @@ func (c *Cluster) Sync(newSpec *acidv1.Postgresql) error {
err = fmt.Errorf("could not sync databases: %v", err) err = fmt.Errorf("could not sync databases: %v", err)
return err return err
} }
c.logger.Debugf("syncing database schemas") c.logger.Debugf("syncing prepared databases with schemas")
if err = c.syncPreparedDatabases(); err != nil { if err = c.syncPreparedDatabases(); err != nil {
err = fmt.Errorf("could not sync database schemas: %v", err) err = fmt.Errorf("could not sync prepared database: %v", err)
return err return err
} }
} }
@ -534,6 +534,7 @@ func (c *Cluster) syncDatabases() error {
createDatabases := make(map[string]string) createDatabases := make(map[string]string)
alterOwnerDatabases := make(map[string]string) alterOwnerDatabases := make(map[string]string)
preparedDatabases := make([]string, 0)
if err := c.initDbConn(); err != nil { if err := c.initDbConn(); err != nil {
return fmt.Errorf("could not init database connection") return fmt.Errorf("could not init database connection")
@ -557,6 +558,7 @@ func (c *Cluster) syncDatabases() error {
_, exists := currentDatabases[preparedDatabaseName] _, exists := currentDatabases[preparedDatabaseName]
if !exists { if !exists {
createDatabases[preparedDatabaseName] = preparedDatabaseName + constants.OwnerRoleNameSuffix createDatabases[preparedDatabaseName] = preparedDatabaseName + constants.OwnerRoleNameSuffix
preparedDatabases = append(preparedDatabases, preparedDatabaseName)
} }
} }
@ -584,6 +586,13 @@ func (c *Cluster) syncDatabases() error {
} }
} }
// set default privileges for prepared database
for _, preparedDatabase := range preparedDatabases {
if err = c.execAlterGlobalDefaultPrivileges(preparedDatabase+constants.OwnerRoleNameSuffix, preparedDatabase); err != nil {
return err
}
}
return nil return nil
} }
@ -599,9 +608,6 @@ func (c *Cluster) syncPreparedDatabases() error {
} }
}() }()
// first, set default privileges for prepared database
c.execAlterGlobalDefaultPrivileges(preparedDbName+constants.OwnerRoleNameSuffix, preparedDbName)
// now, prepare defined schemas // now, prepare defined schemas
preparedSchemas := preparedDB.PreparedSchemas preparedSchemas := preparedDB.PreparedSchemas
if len(preparedDB.PreparedSchemas) == 0 { if len(preparedDB.PreparedSchemas) == 0 {