·您的位置: 首页 » 资源教程 » 编程开发 » 数据库 » SQL数据库完全手册_3

SQL数据库完全手册_3

类别: 数据库教程  评论数:0 总得分:0
##2 (四) 数据控制
   由于数据库管理系统是一个多用户系统,为了控制用户对数据的存取权利,保持数据的共享及完全性,SQL语言提供了一系列的数据控制功能。其中,主要包括安全性控制、完整性控制、事务控制和并发控制。
   1.安全性控制
   数据的安全性是指保护数据库,以防非法使用造成数据泄露和破坏。保证数据安全性的主要方法是通过对数据库存取权力的控制来防止非法使用数据库中的数据。即限定不同用户操作不同的数据对象的权限。
   存取权控制包括权力的授与、检查和撤消。权力授与和撤消命令由数据库管理员或特定应用人员使用。系统在对数据库操作前,先核实相应用户是否有权在相应数据上进行所要求的操作。
   (1)权力授与:权力授与有数据库管理员专用的授权和用户可用的授权两种形式。数据库管理员专用授权命令格式如下:
   |CONNECT |
   GRANT|RESOURCE|TO 用户名[IDENTIFED BY 口令]
   |DBA |
   其中,CONNECT表示数据库管理员允许指定的用户具有连接到数据库的权力,这种授权是针对新用户;RESOURCE表示允许用户建立自己的新关系模式,用户获得CONNECT权力后,必须获得RESOURCE权力才能创建自己的新表;DBA表示数据库管理员将自己的特权授与指定的用户。若要同时授与某用户上述三种授权中的多种权力,则必须通过三个相应的GRANT命令指定。
   另外,具有CONNECT和RESOURCE授权的用户可以建立自己的表,并在自己建立的表和视图上具有查询、插入、修改和删除的权力。但通常不能使用其他用户的关系,除非能获得其他用户转授给他的相应权力。
   例:若允许用户SSE连接到数据库并可以建立他自己的关系,则可通过如下命令授与权力:
   GRANT CONNECT TO SSE INENTIFIED BY BD1928
   GRANT RESOURCE TO SSE
   用户可用的授权是指用户将自己拥有的部分或全部权力转授给其他用户的命令形式,其命令格式如下:
   |SELECT |
   |INSERT |
   |DELETE |
  GRANT|UPDATE(列名1[,列名2>…)|ON|表名 |TO|用户名|[WITH GRANT OPTION]
   |ALTER | |视图名| |PUBLIC|
   |NDEX |
   |ALL |

若对某一用户同时授与多种操作权力,则操作命令符号可用“,”相隔。
   PUBLIC 表示将权力授与数据库的所有用户,使用时要注意:
   任选项WITH GRANT OPTION表示接到授权的用户,具有将其所得到的同时权力再转授给其他用户权力。
   例:如果将表student的查询权授与所有用户,可使用以下命令:
   GRANT SELECT ON student TO PUBLIC
   例:若将表subject的插入及修改权力授与用户SSE并使得他具有将这种权力转授他人的权力,则可使用以下命令:
   GRANT INSERT,UPDATE(su_subject) ON subject TO SSE WITH GRANT OPTION
   这里,UPDATE后面跟su_subject是指出其所能修改的列。
   (2)权力回收:权力回收是指回收指定用户原已授与的某些权力。与权力授与命令相匹配,权力回收也有数据库管理员专用和用户可用的两种形式。
   DBA专用的权力回收命令格式为:
   |CONNECT |
   REVOKE|RESOURCE|FROM用户名
   |DBA |
   用户可用的权力回收命令格式为:
   |SELECT |
   |INSERT |
   |DELETE |
   REVOKE|UPDATE(列名1[,列名2]…) |ON|表名 |FROM |用户名|
   |ALTER | |视图名| |PUBLIC|
   |INDEX |
   |ALL |
   例:回收用户SSE的DBA权力:
   REVOKE DBA FROM SSE
   2.完整性控制
   数据库的完整性是指数据的正确性和相容性,这是数据库理论中的重要概念。完整性控制的主要目的是防止语义上不正确的数据进入数据库。关系系统中的完整性约束条件包括实体完整性、参照完整性和用户定义完整性。而完整性约束条件的定义主要是通过CREATE TABLE语句中的[CHECK]子句来完成。另外,还有一些辅助命令可以进行数据完整性保护。如UNIQUE和NOT NULL,前者用于防止重复值进入数据库,后者用于防止空值。
   3.事务控制
   事务是并发控制的基本单位,也是恢复的基本单位。在SQL中支持事务的概念。所谓事务,是用户定义的一个操作序列(集合),这些操作要么都做,要么一个都不做,是一个不可分割的整体。一个事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
   SQL提供了事务提交和事务撤消两种命令:
   (1)事务提交:事务提交的命令为:
   COMMIT [WORK]
   事务提交标志着对数据库的某种应用操作成功地完成,所有对数据库的操作都必须作为事务提交给系统时才有效。事务一经提交就不能撤消。
   (2)事务撤消:事务撤消的命令是:
   ROLLBACK [WORK]
   事务撤消标志着相应事务对数据库操作失败,因而要撤消对数据库的改变,即要“回滚”到相应事务开始时的状态。
   当系统非正常结束时(如掉电、系统死机),将自动执行ROLLBACK命令
   SQL还提供了自动提交事务的机制,其命令为:
   SET AUTO COMMIT ON
   其对应的人工工作方式命令为:
   SET AUTO COMMIT OFF
   一旦规定了自动提交事务方式,则系统将每条SQL命令视为一个事务,并在命令成功执行完成时自动地完成事务提交。
   4.并发控制
   数据库作为共享资源,允许多个用户程序并行地存取数据。当多个用户并行地操作数据库时,需要通过并发控制对它们加以协调、控制,以保证并发操作的正确执行,并保证数据库的一致性。
   在SQL中,并发控制采用封锁技术实现,当一个事务欲对某个数据对象操作时,可申请对该对象加锁,取得对数据对象的一定控制,以限制其他事务对该对象的操作。其语句格式为:
   |SHARE |
   LOCK TABLE 表名(或表名集合)IN |EXCLUSVE |MODE [NOWAIT>
   |SHARE UPDATE|
   其中,表名(或表名集合)中指出封锁对象,若为多个表名,则各个表名间以“,”相隔;任选项NOWAIT表示多个用户要求封锁相同的关系时,后来提出的要求会被立即退回去,否则会等待该资源释放。
   SHARE表示共享封锁方式;EXCLUSIVE表示独占封锁方式;SHARE UPDAE表示共享更新封锁方式。其中共享封锁方式允许其他事务读同一数据,但防止其他事务对已封锁的表进行更新,该锁主要防止在表的两次查询之间对该表的改动;共享更新封锁SHARE UPDATE是一个行封锁机制,它可改善表级封锁的并行性,它能允许并发事务读和修改一个表中的不同的行;独占封锁方式EXCLUSIVE禁止其他事务获得一个共享锁且禁止其他事务执行任何数据操作语句,即一旦某个运行事务对某个数据对象施加了排它锁,则其他任何事务都不能再对该数据对象施加任何方式的锁,只有处于等待状态。如果不想无限等待,则选择NOWAIT。
   PHP(Hypertext Preprocessor,超文本预处理器)是一个递归的缩写名称,它是一种内嵌在HTML页面内的脚本语言。它的功能强大,使用方便,开发难度不大,而且可以免费使用。
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:

纯粹空间 softpure.com
Copyright © 2006-2012 暖阳制作 版权所有
承接程序设计 网页设计
QQ: 15242663 (隐身在线 拒绝闲聊)  Email: faisun@sina.com

 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛  

百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1