[
https://issues.apache.org/jira/browse/SENTRY-2154?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16408622#comment-16408622
]
Na Li commented on SENTRY-2154:
-------------------------------
[~kkalyan] We already have MSentryUser, MSentryGroup, MSentryPrivilege,
MSentryGMPrivilege. To support granting privilege to user in DB schema (scope
of this jira), we just need to add mapping table between user and privilege,
which is the same approach as before (like granting privilege to role is mapped
by SENTRY_ROLE_DB_PRIVILEGE_MAP table). If we need to grant privilege to group
directly, we can add a mapping table between group and privilege.
DataNucleus does lazy loading and we can control the depth of recursive
loading. So circular reference is not an issue.
http://www.datanucleus.org/products/accessplatform_4_1/jdo/fetchgroup.html
1) Drawbacks of using generic entity table
If we use the generic entity table, will we migrate the tables to that entity
table: SENTRY_USER, SENTRY_GROUP, SENTRY_ROLE? That will cause a lot of upgrade
issues.
Also, having a generic entity table will cause performance issue because each
query has to be changed to add filter for the entity type. It is also easier to
make mistake if the wrong entries are pulled. In addition, code maintenance is
much harder.
If we use generic entity table, we still need to add mapping table.
Having a generic approach has more flexibility, but at the cost of complexity.
We need to weight the benefits and drawbacks.
2) Benefits of using generic entity table
Flexibility to support new entity types including user. When a new type is
introduced, no need to change DB schema.
3) My preference
I don't see much benefits by using a generic entity table, but many drawbacks.
So I prefer to just adding a mapping table between user and privilege to
support granting privilege to user directly.
[~akolb] [~btowles] [~spena] Can you post your opinions? We need to decide the
approach as soon as possible. I am already coding in the approach I prefer.
Delayed decision will definitely delay the progress of this task. Thanks!
> Update schema to grant privileges to user
> -----------------------------------------
>
> Key: SENTRY-2154
> URL: https://issues.apache.org/jira/browse/SENTRY-2154
> Project: Sentry
> Issue Type: Sub-task
> Components: Sentry
> Affects Versions: 2.1.0
> Reporter: Na Li
> Assignee: Na Li
> Priority: Major
> Fix For: 2.1.0
>
>
> Need to add new DB table to support grant user to privileges
> Also, a flag should be added in privilege table to indicate the privilege is
> created by user, or created by sentry implicitly. User can view the implicit
> privileges, but cannot change it directly
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)