Agree w/ Brett.. so may be instead of "object_type", we can use
"object_specification" (similar to principal specification)?

GRANT
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    [ON object_specification]
    TO principal_specification [, principal_specification] ...
    [WITH GRANT OPTION]

REVOKE [GRANT OPTION FOR]
    priv_type [(column_list)]
      [, priv_type [(column_list)]] ...
    [ON object_specification]
    FROM principal_specification [, principal_specification] ...

REVOKE ALL PRIVILEGES, GRANT OPTION
    FROM user [, user] ...

priv_type:
    ALL | ALTER | UPDATE | CREATE | DROP
  | INDEX | LOCK | SELECT | SHOW_DATABASE

object_specification:
    TABLE tbl_name |
    DATABASE db_name

principal_specification:
    USER user
  | GROUP group
  | ROLE role


On Tue, Oct 14, 2014 at 11:06 AM, Lefty Leverenz <leftylever...@gmail.com>
wrote:

> I'll correct it as soon as we reach consensus.  (Perhaps Thejas will chime
> in.)
>
> If you want to do it yourself, you can get wiki edit privilege
> <https://cwiki.apache.org/confluence/display/Hive/AboutThisWiki#AboutThisWiki-Howtogetpermissiontoedit>
>  quite
> easily.
>
> -- Lefty
>
> On Tue, Oct 14, 2014 at 7:57 AM, Brett Randall <javabr...@gmail.com>
> wrote:
>
>> I agree that the use of priv_level is confusing when it is actually
>> referring to object_name (of type TABLE or DATABASE).  I don't mind
>> the rolling-up of tbl_name or db_name into object_type, although it
>> then makes object_type: somewhat misleading.  "[ON object_type
>> object_name]" reads well for me.
>>
>> Anything to correct the incorrect syntax on the wiki page (it is not
>> open for edits).
>>
>> Thanks
>> Brett
>>
>> On 13 October 2014 18:18, Suhas Gogate <vgog...@pivotal.io> wrote:
>> > Hmm.. looking at the syntax priv_level does not seem to be a keyword but
>> > rather actual name of a table or database.. so why it appears like a
>> keyword
>> > Also priv_level is confusing and rather clear syntax would should look
>> like
>> > below...
>> >
>> > Again answer to original question from Brett, yes GRANT syntax should be
>> > similar to REVOKE but rather priv_level should be removed from REVOKE as
>> > well.. :)
>> >
>> > GRANT
>> >     priv_type [(column_list)]
>> >       [, priv_type [(column_list)]] ...
>> >     [ON object_type]
>> >     TO principal_specification [, principal_specification] ...
>> >     [WITH GRANT OPTION]
>> >
>> > REVOKE [GRANT OPTION FOR]
>> >     priv_type [(column_list)]
>> >       [, priv_type [(column_list)]] ...
>> >     [ON object_type]
>> >     FROM principal_specification [, principal_specification] ...
>> >
>> > REVOKE ALL PRIVILEGES, GRANT OPTION
>> >     FROM user [, user] ...
>> >
>> > priv_type:
>> >     ALL | ALTER | UPDATE | CREATE | DROP
>> >   | INDEX | LOCK | SELECT | SHOW_DATABASE
>> >
>> > object_type:
>> >     TABLE tbl_name
>> >   | DATABASE db_name
>> >
>> > principal_specification:
>> >     USER user
>> >   | GROUP group
>> >   | ROLE role
>> >
>> >
>> > On Sat, Oct 11, 2014 at 7:55 PM, Lefty Leverenz <
>> leftylever...@gmail.com>
>> > wrote:
>> >>
>> >> Good catch, Brett.  Can we have confirmation from an expert?
>> >>
>> >> Also, is object_type optional?
>> >>
>> >> It isn't clear to me why priv_level isn't called object_name.
>> >>
>> >> -- Lefty
>> >>
>> >> On Thu, Oct 9, 2014 at 8:23 AM, Brett Randall <javabr...@gmail.com>
>> wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> On
>> >>>
>> https://cwiki.apache.org/confluence/display/Hive/Hive+Default+Authorization+-+Legacy+Mode#HiveDefaultAuthorization-LegacyMode-Grant/RevokePrivileges
>> >>> , GRANT shows as:
>> >>>
>> >>> GRANT
>> >>>     priv_type [(column_list)]
>> >>>       [, priv_type [(column_list)]] ...
>> >>>     [ON object_type]
>> >>>     TO principal_specification [, principal_specification] ...
>> >>>     [WITH GRANT OPTION]
>> >>>
>> >>> Should that not be [ON object_type priv_level], same as REVOKE, where:
>> >>>
>> >>> object_type:
>> >>>     TABLE
>> >>>   | DATABASE
>> >>>
>> >>> priv_level:
>> >>>     db_name
>> >>>   | tbl_name
>> >>>
>> >>> Thanks
>> >>> Brett
>> >>
>> >>
>> >
>>
>
>

Reply via email to