
of virtual organizations in resource sharing in (Fos-
ter et al., 2001), and mention database access in
one of their Grid scenarios. The OgsaDai consor-
tium (OgsaDai, 2002) has defined an architecture for
Grid database accesses and released an implementa-
tion of it. However, as far as we know, the European
DataGrid project has been the first to design and im-
plement a VO-based access management and imple-
mentation, that is described in this paper.
2 SPITFIRE AND EDG JAVA
SECURITY
Spitfire (Project Spitfire, 2001) is a project of Work
Package 2 within the European Data Grid Project. It
offers a Java servlet that accepts database requests us-
ing HTTP/HTTPS protocols and displays the results
in XML. The EDG’s authentication and authorization
software, edg-java-security, analyzes the user’s rights
to execute operations based on the user certificate pre-
sented to the system.
In edg-java-security, the authentication is based on
a hand-shaking protocol in Secure Sockets Layer and
Transport Layer Security. The server and client send
each other their X509-format certificates and mes-
sages encrypted by their private keys that are related
to the public keys included in the X509 certificates.
This way the server and the client authenticate them-
selves as owners of their respective certificates (Secu-
rity Coordination Group, 2003).
When a proxy certificate is used as a credential, the
user sends their certificate and the proxy certificate to
the server (Foster and Kesselman, 1997). The proxy
is signed by the user and the user’s certificate is used
to verify the proxy’s signature. This way the chain
of trust is delegated to the proxy. The proxy certifi-
cate can be used by the user for access to various ser-
vices, as it carries the user’s signature as identifica-
tion. However, the only apparent feature of the proxy
is its issuer, i.e. the user’s certificate subject like
“O=Grid, O=NorduGrid, OU=hip.fi, CN=Joe User”.
Each Grid service needs to decide independently the
access rights of each certificate owner. This can be
improved by introducing extensions to the certificate;
in our case a VO extension that states the user’s VOs
and their role in each of them.
3 AUTHORISATION AND
SECURITY IN RELATIONAL
DATABASES
Authorisation and security are essential in client-
server database systems. In this section we discuss
briefly how they are implemented in SQL databases.
We follow the book by Elmastri and Navathe (Elmasri
and Navathe, 1994).
In general, two methods are used in database access
control: discretionary and mandatory access control.
In discretionary access control different privileges for
database objects (e.g. tables = relations, columns =
attributes) are granted to the users while in mandatory
access control the data and the users are classified in
different security classes. A user, in order to view
the data, must have the same or higher security class
than the data in question. In the following discussion,
we will refer to discretionary access control meth-
ods since almost all relational database systems use
it while the mandatory control method is used only in
some special systems. Moreover, the SQL standards
support only discretionary access control.
In SQL, privileges can be assigned to the account
(user) level or the database object (relation) level. At
the account level the privileges define what operations
a particular user can perform in general, and in the
database object level the privileges specify the oper-
ations a user can perform on the object (e.g. select,
modify). In order to perform an operation, the user
must have both account level and the object level priv-
ileges.
The basic privileges for relations (tables) are select,
modify, and reference. The select privilege allows the
user to retrieve data from the relation and is defined
only on the relation level; views can be used to allow
only some attributes to be retrieved. The modify priv-
ilege allows the user to modify the data and can be
defined in a more detailed manner as update, delete,
and insert privileges. The modify privilege is also de-
fined on the relation level, and the update and insert
privileges can also be given on the attribute (column)
level. The reference privilege allows the user to define
references to a relation, e.g foreign key constraints.
SQL has grant and revoke commands for defining
privileges. With the grant option, a privilege can be
given to the user so that he can grant it further. SQL
also supports roles. The role is “a set of privileges”
that can be assigned to the user. This makes admin-
istration easier since several privileges do not need to
grant separately to the user.
4 VOMS
Essentially the Virtual Oraganization Membership
System (VOMS) presents an extension to a user’s
X509 proxy certificate, that includes their VO mem-
bership information. When a VOMS-proxy is gen-
erated with the voms-proxy-init command is
used, the VOMS server is contacted to request a
VOMS-extended proxy certificate that follows the
VIRTUAL ORGANIZATIONS AND DATABASE ACCESS - A CASE STUDY
515