#9521 Restrict table and attribute creation if no permission

上级 12311f63
......@@ -527,6 +527,10 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
}
private void createTargetTable(DBCSession session, DatabaseMappingContainer containerMapping) throws DBException {
DBPDataSourceContainer dataSourceContainer = session.getDataSource().getContainer();
if (!dataSourceContainer.hasModifyPermission(DBPDataSourcePermission.PERMISSION_EDIT_METADATA)) {
throw new DBCException("New table creation in database [" + dataSourceContainer.getName() + "] restricted by connection configuration");
}
DBSObjectContainer schema = settings.getContainer();
if (schema == null) {
throw new DBException("No target container selected");
......@@ -544,6 +548,11 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
}
private void createTargetAttribute(DBCSession session, DatabaseMappingAttribute attribute) throws DBCException {
DBPDataSourceContainer dataSourceContainer = session.getDataSource().getContainer();
if (!dataSourceContainer.hasModifyPermission(DBPDataSourcePermission.PERMISSION_EDIT_METADATA)) {
throw new DBCException("New attribute creation in database [" + dataSourceContainer.getName() + "] restricted by connection configuration");
}
session.getProgressMonitor().subTask("Create column " + DBUtils.getObjectFullName(attribute.getParent().getTarget(), DBPEvaluationContext.DDL) + "." + attribute.getTargetName());
try {
DatabaseTransferUtils.executeDDL(session, new DBEPersistAction[] { DatabaseTransferUtils.generateTargetAttributeDDL(session.getDataSource(), attribute) } );
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册