The term database security refers to the control of privacy and integrity of large data stores which are usually managed by a software program known as a database management system. At present, such databases are used by an enormous number of companies to store an incredible variety of data. Typically, this data is extremely important to organizations and individuals, and can also be of a very confidential nature; examples of such data include bank account information, credit card information, medical records and inventory records. It is clear that this data must not be accessible to unauthorized persons (privacy), and that unauthorized persons must not be able to alter this data (integrity). Maintaining privacy and integrity of a database is not a trivial task; consequently, many instances of security breaches of databases appear in the news and result in significant problems for both companies and individuals. Some notable recent incidents include the theft of 45.7 million credit card numbers along with other personal information from a TJX database in January of 2007[1][2], and the theft of 40 million credit card numbers from the database of a transaction processing company, CardSystems, revealed in June 2005[3]. In order to help prevent such database security breaches from occurring, there are numerous security mechanisms that can be employed. These security mechanisms can be grouped into the categories of server security, access control, and encryption. Modern database management systems such as IBM DB2, Oracle Database 10g, and Microsoft SQL Server 2005 provide a wide variety of such security mechanisms.
|
|
In contrast to communication encryption, data encryption deals with permanently encrypting a database's data on the storage device on which it resides. This form of encryption is a great defense against several threats which communication encryption does not protect against at all. Firstly, if a user was able to gain access to the machine on which the database is stored, the actual files containing the database data could be accessible to them. In this situation, no matter how secure the database was, the user could simply read the data directly from the file rather then going through the database management system. Secondly, if the physical storage devices containing the database were stolen, the thief could again likely access the database information directly from the files on the obtained storage devices.
Several current database management systems allow encryption of the database on the storage device, although there are often limitations to the types of data that may be encrypted in an active database. Furthermore, this type of encryption can cause significant overhead during transactions due to the need to decrypt data to be received, and encrypt data to be stored. Data encryption is one area which many database management systems are still attempting to improve on.
References