Most organizations use some form of authentication requirement and procedure as form of first defense mechanism to thwart unauthorized users from illegally accessing data stored in the company database. Whereas authentication techniques such as using digital certificates (used in conjunction with passwords and biometrics) are used to verify the identity of the database user participating in database transactions, authorizations like non-repudiation cryptographic techniques are used to determine if a particular user is allowed to participate in certain database transactions especially in data warehousing. As such a list is issued of all users that is impossible to falsify (Garfinkel, 2002).

Typical database security is creating profiles, roles, users, and assigning them privileges and passwords, thus restricting them to the specified activities that they can perform in that very database. So if the users of the database try to-do what they’re not permitted to do, they’ll encounter “insufficient privileges to perform this activity, etc.” All the various security features that can be implemented within a database are discussed as follows: -

Password security, which is used for assigning access rights to authorized users can often be enforced during the login period to access the database via an operating system. Most database systems have improved their password functionality by making them more complex. That is, their password verification checks could state that, passwords must be a least eight characters long, and cannot be same as or the same length as or spelled backwards as the username, etc. In addition, Oracle for example hashes its passwords using the SHAI encryption to ensure a different hash value for each different password. Likewise, hacking prevention with a failed logon delays that takes effect when third failed password entry attempt is an evidence that security measures are taken seriously and reinforced.

Most relational database systems (RDMS) use privileges to regulate or limit all users from accessing database data. Assuming a user in an organization has been authenticated and allowed into the database system, the user has to be granted permission/privileges to perform only certain operations select, update, create table/view, and so forth. Database administrators often carry out such operations as granting or revoking privileges and creating user accounts (Coronel & Rob, 2004). For example, instead of granting privileges to users directly to perform operations in a database using PL\SQL language, tighter security can be maintained by granting privileges to execute stored procedures only (Morris-Murphy, 2003).

Database security and privacy enforces user security and data privacy within the dataset. Security rules and procedures are set to determine which users can access the database, and which data each user is allowed to access (access rights) (Holden, 2003). Hence, access rights, which are usually established through the use of database software, are used to restrict operations like create, update, drop, or delete database objects such as tables, views, synonyms, sequences and so forth. For example, the high level ‘Oracle Label Security’ is used to label rows with a security profile that matches with the user’s security profile. Thus enabling the database to restrict accessing rows in particular table or view (Powell & McCollough-Dieter, 2007).

Data security can be implemented in the database to guarantee data entity and referential integrity requirements. This includes logs that relate to data manipulation by specific users. Such logs ensure that each data update is directly associated with an authorized user (Coronel & Rob, 2004). Oracle also has the Virtual Private Database (VPD) database security feature that is used to restrict access to certain rows in a view or table (Freeman, 2008). Arup Nanda stated that, “VPD not only ensures that companies can build secure databases to adhere to privacy policies but also provides a more manageable approach to application development, because although the VPD-based policies restrict access to the database tables, they can be easily changed when necessary, without requiring modifications to application code.”

RDBMS also use auditing to provide accountability on database user activities. Audit trails in DBMS are mainly for checking access violations within a database. Auditing is necessary to verify whether the database security is effective in terms of knowing whether data has been accessed, modified, or deleted by unauthorized user. Fine-grained auditing in particular is used for monitoring and alerting security analyst or database administrators about security infringement (Freeman, 2008). Although some experts claim that audit trial is often an after the fact device, however, its mere existence can discourage unauthorized use of the database. You can also audit the audit trail to make sure a top a disgruntled DBA has not altered the audit trail records (inside job crime) buy using this SQL statement. “SQL> Audit delete, insert, update on sys.aud$ by access;”

Data encryption is often used to render data useless when intercepted by unauthorized users whose intensions are to violate the database security for criminal gain. In this case, data encryption promotes data privacy (Coronel & Rob, 2004). Further, data encryption promotes data authentication, thus ensuring that data has not been forged. AES and 3DES are the most common encryption algorithms supported by most relational database management systems (Powell & McCollough-Dieter, 2007).

In addition, Oracle 10g introduced Transparent Data Encryption (TDE), which allows users to encrypt data within specific columns of a table. This is useful when transporting data across platforms, thus even though when that data is intercepted, it’ll look like something useless. For instance, Oracle SECUREFILE LOB can be encrypted, compressed, and stored in clear text with specifications independent f of the other LOBS (Freeman, 2008).  The Data pump, which is a tool used for transporting objects between databases or across platforms, now has an encryption enhancement that makes data more secure when in transit. You use the encryption_mode parameter to secure data, metadata or both before it’s transported and then decoded once it has reached its final destination.

Tablespace encryption via Transparent Tablespace Encryption (TTE) allows all contents within a specific tablespace to be encrypted especially when the tablespace is permanent unlike Undo and temporary tablespaces. As such you can have the redo log streams, partitions, indexes encrypted or not encrypted, a mix that will make hacking difficult if not impossible. However, the disadvantages to encrypting database tablespaces are that once set, the encryption cannot be changed, hence, once you loose encryption key, you loose your data.

Likewise, transporting encrypted tablespaces is difficult without cross-endianness transport (Freeman, 2008). Furthermore, in general, encryptions increase the I/O and CPU overhead, thus making the database performance poor especially when using TDE. But with TTE, that’s not the case because encrypted objects are decrypted when they go into the cache and index matched, thus having not effect on performance (Arup, 2008).

In oracle’s recovery manager (RMAN), transparent encryption is used to create and restore encrupted database backups. The whole backup can be encrypted and backed securely to a tape or disk. In addition, virtual private catalog in Oracle 11g was introduced to provide data backup security in the recovery catalog. Using the RMAN grant command, you can restrict recovery catalog view access to other users. This is one of the ways to ensure that an organization’s security procedures are met (Kuhn et al, 2007).

There are definitely various security measures that can be implemented within a database. However, the above mentioned are the most common features and once used or reinforced properly, unauthorized users can be prevented from accessing and performing any illegal activities within a database.

References:

Coronel, C. & Rob, P. (2004). Database Systems: Design, Implementation, & Management. Thompson Course Technology

Freeman, G. R. (2008). Oracle Database 11g New Features: Maximize the New Capabilities of the Latest Database Release. Forwarded by Tom Kyte and contributions from Arup Nanda.

Holden, G. (2003). Guide to Network Defense and Countermeasure. Thomson Course technology

Kuhn, D., Alapati, S., & Nanda, A. (2007). RMAN Recipes for Oracle Database 11g A Problem Solution Approach. Apress.

Loney, Kevin. (2004). Oracle Database 10g: The Complete Reference. Master the Revolutionary Features of Oracle Database 10g. McGraw-Hill-Osborne

Morris-Murphy, L. Lannes (2003). Oracle 9i SQL with an Introduction to PL\SQL

Powell, G. & McCollough-Dieter, C. (2007). Database Administrator: Implementation & Administration. Thompson.

Velpuri, Rama. (2002). OCP Oracle9i Database: Fundamentals II Exam Guide. McGraw Hill- Osborne

Nanda, Arup. Oracle Database 10g: The Top 20 Features for DBAs
http://www.oracle.com/technology/pub/articles/10gdba/pdf/10gdba_complete.pdf

Nanda, Arup. Keeping Information Private with VPD
http://www.oracle.com/technology/oramag/oracle/04-mar/o24tech_security.html

Surapaneni S. October 12, 2006, Oracle 10g: Exploring Data Pump
http://www.databasejournal.com/features/oracle/article.php/3636536

Oracle Database Backup and Recovery Advanced User's Guide10g
http://www.itk.ilstu.edu/docs/Oracle/server.101/b10734/part1.htm