[
https://issues.apache.org/jira/browse/CASSANDRA-7653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14269884#comment-14269884
]
Aleksey Yeschenko commented on CASSANDRA-7653:
----------------------------------------------
Okay. Mostly LGTM. Final notes and nits:
AuthResponse
- in execute(), `authenticator` variable should be renamed to `negotiator`
ServerConnection
- saslAutneticator field and getAuthenticator() method should be renamed for
consistency (to saslNegotiator/getSaslNegotiator())
ClientState
- preventSystemKSSchemaModification() should move allowAlter/allowDrop to the
class level statics ALTERABLE_KEYSPACES/DROPPABLE_TABLES vs. allocating them
every time
ListPermissionsStatement
- resultset structure is part of the public API. Can’t just rename ‘username’
to ‘role’. Should keep (but deprecate) username, and add ‘role’, as another
column, with duplicate value
Cql.g
- now would be a good time to correct the initial design mistake and make role
names/user names strings, instead of identifiers
PermissionsCacheMBean
- nobody’s using this functionality (the previous mbean wasn’t registered), so
we can drop it until someone actually requests it
IAuthorizer
- grant()/revoke() should rename to/from arguments to grantee/revokee in
consistency with IRoleManager naming
- grant()/revoke() should have an AuthenticatedUser performer arg, like
IAuthorizer does (or both should drop it)
CassandraAuthorizer
- revokeAll() should use a logged batch for updating permissions+index tables
DataResource:
- should rename isColumnFamilyLevel() to isTableLevel(), while we are breaking
the API anyway (and getColumnFamily() to getTable()). Not something touched by
the patch, but can sneak it in here.
> Add role based access control to Cassandra
> ------------------------------------------
>
> Key: CASSANDRA-7653
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7653
> Project: Cassandra
> Issue Type: New Feature
> Components: Core
> Reporter: Mike Adamson
> Assignee: Sam Tunnicliffe
> Fix For: 3.0
>
> Attachments: 7653.patch, CQLSmokeTest.java, cql_smoke_test.py
>
>
> The current authentication model supports granting permissions to individual
> users. While this is OK for small or medium organizations wanting to
> implement authorization, it does not work well in large organizations because
> of the overhead of having to maintain the permissions for each user.
> Introducing roles into the authentication model would allow sets of
> permissions to be controlled in one place as a role and then the role granted
> to users. Roles should also be able to be granted to other roles to allow
> hierarchical sets of permissions to be built up.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)