Select to view content in your preferred language

Managing relationship classes

693
2
Jump to solution
11-22-2023 05:06 AM
JamesTurner2
Regular Contributor

I have a feature class and a table in an enterprise GDB that I would like to relate via a relationship class, however, I don't want to share the table with everyone who has access to the feature class. I work in a large department in state government, everyone has access to view and select in the FC. I do not want anyone outside of my program to be able to view the related table. Is there a way to manage this?

Currently, if I do not share the table with everyone, then they get an error/warning when trying to add the FC from the EGDB.

0 Kudos
1 Solution

Accepted Solutions
MarceloMarques
Esri Regular Contributor

Unfortunately, you cannot filter out what is displayed when you connect to the eGDB, there is an existing enhancement request from customers that the relationship classes of a data owner shall not be displayed if you connect with another data owner or an editor/viewer user that does not have privileges on the tables of that data owner user.

If the relationship is M:N then there is a table created in the eGDB to store the M:N records. But if the relationship is 1:1 or 1:M then there is no extra table created.

You can manage access to the M:N table using a database role, you grant the permissions to the role, e.g. insert, update, delete on the tables of the data owner user, then you grant the role to the editor user, for viewer users you create a role with select only and grant that role to the viewer users.

You can read more about this in my community.esri.com database best practices blog, read the Production Mapping database guide books, the best practices can be applied to any industry. 

I hope this helps.

Mapping and Charting Solutions (MCS) Enterprise Databases Best Practices

| Marcelo Marques | Esri Principal Product Engineer | Cloud & Database Administrator | OCP - Oracle Database Certified Professional | "In 1992, I embarked on my journey with Esri Technology, and since 1997, I have been working with ArcSDE Geodatabases, right from its initial release. Over the past 32 years, my passion for GIS has only grown stronger." | “ I do not fear computers. I fear the lack of them." Isaac Isimov |

View solution in original post

0 Kudos
2 Replies
MarceloMarques
Esri Regular Contributor

Unfortunately, you cannot filter out what is displayed when you connect to the eGDB, there is an existing enhancement request from customers that the relationship classes of a data owner shall not be displayed if you connect with another data owner or an editor/viewer user that does not have privileges on the tables of that data owner user.

If the relationship is M:N then there is a table created in the eGDB to store the M:N records. But if the relationship is 1:1 or 1:M then there is no extra table created.

You can manage access to the M:N table using a database role, you grant the permissions to the role, e.g. insert, update, delete on the tables of the data owner user, then you grant the role to the editor user, for viewer users you create a role with select only and grant that role to the viewer users.

You can read more about this in my community.esri.com database best practices blog, read the Production Mapping database guide books, the best practices can be applied to any industry. 

I hope this helps.

Mapping and Charting Solutions (MCS) Enterprise Databases Best Practices

| Marcelo Marques | Esri Principal Product Engineer | Cloud & Database Administrator | OCP - Oracle Database Certified Professional | "In 1992, I embarked on my journey with Esri Technology, and since 1997, I have been working with ArcSDE Geodatabases, right from its initial release. Over the past 32 years, my passion for GIS has only grown stronger." | “ I do not fear computers. I fear the lack of them." Isaac Isimov |
0 Kudos
JamesTurner2
Regular Contributor

Thanks, Marcelo. Unfortunately, this is a 1:M relationship, so it sounds like I don't have any options.

I will check out the resources you've referenced. If there is an idea that I can upvote for the enhancement, please link it! It sounds like just what I'm looking for. I don't want users without viewer privileges on the table to see the relationship class.

0 Kudos