Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/3.10' into 3.11
Browse files Browse the repository at this point in the history
Conflicts:
	symmetric-core/src/main/resources/symmetric-default.properties
  • Loading branch information
erilong committed Oct 11, 2019
2 parents 6770e36 + 4214f8f commit 902468d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
Expand Up @@ -94,7 +94,7 @@ public PostgreSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" $(custom_on_insert_text) \n" +
" return null; \n" +
" end; \n" +
" $function$ language plpgsql; " );
" $function$ language plpgsql" + getSecurityClause() + ";");

sqlTemplates.put("insertReloadTriggerTemplate" ,
"create or replace function $(schemaName)f$(triggerName)() returns trigger as $function$ \n" +
Expand All @@ -118,7 +118,7 @@ public PostgreSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" $(custom_on_insert_text) \n" +
" return null; \n" +
" end; \n" +
" $function$ language plpgsql; " );
" $function$ language plpgsql" + getSecurityClause() + ";");


sqlTemplates.put("insertPostTriggerTemplate" ,
Expand Down Expand Up @@ -155,7 +155,7 @@ public PostgreSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" $(custom_on_update_text) \n" +
" return null; \n" +
" end; \n" +
" $function$ language plpgsql; " );
" $function$ language plpgsql" + getSecurityClause() + ";");

sqlTemplates.put("updateReloadTriggerTemplate" ,
"create or replace function $(schemaName)f$(triggerName)() returns trigger as $function$ \n" +
Expand Down Expand Up @@ -185,7 +185,7 @@ public PostgreSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" $(custom_on_update_text) \n" +
" return null; \n" +
" end; \n" +
" $function$ language plpgsql; " );
" $function$ language plpgsql" + getSecurityClause() + ";");

sqlTemplates.put("updatePostTriggerTemplate" ,
"create trigger $(triggerName) after update on $(schemaName)$(tableName) \n" +
Expand Down Expand Up @@ -214,7 +214,7 @@ public PostgreSqlTriggerTemplate(ISymmetricDialect symmetricDialect) {
" $(custom_on_delete_text) \n" +
" return null; \n" +
" end; \n" +
" $function$ language plpgsql; " );
" $function$ language plpgsql" + getSecurityClause() + ";");

sqlTemplates.put("deletePostTriggerTemplate" ,
"create trigger $(triggerName) after delete on $(schemaName)$(tableName) \n" +
Expand All @@ -237,5 +237,12 @@ protected String getCreateTimeExpression(ISymmetricDialect symmetricDialect) {
return String.format("CURRENT_TIMESTAMP AT TIME ZONE '%s'", timezone);
}
}

protected String getSecurityClause() {
if (symmetricDialect.getParameterService().is(ParameterConstants.POSTGRES_SECURITY_DEFINER, false)) {
return " security definer";
}
return "";
}

}
Expand Up @@ -516,6 +516,7 @@ private ParameterConstants() {
public final static String REDSHIFT_BULK_LOAD_S3_SECRET_KEY = "redshift.bulk.load.s3.secret.key";
public final static String REDSHIFT_BULK_LOAD_S3_ENDPOINT = "redshift.bulk.load.s3.endpoint";

public final static String POSTGRES_SECURITY_DEFINER = "postgres.security.definer";

public static Map<String, ParameterMetaData> getParameterMetaData() {
return parameterMetaData;
Expand Down
Expand Up @@ -2661,3 +2661,11 @@ start.log.miner.job=false
# Tags: other
# Type: integer
job.log.miner.period.time.ms=10000

# Postgres triggers default to "security invoker" with permissions based on caller.
# Enable this parameter to use "security definer" with permissions based on owner.
#
# DatabaseOverridable: false
# Tags: postgres
# Type: boolean
postgres.security.definer=false

0 comments on commit 902468d

Please sign in to comment.