收 藏
投 稿
繁 体
RSS
首 页
运 营
学 院
建 站
论 坛
Web
master8.net
网站运营
欢迎在本站发布信息,在线投递稿件
请点这里
。编辑QQ:4908220,欢迎联系交流。
业界动态
创业故事
推广研究
策划盈利
电子商务
企业平台
站长工具
SEO查询
Whois查询
Pr查询
域名查询
IP查询
网页编辑器
技术学院
投递稿件请点这里:)
网页设计
HTML
XHTML
CSS
Javascript
Frontpage
Dreamweaver
图形图像
PhotoShop
FireWorks
Flash
Coreldraw
程序开发
PHP
ASP
.NET
JSP
CGI
XML
数据库
MySQL
Oracle
MSSQL
Access
综合应用
设计理论
建站系统
服务器管理
常用下载
办公应用
建站服务
如有建站意向,请尽快联系我们,以便安排时间...
QQ:4908220
作品展示
服务范围
服务流程
服务报价
联系方式
付款方式
站长论坛
注册
/
登陆
/
忘密?
交流区
站长酒吧
SEO&推广
网赚交流
建站系统
服务&信息
招聘求职
项目外包
广告发布
网络资源
技术区
网页设计师
界面设计师
WEB程序员
计算机应用
文章正文
» 您的当前位置:
首页
>>
学院
>>
数据库
>>
SQLServer
SQL数据库完全手册_3
来源:
互联网
| 时间:2005-10-04 | 浏览:
相关评论
|
报告错误
|
发布文章
【字号:
大
|
中
|
小
】 【背景色
】
##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页面内的脚本语言。它的功能强大,使用方便,开发难度不大,而且可以免费使用。
上一篇:
SQL数据库完全手册_2
下一篇:
万维网创始人博客处女秀
我要投稿
打印本文
推荐本文
加入收藏
返回顶部
关闭窗口
01-12
SQL Server 2005数据库分区数据的移入和移出
12-27
SQL Server 2008之备份压缩
12-02
SQL Server存储过程命名标准
11-21
SQL Server数据库触发器安全隐患解析
11-21
SQL Server数据备份处理过程探讨
如何上传.SQL文件到远程主机并用...
ACCESS改为SQL需要注意哪几个地方
SQL Server 2005 SP1发布
SQLServer数据库安全规划全攻略
Sql Server 常用函数
more..
» 相 关 评 论
验证码:
站长吧首页
-
网站运营
-
站长学院
-
SEO查询
-
站长论坛
-
建站服务
-
联系本站
-
广告/业务
©2005-2006 站长吧 Master8.NET All rights reserved 陕ICP备05010609号
九州未来科技提供服务器支持
| 网站空间 | 虚拟主机