[GIS] Troubleshoot editing features in feature dataset with ArcMap / ArcSDE Oracle

arcgis-desktopeditingenterprise-geodatabaseoracle-dbms

I am having trouble editing a feature class that is in a feature dataset.

We have added just the single feature class as a layer in ArcMap and are using the "Start Editing" function on the Editing toolbar to edit.

ArcMap reports that "All data sources in the map are registered as versioned or you lack privileges to modify data sources which are not registered as versioned.".

The database and feature dataset are versioned. We confirmed this with ArcCatalog. We are also unable to make non-versioned edits.

We have selected to edit a version from the Editing toolbar options.

sdelayer reports that the connecting user (also the schema owner) has SELECT, INSERT, UPDATE, DELETE permissions on the layer.

Oracle's dba_tab_privs reports that we have SELECT, INSERT, UPDATE, DELETE permissions on the business table.

If I connect to the geodatabase with the SDE user, I cannot grant new privileges to the schema owner to the feature dataset. ArcCatalog reports an automation error.

If I connect to the geodatabase as the schema owner, I can grant new privileges (to "myself") to the feature dataset. However, I don't know if they have made any effect.

This is ArcGIS 9.3.1.

What is left? Are there any sure-fire solutions?

UPDATE: I copied the feature class to a new one (located outside the featuredataset), which I can edit. When I put the feature class inside the feature dataset, I can not. What has the final say on feature dataset permissions?

I need to iron out what's causing ArcMap to think "you lack privileges to modify data sources".

The feature class in question has many (hundreds) of relationship classes. I suspect that these are the source of my troubles. I will ask a separate question about those…

Best Answer

I believe that the issue was triggered by loading an XML geodatabase export into SDE. The original export had geodata that was owned by a user that did not exist in the database when the data was loaded. Consequently, the data became owned by the user specified in the connection (instead of the user referenced in the geodatabase) Thus:

Original SDE database had users:

  • SDE
  • USER1
  • USER2

New SDE database has users:

  • SDE
  • USER1

Our connection to the new SDE geodatabase was made with "USER1".

So when we loaded the XML dump, USER2's feature classes became property of USER1. Except the geodatabase said they belonged to USER2. This only is an issue if the features are in a feature dataset.

Related Question