Search indexes
Syntax for authorizing access to search indexes.
DataStax Enterprise search indexes permissions can only be managed on a Search enabled node. Apply search index permissions in addition to keyspace and table permissions. Access is controlled using modelled hierarchy. Granting and revoking a privilege on a top level object automatically allows the same permission on all ancestors.
Search indexes have the following hierarchy.


Synopsis
Use the following syntax to assign permissions to search resources:
- ALL SEARCH INDICES
GRANT permission[, permission ...] ON ALL SEARCH INDICES TO role_name;
where permissions are ALL PERMISSIONS, AUTHORIZE [FOR permission_list], SEARCH.ALTER, SEARCH.COMMIT, SEARCH.CREATE, SEARCH.DROP, SEARCH.REBUILD, and SEARCH.RELOAD - SEARCH KEYSPACE
keyspace_name
GRANT permission[, permission ...] ON SEARCH KEYSPACE keyspace_name TO role_name;
where permissions are ALL PERMISSIONS, AUTHORIZE, SEARCH.ALTER, SEARCH.COMMIT, SEARCH.CREATE, SEARCH.DROP, SEARCH.REBUILD, and SEARCH.RELOAD - SEARCH INDEX
[keyspace_name.]table_name
GRANT permission[, permission ...] ON SEARCH INDEX [keyspace_name.]table_name TO role_name;
where permissions are ALL PERMISSIONS, AUTHORIZE, SEARCH.ALTER, SEARCH.COMMIT, SEARCH.CREATE, SEARCH.DROP, SEARCH.REBUILD, and SEARCH.RELOAD
Permission matrix
Privilege | Resource | Permissions |
---|---|---|
ALL PERMISSIONS | ALL SEARCH INDICES | All search index privileges for all search indexes systemwide. |
ALL PERMISSIONS | SEARCH KEYSPACE keyspace_name | All search index privileges search indexes on any table in keyspace. |
ALL PERMISSIONS | SEARCH INDEX table_name | All search index privileges for on the table. |
SEARCH.ALTER | ALL SEARCH INDICES | and on all tables in all
keyspaces. Note: Changes to the configuration and schema must be
loaded. |
SEARCH.ALTER | SEARCH KEYSPACE keyspace_name | and on all search indexes on any table in the
keyspace. Note: Changes to the configuration and schema must be
loaded. |
SEARCH.ALTER | SEARCH INDEX table_name | and on specified table. Use a keyspace
qualified table name when keyspace is not selected. Note: Changes to the
configuration and schema must be loaded. |
SEARCH.COMMIT | ALL SEARCH INDICES | on all tables in all keyspaces. |
SEARCH.COMMIT | SEARCH KEYSPACE keyspace_name | on all search indexes on any table in the keyspace. |
SEARCH.COMMIT | SEARCH INDEX table_name | on specified table. Use a keyspace qualified table name when keyspace is not selected. |
SEARCH.CREATE | ALL SEARCH INDICES | on all tables all keyspaces. |
SEARCH.CREATE | SEARCH KEYSPACE keyspace_name | on all search indexes on any table in the keyspace. |
SEARCH.CREATE | SEARCH INDEX table_name | on specified table. Use a keyspace qualified table name when keyspace is not selected. |
SEARCH.DROP | ALL SEARCH INDICES | on all tables. |
SEARCH.DROP | SEARCH KEYSPACE keyspace_name | on all search indexes on any table in the keyspace. |
SEARCH.DROP | SEARCH INDEX table_name | on specified table. |
SEARCH.REBUILD | ALL SEARCH INDICES | on any table in all keyspaces. |
SEARCH.REBUILD | SEARCH KEYSPACE keyspace_name | on all search indexes on any table in the keyspace. |
SEARCH.REBUILD | SEARCH INDEX table_name | on specified table. Use a keyspace qualified table name when keyspace is not selected. |
SEARCH.RELOAD | ALL SEARCH INDICES | on all tables in all keyspaces. |
SEARCH.RELOAD | SEARCH KEYSPACE keyspace_name | on all search indexes on any table in the keyspace. |
SEARCH.RELOAD | SEARCH INDEX table_name | on specified table. Use a keyspace qualified table name when keyspace is not selected. |