@@ -42,6 +42,7 @@ import (
4242
4343 "github.com/Facets-cloud/postgresql-operator/apis/common"
4444 postgresql "github.com/Facets-cloud/postgresql-operator/apis/postgresql/v1alpha1"
45+ "github.com/Facets-cloud/postgresql-operator/utility"
4546 "github.com/google/go-cmp/cmp"
4647 "github.com/lib/pq"
4748)
@@ -438,10 +439,14 @@ func (r *GrantReconciler) CreateGrant(ctx context.Context, grantType string, gra
438439 // https://www.postgresql.org/docs/current/sql-alterdefaultprivileges.html
439440 createGrantQueryForFutureTables := fmt .Sprintf ("ALTER DEFAULT PRIVILEGES IN SCHEMA %s GRANT %s ON TABLES TO \" %s\" " , schema , privileges , roleName )
440441 createGrantQueryForExistingTables := fmt .Sprintf ("GRANT %s ON ALL TABLES IN SCHEMA %s TO \" %s\" " , privileges , schema , roleName )
441- createGrantSeqQueryForFutureTables := fmt .Sprintf ("ALTER DEFAULT PRIVILEGES IN SCHEMA %s GRANT %s ON SEQUENCES TO \" %s\" " , schema , privileges , roleName )
442- createGrantSeqQueryForExistingTables := fmt .Sprintf ("GRANT %s ON ALL SEQUENCES IN SCHEMA %s TO \" %s\" " , privileges , schema , roleName )
443-
444- createGrantQuery = strings .Join ([]string {createGrantQueryForFutureTables , createGrantQueryForExistingTables , createGrantSeqQueryForFutureTables , createGrantSeqQueryForExistingTables }, "; " )
442+ sequencePrivileges := utility .GenerateSequencePrivileges (privileges )
443+ createGrantSeqQueryForFutureTables := fmt .Sprintf ("ALTER DEFAULT PRIVILEGES IN SCHEMA %s GRANT %s ON SEQUENCES TO \" %s\" " , schema , sequencePrivileges , roleName )
444+ createGrantSeqQueryForExistingTables := fmt .Sprintf ("GRANT %s ON ALL SEQUENCES IN SCHEMA %s TO \" %s\" " , sequencePrivileges , schema , roleName )
445+ if strings .Compare (sequencePrivileges , "" ) == 0 {
446+ createGrantQuery = strings .Join ([]string {createGrantQueryForFutureTables , createGrantQueryForExistingTables }, "; " )
447+ } else {
448+ createGrantQuery = strings .Join ([]string {createGrantQueryForFutureTables , createGrantQueryForExistingTables , createGrantSeqQueryForFutureTables , createGrantSeqQueryForExistingTables }, "; " )
449+ }
445450 } else {
446451 createGrantQuery = fmt .Sprintf ("GRANT %s ON %s.%s TO \" %s\" " , privileges , schema , table , roleName )
447452 }
@@ -532,9 +537,14 @@ func (r *GrantReconciler) SyncGrant(ctx context.Context, grantType string, grant
532537 // https://www.postgresql.org/docs/current/sql-alterdefaultprivileges.html
533538 syncGrantQueryForFutureTables := fmt .Sprintf ("ALTER DEFAULT PRIVILEGES IN SCHEMA %s GRANT %s ON TABLES TO \" %s\" " , schema , privileges , roleName )
534539 syncGrantQueryForExistingTables := fmt .Sprintf ("GRANT %s ON ALL TABLES IN SCHEMA %s TO \" %s\" " , privileges , schema , roleName )
535- syncGrantSeqQueryForFutureTables := fmt .Sprintf ("ALTER DEFAULT PRIVILEGES IN SCHEMA %s GRANT %s ON SEQUENCES TO \" %s\" " , schema , privileges , roleName )
536- syncGrantSeqQueryForExistingTables := fmt .Sprintf ("GRANT %s ON ALL SEQUENCES IN SCHEMA %s TO \" %s\" " , privileges , schema , roleName )
537- syncGrantQuery = strings .Join ([]string {syncGrantQueryForFutureTables , syncGrantQueryForExistingTables , syncGrantSeqQueryForFutureTables , syncGrantSeqQueryForExistingTables }, "; " )
540+ sequencePrivileges := utility .GenerateSequencePrivileges (privileges )
541+ syncGrantSeqQueryForFutureTables := fmt .Sprintf ("ALTER DEFAULT PRIVILEGES IN SCHEMA %s GRANT %s ON SEQUENCES TO \" %s\" " , schema , sequencePrivileges , roleName )
542+ syncGrantSeqQueryForExistingTables := fmt .Sprintf ("GRANT %s ON ALL SEQUENCES IN SCHEMA %s TO \" %s\" " , sequencePrivileges , schema , roleName )
543+ if strings .Compare (sequencePrivileges , "" ) == 0 {
544+ syncGrantQuery = strings .Join ([]string {syncGrantQueryForFutureTables , syncGrantQueryForExistingTables }, "; " )
545+ } else {
546+ syncGrantQuery = strings .Join ([]string {syncGrantQueryForFutureTables , syncGrantQueryForExistingTables , syncGrantSeqQueryForFutureTables , syncGrantSeqQueryForExistingTables }, "; " )
547+ }
538548 } else {
539549 syncGrantQuery = fmt .Sprintf ("GRANT %s ON %s.%s TO \" %s\" " , privileges , schema , table , roleName )
540550 }
0 commit comments