Skip to content

Commit f4dcf75

Browse files
committed
Enhance view owner validation
1 parent 60681db commit f4dcf75

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

core/trino-main/src/main/java/io/trino/sql/analyzer/StatementAnalyzer.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1470,6 +1470,9 @@ private List<ConnectorViewDefinition.ViewColumn> translateMaterializedViewColumn
14701470

14711471
private Scope createScopeForView(Table table, QualifiedObjectName name, Optional<Scope> scope, ConnectorViewDefinition view)
14721472
{
1473+
if (!view.isRunAsInvoker() && view.getOwner().isEmpty()) {
1474+
throw semanticException(INVALID_VIEW, table, "Owner must be present in view '%s' with SECURITY DEFINER mode", name);
1475+
}
14731476
return createScopeForView(table, name, scope, view.getOriginalSql(), view.getCatalog(), view.getSchema(), view.getOwner(), view.getColumns());
14741477
}
14751478

core/trino-main/src/test/java/io/trino/sql/analyzer/TestAnalyzer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3242,7 +3242,7 @@ public void setup()
32423242
ImmutableList.of(new ViewColumn("a", BIGINT.getTypeId())),
32433243
Optional.empty(),
32443244
Optional.empty(),
3245-
false);
3245+
true);
32463246
inSetupTransaction(session -> metadata.createView(
32473247
session,
32483248
tableViewAndMaterializedView,

0 commit comments

Comments
 (0)