Replies: 4 comments 4 replies
-
Sounds interesting, but will security settings be modifiable as ArcadeDB documents? Or it's going to be a static configuration? |
Beta Was this translation helpful? Give feedback.
-
Writing users, permissions, and metadata in every single record (record-level security) will not be supported in ArcadeDB. The reason is easy and pretty strong: it is not efficient, slow, and error-prone. Overriding the security credential policy is already possible with: server.getSecurity().setCredentialsValidator( new DefaultCredentialsValidator(){
@Override
public void validateCredentials(final String userName, final String userPassword) throws ServerSecurityException {
if( userPassword.equals("12345678")
throw new ServerSecurityException("Guess who was not attending security lesson!");
}
}); |
Beta Was this translation helpful? Give feedback.
-
@PhantomYdn do you have a real use case of a user that needed that level of security and completely delegated it to the database without any application code? I know it's a nice feature to have, but AFAIK, all OrientDB users that use it were trying to manage multi-tenancy. And record level security is a very inefficient way to do that. That's why I'm more focused on providing an efficient multi-tenancy solution. And after all, as soon as the callback is documented, anybody can build their own plugin, so nothing stops you or other developers to write such a plugin. |
Beta Was this translation helpful? Give feedback.
-
Issue #72 has been created from this discussion, so any further updates and discussions should follow up on the issue instead of this thread. |
Beta Was this translation helpful? Give feedback.
-
SUMMARY
Status: Released in v21.10.1.
Progress: Design 100% -> Development & Unit Tests 100% -> Integration Tests 100%
Currently Assigned: @lvca
ETA: 5 days
From: Ideas [#44]
To: Issues [#72]
ArcadeDB supports super-simple security for users in a server. Example of
security.json
file:Below you can find the proposal to improve the Server Side security.
Support for access mode
Apart from the list of databases, it would be nice to extend the
databases
property from an array into a map with theaccess
mode with the following values:readOnly
andreadWrite
. Example:Profile access to types for CRUD operations
We could extend the database map (see above) by adding the types map for profiling at the type level granularity:
The
access
property (case insensitive) can express the permission by using:The property
limit
, if present, tells to cut off resultsets larger than the value in this field. This is useful to avoid some users can stress the database by returning huge resultsets.The property
readTimeout
, if present, limits the query execution to the timeout expresses in milliseconds.Support for group
Instead of creating the profiling for each user, it would be nice having the option to configure groups and assign users to one or more groups. Example
Add version for further compatibility
Adding a version allows the server to support the evolution of the security.json file. Example:
Beta Was this translation helpful? Give feedback.
All reactions