[ 
https://issues.apache.org/jira/browse/CASSANDRA-20000?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17892523#comment-17892523
 ] 

Jeremiah Jordan commented on CASSANDRA-20000:
---------------------------------------------

{quote}Interesting, you think we can provide a patch that does less, leaving 
the system table to be entirely done downstream …?
{quote}
I think this patch is entirely not needed at the moment.  If there were to be a 
feature added to the CassandraRoleManager that used the options, then we would 
want something similar to this patch included with it.

> Add support for Role's OPTIONS
> ------------------------------
>
>                 Key: CASSANDRA-20000
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-20000
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: CQL/Semantics, Feature/Authorization
>            Reporter: Tiago L. Alves
>            Assignee: Tiago L. Alves
>            Priority: Normal
>             Fix For: 5.0.x
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The Cassandra Query Language 
> [https://cassandra.apache.org/doc/stable/cassandra/cql/security.html] / 
> [https://cassandra.apache.org/doc/5.0/cassandra/developing/cql/security.html] 
> specify that a role can have custom options defined as literal map.
> The documentation shows a valid example of these custom options:
> {{CREATE ROLE carlos WITH OPTIONS = \{ 'custom_option1' : 'option1_value', 
> 'custom_option2' : 99 };  }}
> However, the storage/retrieval of such custom options has not been 
> implemented in Cassandra. See for instance, 
> [https://github.com/apache/cassandra/blob/18960d6e3443bf002ef4f46c7f0e1f2ee99734e1/src/java/org/apache/cassandra/auth/CassandraRoleManager.java#L393-L396]
> Storing custom options per role could have multiple usages, for instance, it 
> could allow admins to specify fine-grain permissions that can be interpreted 
> by custom authenticator/authorizer.
> The goal of this task is to add support for Role custom options, by storing 
> them in an additional table called {{role_options}} in the {{system_auth}} 
> keyspace.
> Creating a role with options should write the information in both the 
> {{roles}} and the {{role_options}} tables. Creating a role with no options or 
> having an empty map of options should not write any information in the 
> {{role_options}} table.
> Altering a role should behave as follows when executing an {{ALTER ROLE}} 
> statement:
>  * without specifying {{{}OPTIONS{}}}: no changes should be done in the 
> {{role_options}} table. 
>  * specifying {{OPTIONS}} altering a role with no previous custom options: we 
> should insert the custom options in the {{role_options}} table.
>  * specifying {{OPTIONS}} altering a role with previous custom options: we 
> should replace the existent custom options
>  * in the {{role_options}} table.
> Dropping a role should drop information in both {{roles}} and 
> {{{}role_options{}}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to