diff --git a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/DataSetAuthorizationExecutor.java b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/DataSetAuthorizationExecutor.java
index 05c8b8416e915fdfab56ff3c5d8df9de746b4268..9342dc4ff9f0508354883fd49e530bdc618119bb 100644
--- a/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/DataSetAuthorizationExecutor.java
+++ b/openbis/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/dataset/DataSetAuthorizationExecutor.java
@@ -35,6 +35,7 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DatabaseModificationKin
 import ch.systemsx.cisd.openbis.generic.shared.basic.dto.RoleWithHierarchy;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ExternalDataPE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.LinkDataPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 
 /**
@@ -61,6 +62,11 @@ public class DataSetAuthorizationExecutor implements IDataSetAuthorizationExecut
     @DatabaseCreateOrDeleteModification(value = ObjectKind.DATA_SET)
     public void canCreate(IOperationContext context, @AuthorizationGuard(guardClass = DataPEPredicate.class) DataPE dataSet)
     {
+        if (dataSet instanceof ExternalDataPE == false)
+        {
+            return;
+        }
+        
         boolean isCreatorPersonAllowed = false;
         boolean isPersonAllowed = false;
 
diff --git a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java
index 034d376539db00c50481744c5429c44128aa6279..0bc7633ffa53ab534a4188e4fc0adcff95c8d00d 100644
--- a/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java
+++ b/openbis/sourceTest/java/ch/ethz/sis/openbis/systemtest/asapi/v3/CreateDataSetTest.java
@@ -78,6 +78,46 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.dto.NewETPTAssignment;
  */
 public class CreateDataSetTest extends AbstractDataSetTest
 {
+    @Test
+    public void testCreateLinkDataSetWithSpaceUser()
+    {
+        String sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD);
+        String code = UUID.randomUUID().toString();
+        LinkedDataCreation linkedData = new LinkedDataCreation();
+        linkedData.setExternalDmsId(new ExternalDmsPermId("DMS_1"));
+        linkedData.setExternalCode("test-"+System.currentTimeMillis());
+        DataSetCreation creation = new DataSetCreation();
+        creation.setCode(code);
+        creation.setTypeId(new EntityTypePermId("LINK_TYPE"));
+        creation.setExperimentId(new ExperimentIdentifier("/TEST-SPACE/NOE/EXP-TEST-2"));
+        creation.setDataStoreId(new DataStorePermId("STANDARD"));
+        creation.setLinkedData(linkedData);
+        creation.setCreationId(new CreationId(code));
+
+        List<DataSetPermId> dataSets = v3api.createDataSets(sessionToken, Collections.singletonList(creation));
+
+        assertEquals(dataSets.get(0).getPermId(), code.toUpperCase());
+        assertEquals(dataSets.size(), 1);
+    }
+    
+    @Test
+    public void testCreateContainerDataSetWithSpaceUser()
+    {
+        String sessionToken = v3api.login(TEST_SPACE_USER, PASSWORD);
+        String code = UUID.randomUUID().toString();
+        DataSetCreation creation = new DataSetCreation();
+        creation.setCode(code);
+        creation.setTypeId(new EntityTypePermId("CONTAINER_TYPE"));
+        creation.setExperimentId(new ExperimentIdentifier("/TEST-SPACE/NOE/EXP-TEST-2"));
+        creation.setDataStoreId(new DataStorePermId("STANDARD"));
+        creation.setCreationId(new CreationId(code));
+        
+        List<DataSetPermId> dataSets = v3api.createDataSets(sessionToken, Collections.singletonList(creation));
+        
+        assertEquals(dataSets.get(0).getPermId(), code.toUpperCase());
+        assertEquals(dataSets.size(), 1);
+    }
+    
     @Test
     public void testCreateDSWithAdminUserInBehalfOfASpaceObserver()
     {