安全РS Q L数据库处理数据安全的方式与桌面数据库是不同的。S Q L数据库不仅可以对数据库进行口令验证,而且还能够针对特定的数据库对象进行限制,包括视图、数据库表和存储过程等。这意味着用户访问能够在服务器端定义,来基于用户的需要显示数据。Р通常,S Q L数据库允许通过G R A N T或R E V O K E命令向一个用户或一组用户授予或收回权限。因此,可以在S Q L数据库中定义一组用户。这些权限可以应用于任何一种已经提到的数据库对象。Р2.4.3 记录锁定方法Р锁定是一种机制,使得多个用户可以对同一个数据库提交并发的S Q L事务。锁定级别有多种,不同的服务器有不同的级别。Р表一级的锁定主要用于限制对一个正在处理事务的数据库表的访问。尽管这种方式允许并行的处理,但这种锁定机制速度很慢,因为多个用户往往要共享同一个表。页面级锁定是一种改进的锁定技术。用这种技术,服务器可以把数据的某一块锁定在磁盘上,也就是所谓的页面。当一个事务正在对某页进行处理时,其他事务就不能更新该页上的数据。由于数据往往分布在数百个页面上,因此多个事务同时操作同一个页面的可能性很小。Р有些服务器还提供了记录级的锁定机制,能够锁定数据库表中的某一行。不过,这样会大大增加锁定信息的维护工作。Р桌面数据库采用所谓的保守或明确的锁定策略。这意味着,无法改变那些当前正在被其他用户更新的记录。如果试图访问这样的记录,将会出错,错误信息提示除非先前那个用户释放该记录,否则无法访问。РS Q L数据库采用所谓的优化锁定策略。这种技术并不限制访问当前正在被其他用户访问的记录,可以照常对它进行编辑,并请求服务器保存修改后的数据。不过,在记录被保存之前,首先会与服务器中的备份进行比较,因为在查看和修改这条记录的同时,它可能已被其他用户更新。如果该记录已被其他用户修改,则会导致一个错误,提示在取得记录后,它已经被更新。