DataCaster Security

DataCaster provides a comprehensive set of security capabilities to help secure distributed servers. As a distributed database, DataCaster needs to provide secure local and network access to servers, and prevent unauthorized access to server data.

DataCaster security includes the following ways of controlling access to prevent unauthenticated or unathorized access to the internal classes and data within DataCaster.

  • Embedded database access: Controlling Access by Unauthenticated Classes
  • User Authentication: Authenticating users in embedded or network access modes
  • Authorization: Control of data access for authenticated users.
  • Network Access: Authentication of access over the network from remote DataCaster instances.
  • Usage Control: Limiting access to the DataCaster server.

Standard SQL authorization is used to control access to data for authenticated users.

Controlling Access by Unauthenticated Classes

Since DataCaster in written in Java, it is possible for Java classes running in the same VM to access methods within the internal database code, and potentially access unauthorized information and methods.

Our security model uses an approach where access is denied unless an instance of the authentication token is supplied, which needs to be created first before any authorized access is granted.

The key requirement is then to prevent access to the authentication token from application classes. This is prevented by limiting access to package access to create the authentication token.

The final step is to prevent application classes from gaining package access by preventing application classes in the same package. This is accomplished by jar sealing as discussed in this Sun article.

DataCaster Authentication

DataCaster includes built-in authentication for all access to its databases. It also supports using JAAS for authentication if required.

The DataCaster authentication model is clearly separate from authorization, though thereis some overlap in the roles aspect. This allows authorization to be implemented within the database following the SQL standard (performed with GRANT/REVOKE statements) and using the system catalog tables, while supporting different kinds of authentication.

DataCaster supports built-in file based and database based authentication, which includes the assignment of roles to users.

DataCaster Authorization

DataCaster authorization relies on standard SQL authorization for all data in the database. The SQL authorization in DataCaster uses GRANT and REVOKE statements to allow access to specific tables and views, as well as specific columns in tables and views.

DataCaster does not currently provide row-level authorization control for tables and views. This can be achieved using views for some cases.

Network Authentication

With the DataCaster distributed database, you can access remote tables and views in SQL statements, scripts, applications or User API programs. Sometimes anonymous access will be permitted and used for this purpose. In other cases, you will setup authentication beforehand so it will be used when accessing data from remote servers.

DataCaster allows users on this server to access tables and views on remote DataCaster? servers with eitehr server-level or user-level access. With user-level access, the specified local user on this server can access tables and views on the remote server. With server-level access, any authenticated user on this server can access the specified remote server.

Usage Control

For anonymous or authenticated remote access, particularly across administrative domains, it is essential to control what a database user is allowed to do. Since SQL queries can easily be written to hog resources on the server among other things, there is a need to limit the resources used by any given remote user.