[
https://issues.apache.org/jira/browse/SENTRY-2300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16539032#comment-16539032
]
Na Li commented on SENTRY-2300:
-------------------------------
One case Sentry could run into problem when updating permission for DDL update
through notification events:
* Sentry gets full snapshot from HMS.
* During that time, customer issues table rename command. The notificaition ID
is 2.
* When full snapshot is done, the current notification ID is 10. So Sentry does
not fetch the table rename event nor process it.
* Then Sentry has permission associated with old table, not the new table.
* Following query on the renamed table will fail authorization in Sentry
There could be multiple reasons why Sentry gets full snapshot from HMS. One
reason is
* Customer decides to disable HDFS sync, disable updating permission based on
DDL update. As a result, sentry does not start HMS follower, and does not fetch
notification events
* Then customer enables HDFS sync, and enables updating permission based on DDL
update.
> Move Permission Update due to DDL to HMS Post Event Listener
> ------------------------------------------------------------
>
> Key: SENTRY-2300
> URL: https://issues.apache.org/jira/browse/SENTRY-2300
> Project: Sentry
> Issue Type: Bug
> Components: Sentry
> Affects Versions: 2.1.0
> Reporter: Na Li
> Assignee: Na Li
> Priority: Major
>
> There was a code in MetastorePlugin that modified Sentry privileges on table
> Create/Drop and database Create/Drop. As part of Sentry HA work we moved all
> this logic from Sentry plugin to be driven by notifications which required
> the extra synchronization between HMS and Sentry.
> It should be possible to do permission changes in the post event listener
> itself to avoid blocking for Sentry. This requires some experiments though
> because it may cause strange artifacts since at the time these DDL operations
> are done Sentry may not be aware of the current state - for example you may
> try to change permissions of a table that Sentry doesn’t know about, which
> seems to be OK.
> This update will have the following benefits:
> {code}
> * HMS waits on Sentry polling HMS update takes 0.5 to 1 second. This update
> will remove this delay
> * Sentry knows every DDL update, and therefore can update permission
> correctly. In current approach using notification processing, Sentry could
> miss updates if full snapshot is fetched from HMS, and permission is not
> updated correctly. In the case of table rename, when mission DDL update event
> because of full snapshot, sentry will not move the permissions associated
> with old table to the new table. And the authorization on queries on the
> renamed table will fail.
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)