I have a feature class in an Oracle 12c geodatabase.

The feature class has a type column. The column has a coded domain.

I would like to limit user's ability to edit the features based on the type of feature. I would ideally do this based on their privilege/role in the database.


  • Where type = SIDEWALK, only users in the ROLE_EDITOR_GROUP_A can edit
  • Where type = TRAIL, only users in the ROLE_EDITOR_GROUP_B can edit
  • Where type = CYCLING, only users in the ROLE_EDITOR_GROUP_C can edit

How can I achieve this level of control?


Due to the dependency that other enterprise systems have on the data, it is our preference to not split out the different types of features into separate feature classes. We feel that single feature class would have these benefits:

  • Simpler and more robust than unioning together separate feature classes to get all of the records into a single view
  • Easier to enforce unique IDs
  • Easier for editors to avoid duplicate or overlapping geometry
  • Simpler in general to integrate with other critical enterprise systems
  • 3
    The ArcGIS editing model doesn't support this level of granularity. Worse, from your standpoint, the type field doesn't even contain the text on which you want to key. Using a UNION ALL view for display from three feature classes would permit three different editing roles, but wouldn't address all your "Note" items, – Vince Jun 18 at 17:53
  • @Vince Thanks. Do you have any idea how this sort of thing is done in other software suites (can be non-GIS)? Is it normally done at the application level or the database level? – User1973 Jun 19 at 16:29
  • 1
    I don't use other software suites. Each of the projects I supported which ignored my recommendation to model different data in different tables failed at design review or prototype (one spectacularly so), so I never had to make it work in production. – Vince Jun 19 at 19:52
  • 1
    While the ESRI GDB model doesn't support this level of granularity you can achieve it through arcgis client customization. Using an editor extension or class extension would allow you to inject code into the ESRI client OnCreate, OnChange and OnDelete edit events. There are trad offs of course but it's an option. – Dowlers Aug 14 at 5:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.