当前位置:文档之家› 数据库的安全性、完整性、并发控制和恢复

数据库的安全性、完整性、并发控制和恢复

数据库的安全性、完整性、并发控制和恢复
数据库的安全性、完整性、并发控制和恢复

数据库的安全性、完整性、并发控制和恢复

为了保证数据库数据的安全可靠性和正确有效,DBMS必须提供统一的数据保护功能。数据保护也为数据控制,主要包括数据库的安全性、完整性、并发控制和恢复。

数据库的安全性

数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。

在一般的计算机系统中,安全措施是一级一级设置的。

在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用。在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。

在ORACLE多用户数据库系统中,安全机制作下列工作:

防止非授权的数据库存取;

防止非授权的对模式对象的存取;

控制磁盘使用;

控制系统资源使用;

审计用户动作。

数据库安全可分为二类:系统安全性和数据安全性。

系统安全性是指在系统级控制数据库的存取和使用的机制,包含:

有效的用户名/口令的组合;

一个用户是否授权可连接数据库;

用户对象可用的磁盘空间的数量;

用户的资源限制;

数据库审计是否是有效的;

用户可执行哪些系统操作。

数据安全性是指在对象级控制数据库的存取和使用的机制,包含:

哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型。

在ORACLE服务器上提供了一种任意存取控制,是一种基于特权限制信息存取的方法。用户要存取一对象必须有相应的特权授给该用户。已授权的用户可任意地可将它授权给其它用户,由于这个原因,这种安全性类型叫做任意型。

ORACLE利用下列机制管理数据库安全性:

数据库用户和模式;

特权;

角色;

存储设置和空间份额;

资源限制;

审计。

数据库的存取控制

ORACLE保护信息的方法采用任意存取控制来控制全部用户对命名对象的存取。用户对对象的存取受特权控制。一种特权是存取一命名对象的许可,为一种规定格式。

ORACLE使用多种不同的机制管理数据库安全性,其中有两种机制:模式和用户。模式为模式对象的集合,模式对象如表、视图、过程和包等。第一数据库有一组模式。

每一ORACLE数据库有一组合法的用户,可存取一数据库,可运行一数据库应用和使用该用户各连接到定义该用户的数据库。当建立一数据库用户时,对该用户建立一个相应的模式,模式名与用户名相同。一旦用户连接一数据库,该用户就可存取相应模式中的全部对象,一个用户仅与同名的模式相联系,所以用户和模式是类似的。

用户的存取权利受用户安全域的设置所控制,在建立一个数据库的新用户或更改一已有用户时,安全管理员对用户安全域有下列决策:

是由数据库系统还是由操作系统维护用户授权信息。

设置用户的缺省表空间和临时表空间。

列出用户可存的表空间和在表空间中可使用空间份额。

设置用户资源限制的环境文件,该限制规定了用户可用的系统资源的总量。

规定用户具有的特权和角色,可存取相应的对象。

每一个用户有一个安全域,它是一组特性,可决定下列内容:

用户可用的特权和角色;

用户可用的表空间的份额;

用户的系统资源限制。

用户鉴别:

为了防止非授权的数据库用户的使用,ORACLE提供二种确认方法

操作系统确认和相应的ORACLE数据库确认。

如果操作系统允许,ORACLE可使用操作系统所维护的信息来鉴定用户。由操作系统鉴定用户的优点是:

用户可更方便地连接到ORACLE,不需要指定用户名和口令。

对用户授权的控制集中在操作系统,ORACLE不需要存储和管理用户口令。然而用户名在数据库中仍然要维护。

在数据库中的用户名项和操作系统审计跟踪相对应。

ORACLE数据库方式的用户确认:ORACLE利用存储在数据库中的信息可鉴定试图接到数据库的一用户,这种鉴别方法仅当操作系统不能用于数据库用户鉴别时才使用。当用户使用一ORACLE数据库时执行用户鉴别。每个用户在建立时有一个口令,用户口令在建立对数据库连接时使用,以防止对数据库非授权的使用。用户的口令以密码的格式存储在数据库数据字典中,用户可随时修改其口令。

用户的表空间设置和定额

关于表空间的使用有几种设置选择:

用户的缺省表空间;

用户的临时表空间;

数据库表空间的空间使用定额。

用户资源限制和环境文件

用户可用的各种系统资源总量的限制是用户安全域的部分。利用显式地设置资源限制;安全管理员可防止用户无控制地消耗宝贵的系统资源。资源限制是由环境文件管理。一个环境文件是命名的一组赋给用户的资源限制。另外ORACLE为安全管理员在数据库级提供使能或使不能实施环境文件资源限制的选择。ORACLE可限制几种类型的系统资源的使用,每种资源可在会话级、调用级或两者上控制。在会话级:每一次用户连接到一数据库,建立一会话。每一个会话在执行SQL语句的计算机上耗费CPU时间和内存量进行限制。对ORACLE的几种资源限制可在会话级上设置。如果会话级资源限制被超过,当前语句被中止(回滚),并返回指明会话限制已达到的信息。此时,当前事务中所有之前执行的语句不受影响,此时仅可作COMMIT、ROLLBACK或删除对数据库的连接等操作,进行其它操作都将出错。

在调用级:在SQL语句执行时,处理该语句有好几步,为了防止过多地调用系统,ORACLE在调用级可设置几种资源限制。如果调用级的资源限制被超过,语句处理被停止,该语句被回滚,并返回一错误。然而当前事务的已执行所用语句不受影响,用户会话继续连接。

有下列资源限制:

为了防止无控制地使用CPU时间,ORACLE可限制每次ORACLE调用的CPU 时间和在一次会话期间ORACLE调用所使用的CPU的时间,以0.01秒为单位。为了防止过多的I/O,ORACLE可限制每次调用和每次会话的逻辑数据块读的数目。

ORACLE在会话级还提供其它几种资源限制。

每个用户的并行会话数的限制;

会话空闲时间的限制,如果一次会话的ORACLE调用之间时间达到该空闲时间,当前事务被回滚,会话被中止,会话资源返回给系统;

每次会话可消逝时间的限制,如果一次会话期间超过可消逝时间的限制,当前事务被回滚,会话被删除,该会话的资源被释放;

每次会话的专用SGA空间量的限制。

用户环境文件:

用户环境文件是指定资源限制的命名集,可赋给ORACLE数据库的有效的用户。利用用户环境文件可容易地管理资源限制。要使用用户环境文件,首先应将数据库中的用户分类,决定在数据库中全部用户类型需要多少种用户环境文件。在建立环境文件之前,要决定每一种资源限制的值。例如一类用户通常不执行大量逻辑数据块读,那就可将LOGICAL-READS-PER-SESSION和LOGICAL-READS-PER-CALL设置相应的值。在许多情况中决定一用户的环境文件的合适资源限制的最好的方法是收集每种资源使用的历史信息。

特权和角色

特权:特权是执行一种特殊类型的SQL语句或存取另一用户的对象的权力。有两类特权:系统特权和对象特权。

系统特权:是执行一处特殊动作或者在对象类型上执行一种特殊动作的权利。ORACLE有60多种不同系统特权,每一种系统允许用户执行一种特殊的数据库操作或一类数据库操作.

系统特权可授权给用户或角色,一般,系统特权全管理人员和应用开发人员,终端用户不需要这些相关功能.授权给一用户的系统特权并具有该系统特权授权给其他用户或角色.反之,可从那些被授权的用户或角色回收系统特权.

对象特权:在指定的表、视图、序列、过程、函数或包上执行特殊动作的权利。对于不同类型的对象,有不同类型的对象特权。对于有些模式对象,如聚集、索引、触发器、数据库链没有相关的对象特权,它们由系统特权控制。

对于包含在某用户名的模式中的对象,该用户对这些对象自动地具有全部对象特权,即模式的持有者对模式中的对象具有全部对象特权。这些对象的持有者可将这些对象上的任何对象特权可授权给其他用户。如果被授者包含有GRANT OPTION 授权,那么该被授者也可将其权利再授权给其他用户。

角色:为相关特权的命名组,可授权给用户和角色。ORACEL利用角色更容易地进行特权管理。有下列优点:

减少特权管理,不要显式地将同一特权组授权给几个用户,只需将这特权组授给角色,然后将角色授权给每一用户。

动态特权管理,如果一组特权需要改变,只需修改角色的特权,所有授给该角色的全部用户的安全域将自动地反映对角色所作的修改。

特权的选择可用性,授权给用户的角色可选择地使其使能(可用)或使不能(不可用)。

应用可知性,当一用户经一用户名执行应用时,该数据库应用可查询字典,将自动地选择使角色使能或不能。

专门的应用安全性,角色使用可由口令保护,应用可提供正确的口令使用权角色使能,达到专用的应用安全性。因用户不知其口令,不能使角色使能。

一般,建立角色服务于两个目的:为数据库应用管理特权和为用户组管理特权。相应的角色称为应用角色和用户角色。

应用角色是授予的运行一数据库应用所需的全部特权。一个应用角色可授给其它角色或指定用户。一个应用可有几种不同角色,具有不同特权组的每一个角色在使用应用时可进行不同的数据存取。

用户角色是为具有公开特权需求的一组数据库用户而建立的。用户特权管理是受应用角色或特权授权给用户角色所控制,然后将用户角色授权给相应的用户。数据库角色包含下列功能:

一个角色可授予系统特权或对象特权。

一个角色可授权给其它角色,但不能循环授权。

任何角色可授权给任何数据库用户。

授权给一用户的每一角色可以是使能的或者使不能的。一个用户的安全域仅包含当前对该用户使能的全部角色的特权。

一个间接授权角色(授权给另一角色的角色)对一用户可显式地使其能或使不能。在一个数据库中,每一个角色名必须唯一。角色名与用户不同,角色不包含在任何模式中,所以建立一角色的用户被删除时不影响该角色。

ORACLE为了提供与以前版本的兼容性,预定义下列角色:CONNENT、RESOURCE、DBA、EXP-FULL-DATABASE和IMP-FULL-DATABASE。

审计

审计是对选定的用户动作的监控和记录,通常用于:

审查可疑的活动。例如:数据被非授权用户所删除,此时安全管理员可决定对该数据库的所有连接进行审计,以及对数据库的所有表的成功地或不成功地删除进行审计。

监视和收集关于指定数据库活动的数据。例如:DBA可收集哪些被修改、执行了多少次逻辑的I/O等统计数据。

ORACLE支持三种审计类型:

语句审计,对某种类型的SQL语句审计,不指定结构或对象。

特权审计,对执行相应动作的系统特权的使用审计。

对象审计,对一特殊模式对象上的指定语句的审计。

ORACLE所允许的审计选择限于下列方面:

审计语句的成功执行、不成功执行,或者其两者。

对每一用户会话审计语句执行一次或者对语句每次执行审计一次。

对全部用户或指定用户的活动的审计。

当数据库的审计是使能的,在语句执行阶段产生审计记录。审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。审计记录可存在数据字典表(称为审计记录)或操作系统审计记录中。数据库审计记录是在SYS模式的AUD$表中。

数据完整性

它是指数据的正确性和相容性。数据的完整性是为了防止数据库存在不符合主义的数据,防止错误信息输入和输出,即数据要遵守由DBA或应用开发者所决定的一组预定义的规则。ORACLE应用于关系数据库的表的数据完整性有下列类型:

在插入或修改表的行时允许不允许包含有空值的列,称为空与非空规则。

唯一列值规则,允许插入或修改的表行在该列上的值唯一。

引用完整性规则,同关系模型定义

用户对定义的规则,为复杂性完整性检查。

ORACLE允许定义和实施上述每一种类型的数据完整性规则,这些规则可用完整性约束和数据库触发器定义。

完整性约束,是对表的列定义一规则的说明性方法。

数据库触发器,是使用非说明方法实施完整性规则,利用数据库触发器(存储的数据库过程)可定义和实施任何类型的完整性规则。

完整性约束

ORACLE利用完整性约束机制防止无效的数据进入数据库的基表,如果任何DML执行结果破坏完整性约束,该语句被回滚并返回一上个错误。ORACLE实现的完整性约束完全遵守ANSI X3。135-1989和ISO9075-1989标准。

利用完整性约束实施数据完整性规则有下列优点:

定义或更改表时,不需要程序设计,便很容易地编写程序并可消除程序性错误,其功能是由ORACLE控制。所以说明性完整性约束优于应用代码和数据库触发器。

对表所定义的完整性约束是存储在数据字典中,所以由任何应用进入的数据都必须遵守与表相关联的完整性约束。

具有最大的开发能力。当由完整性约束所实施的事务规则改变时,管理员只需改变完整性约束的定义,所有应用自动地遵守所修改的约束。

由于完整性约束存储在数据字典中,数据库应用可利用这些信息,在SQL语句执行之前或由ORACLE检查之前,就可立即反馈信息。

由于完整性约束说明的语义是清楚地定义,对于每一指定说明规则可实现性能优化。

由于完整性约束可临时地使不能,以致在装入大量数据时可避免约束检索的开销。当数据库装入完成时,完整性约束可容易地使其能,任何破坏完整性约束的任何新行在例外表中列出。

ORACLE的DBA和应用开始者对列的值输入可使用的完整性约束有下列类型:NOT NULL约束:如果在表的一列的值不允许为空,则需在该列指定NOT NULL 约束。

UNIQUE码约束:在表指定的列或组列上不允许两行是具有重复值时,则需要该列或组列上指定UNIQUE码完整性约束。在UNIQUE码约束定义中的列或组列称为唯一码。所有唯一完整性约束是用索引方法实施。

PRIMARY KEY约束:在数据库中每一个表可有一个PRIMARY KEY约束。包含在PRIMARY KEY完整性约束的列或组列称为主码,每个表可有一个主码。ORACLE使用索引实施PRIMARY KEY约束。

FOREIGN KEY约束(可称引用约束):在关系数据库中表可通过公共列相关联,该规则控制必须维护的列之间的关系。包含在引用完整性约束定义的列或组列称为外来码。由外来码所引用的表中的唯一码或方码,称为引用码。包含有外来码的表称为子表或从属表。由子表的外来码所引用的表称为双亲表或引用表。如果对表的每一行,其外来码的值必须与主码中一值相匹配,则需指定引用完整性约束。

CHECK约束:表的每行对一指定的条件必须是TRUE或未知,则需在一列或列组上指定CHECK完整性约束。如果在发出一个DML语句时,CHECK约束的条件计算得FALSE时,该语句被回滚。

数据库触发器

ORACLE允许定义过程,当对相关的表作INSERT、UPDATE或DELETE语句时,这些过程被隐式地执行。这些过程称为数据库触发器。触发器类似于存储的过程,可包含SQL语句和PL/SQL语句,可调用其它的存储过程。过程与触发器差别在于调用方法:过程由用户或应用显式执行;而触发器是为一激发语句(INSERT、UPDATE、DELETE)发出进由ORACLE隐式地触发。一个数据库应用可隐式地触发存储在数据库中多个触发器。

在许多情况中触发器补充ORACLE的标准功能,提供高度专用的数据库管理系统。一般触发器用于:

自动地生成导出列值。

防止无效事务。

实施复杂的安全审核。

在分布式数据库中实施跨结点的引用完整性。

实施复杂的事务规则。

提供透明的事件记录。

提供高级的审计。

维护同步的表副本。

收集表存取的统计信息。

注意:在ORACLE环境中利用ORACLE工具SQL*FORMS也可定义、存储和执行触发器,它作为由SQL*FORMS所开发有应用的一部分,它与在表上定义的数据库触发器有差别。数据库触发器在表上定义,存储在相关的数据库中,在对该表发出IMSERT、UPDATE、DELETE语句时将引起数据库触发器的执行,不管是哪些用户或应用发出这些语句。而SQL*FORMS的触发器是SQL*FORMS应用的组成,仅当在指定SQL*FORMS应用中执行指定触发器点时才激发该触发器。

一个触发器由三部分组成:触发事件或语句、触发限制和触发器动作。触发事件或语句是指引起激发触发器的SQL语句,可为对一指定表的INSERT、UNPDATE或DELETE语句。触发限制是指定一个布尔表达式,当触发器激以时该布尔表达式是必须为真。触发器作为过程,是PL/SQL块,当触发语句发出、触发限制计算为真时该过程被执行。

并发控制

数据库是一个共享资源,可为多个应用程序所共享。这些程序可串行运行,但在许多情况下,由于应用程序涉及的数据量可能很大,常常会涉及输入/输出的交换。为了有效地利用数据库资源,可能多个程序或一个程序的多个进程并行地运行,这就是数据库的并行操作。在多用户数据库环境中,多个用户程序可并行地存取数据库,如果不对并发操作进行控制,会存取不正确的数据,或破坏数据库数据的一致性。

例:在飞机票售票中,有两个订票员(T1,T2)对某航线(A)的机动性票作事

样动作,它们都得0值,最后分别将0值写回数据库。在这过程中没有任何非法操作,但实际上多出一张机票。这种情况称为数据库的不一致性,这种不一致性是由于并行操作而产生的。所谓不一致,实际上是由于处理程序工作区中的数据与数据库中的数据不一致所造成的。如果处理程序不对数据库中的数据进行修改,则决不会造成任何不一致。另一方面,如果没有并行操作发生,则这种临时的不一致也不会造成什么问题。数据不一致总是是由两个因素造成:一是对数据

的修改,二是并行操作的发生。因此为了保持数据库的一致性,必须对并行操作进行控制。最常用的措施是对数据进行封锁。

数据库不一致的类型

不一致性

在一事务期间,其它提交的或未提交事务的修改是显然的,以致由查询所返回的数据集不与任何点相一致。

不可重复读

在一个事务范围内,两个相同查询将返回不同数据,由于查询注意到其它提交事务的修改而引起。

读脏数据

如果事务T1将一值(A)修改,然后事务T2读该值,在这之后T1由于某种原因撤销对该值的修改,这样造成T2读取的值是脏的。

丢失更改

在一事务中一修改重写另一事务的修改,如上述飞机票售票例子。

破坏性的DDL操作

在一用户修改一表的数据时,另一用户同时更改或删除该表。

封锁

在多用户数据库中一般采用某些数据封锁来解决并发操作中的数据一致性和完整性问题。封锁是防止存取同一资源的用户之间破坏性的干扰的机制,该干扰是指不正确地修改数据或不正确地更改数据结构。

在多用户数据库中使用两种封锁:排它(专用)封锁和共享封锁。排它封锁禁止相关资源的共享,如果一事务以排它方式封锁一资源,仅仅该事务可更改该资源,直至释放排它封锁。共享封锁允许相关资源可以共享,几个用户可同时读同一数据,几个事务可在同一资源上获取共享封锁。共享封锁比排它封锁具有更高的数据并行性。

在多用户系统中使用封锁后会出现死锁,引起一些事务不能继续工作。当两个或多个用户彼此等待所封锁数据时可发生死锁。

ORACLE多种一致性模型。

ORACLE利用事务和封锁机制提供数据并发存取和数据完整性。在一事务内由语句获取的全部封锁在事务期间被保持,防止其它并行事务的破坏性干扰。一个事务的SQL语句所作的修改在它提交之后所启动的事务中才是可见的。在一事务中由语句所获取的全部封锁在该事务提交或回滚时被释放。

ORACLE在两个不同级上提供读一致性:语句级读一致性和事务级一致性。ORCLE总是实施语句级读一致性,保证单个查询所返回的数据与该查询开始时刻相一致。所以一个查询从不会看到在查询执行过程中提交的其它事务所作的任何修改。为了实现语句级读一致性,在查询进入执行阶段时,在注视SCN的时候为止所提交的数据是有效的,而在语句执行开始之后其它事务提交的任何修改,查询将是看不到的。

ORACLE允许选择实施事务级读一致性,它保证在同一事务内所有查询的数据

4) 封锁机制

ORACLE自动地使用不同封锁类型来控制数据的并行存取,防止用户之间的破坏性干扰。ORACLE为一事务自动地封锁一资源以防止其它事务对同一资源的排它封锁。在某种事件出现或事务不再需要该资源时自动地释放。

ORACLE将封锁分为下列类:

数据封锁:数据封锁保护表数据,在多个用户并行存取数据时保证数据的完整性。数据封锁防止相冲突的DML和DDL操作的破坏性干扰。DML操作可在两个级获取数据封锁:指定行封锁和整个表封锁,在防止冲突的DDL操作时也需表封锁。当行要被修改时,事务在该行获取排它数据封锁。表封锁可以有下列方式:行共享、行排它、共享封锁、共享行排它和排它封锁。

DDL封锁(字典封锁)

DDL封锁保护模式对象(如表)的定义,DDL操作将影响对象,一个DDL语句隐式地提交一个事务。当任何DDL事务需要时由ORACLE自动获取字典封锁,用户不能显式地请求DDL封锁。在DDL操作期间,被修改或引用的模式对象被封锁。

内部封锁:保护内部数据库和内存结构,这些结构对用户是不可见的。

5) 手工的数据封锁

下列情况允许使用选择代替ORACLE缺省的封锁机制:

应用需要事务级读一致或可重复读。

应用需要一事务对一资源可排它存取,为了继续它的语句,具有对资源排它存取的事务不必等待其它事务完成。

ORACLE自动封锁可在二级被替代:事务级各系统级。

事务级:包含下列SQL语句的事务替代ORACLE缺省封锁:LOCK TABLE命令、SELECT…FOR UPDATE命令、具有READ ONLY选项的SET TRANSACTIN命令。由这些语句所获得的封锁在事务提交或回滚后所释放。

系统级:通过调整初始化参数SERIALIZABLE和REO-LOCKING,实例可用非缺省封锁启动。该两参数据的缺省值为:

SERIALIZABLE=FALSE

ORW-LOCKING=ALWAYS

数据库后备和恢复

当我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复。恢复子系统是数据库管理系统的一个重要组成部分。恢复处理随所发生的故障类型所影响的结构而变化。

恢复数据库所使用的结构

ORACLE数据库使用几种结构对可能故障来保护数据:数据库后备、日志、回滚段和控制文件。

数据库后备是由构成ORACLE数据库的物理文件的操作系统后备所组成。当介质故障时进行数据库恢复,利用后备文件恢复毁坏的数据文件或控制文件。

日志,每一个ORACLE数据库实例都提供,记录数据库中所作的全部修改。一

个实例的日志至少由两个日志文件组成,当实例故障或介质故障时进行数据库部分恢复,利用数据库日志中的改变应用于数据文件,修改数据库数据到故障出现的时刻。数据库日志由两部分组成:在线日志和归档日志。

每一个运行的ORACLE数据库实例相应地有一个在线日志,它与ORACLE后台进程LGWR一起工作,立即记录该实例所作的全部修改。在线日志由两个或多个预期分配的文件组成,以循环方式使用。

归档日志是可选择的,一个ORACLE数据库实例一旦在线日志填满后,可形成在线日志的归档文件。归档的在线日志文件被唯一标识并合成归档日志。

回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值,该信息在数据库恢复过程中用于撤消任何非提交的修改。

控制文件,一般用于存储数据库的物理结构的状态。控制文件中某些状态信息在实例恢复和介质恢复期间用于引导ORACLE。

在线日志

一个ORACLE数据库的每一实例有一个相关联的在线日志。一个在线日志由多个在线日志文件组成。在线日志文件填入日志项,日志项记录的数据用于重构对数据库所作的全部修改。后台进程LGWR以循环方式写入在线日志文件。当当前的在线日志文件写满后,LGWR写入到下一可用在线日志文件当最后一个可用的在线日志文件的检查点已完成时即可使用。如果归档不实施,一个已填满的在线日志文件一当包含该在线日志文件的检查点完成,该文件已被归档后即可使用。在任何时候,仅有一个在线日志文件被写入存储日志项,它被称为活动的或当前在线日志文件,其它的在线日志文件为不活动的在线日志文件。

ORCLE结束写入一在线日志文件并开始写入到另一个在线日志文件的点称为日志开关。日志开关在当前在线日志文件完全填满,必须继续写入到下一个在线日志文件时总出现,也可由DBA强制日志开关。每一日志开关出现时,每一在线日志文件赋给一个新的日志序列号。如果在线日志文件被归档,在归档日志文件中包含有它的日志序列号。

ORACLE后台进程DBWR(数据库写)将SGA中所有被修改的数据库缓冲区(包含提交和未提交的)写入到数据文件,这样的事件称为出现一个检查点。因下列原因实现检查点:

检查点确保将内存中经常改变的数据段块每隔一定时间写入到数据文件。由于DBWR使用最近最少使用算法,经常修改的数据段块从不会作为最近最少使用块,如果检查点不出现,它从不会写入磁盘。

由于直至检查点时所有的数据库修改已记录到数据文件,先于检查点的日志项在实例恢复时不再需要应用于数据文件,所以检查点可加快实例恢复。

虽然检查点有一些开销,但ORACLE既不停止活动又不影响当前事务。由于DBWR不断地将数据库缓冲区写入到磁盘,所以一个检查点一次不必写许多数据块。一个检查点保证自前一个检查点以来的全部修改数据块写入到磁盘。检查点不管填满的在线日志文件是否正在归档,它总是出现。如果实施归档,在LGWR重用在线日志文件之前,检查点必须完成并且所填满的在线日志文件必须被归档。

检查点可对数据库的全部数据文件出现(称为数据库检查点),也可对指定的数据文件出现。下面说明一下什么时候出现检查点及出现什么情况:

在每一个日志开关处自动地出现一数据库检查点。如果前一个数据库检查点正在

处理,由日志开关实施的检查点优于当前检查点。

初始化参数据LOG-CHECKPOINT-INTERVAL设置所实施的数据库检查点,当预定的日志块数被填满后(自最后一个数据库检查点以来),实施一数据库检查点。另一个参数LOG-CHECKPOINT-TIMEOUT可设置自上一个数据库检查点开始之后指定秒数后实施一数据库检查点。这种选择对使用非常大的日志文件时有用,它在日志开头之间增加检查点。由初始化参数所启动的数据库检查点只有在前一个检查点完成后才能启动。

当一在线表空间开始后备时,仅对构成该空间的数据文件实施一检查点,该检查点压倒仍在进行中的任何检查点。

当DBA使一表空间离线时,仅对构成该表空间的在线文件实施一检查点。

当DBA以正常或立即方式关闭一实例时,ORACLE在实例关闭之前实施一数据库检查点,该检查点压倒任何运行检查点。

DBA可要求实施一数据库检查点,该检查点压倒任何运行检查点。

检查点机制:当检查点出现时,检查点后台进程记住写入在线文件的下一日志行的位置,并通知数据库写后台进程将SGA中修改的数据库缓冲区写入到磁盘上的数据文件。然后由CKPT修改全部控制文件和数据文件的标头,反映该最后检查点。当检查点不发生,DBWR当需要时仅将最近最少使用的数据库缓冲区写入磁盘,为新数据准备缓冲区。

镜象在线日志文件:为了安全将实例的在线日志文件镜象到它的在线日志文件ORACLE提供镜象功能。当具有镜象在线日志文件时,LGWR同时将同一日志信息写入到多个同样的在线日志文件。日志文件分成组,每个组中的日志文件称为成员,每个组中的全部成员同时活动,由LGWR赋给相同的日志序列号。如果使用镜象在线日志,则可建立在线日志文件组,在组中的每一成员要求是同一大小。

镜象在线日志的机制:LGWR总是寻找组的全部成员,对一组的全部成员并行地写,然后转换到下一组的全部成员,并行地写。

每个数据库实例有自己的在线日志组,这些在线日志组可以是镜象的或不是,称为实例的在线日志线索。在典型配置中,一个数据库实例存取一个ORACLE数据库,于是仅一个线索存在。然而在运行ORACLE并行服务器中,两个或多个实例并行地存取单个数据库,在这种情况下,每个实例有自己的线索。

归档日志

ORACLE要将填满的在线日志文件组归档时,则要建立归档日志,或称离线日志。其对数据库后备和恢复有下列用处:

数据库后备以及在线和归档日志文件,在操作系统或磁盘故障中可保证全部提交的事务可被恢复。

在数据库打开时和正常系统使用下,如果归档日志是永久保持,在线后备可以进行和使用。

如果用户数据库要求在任何磁盘故障的事件中不丢失任何数据,那么归档日志必须要存在。归档已填满的在线日志文件可能需要DBA执行额外的管理操作。归档机制:决定于归档设置,归档已填满的在线日志组的机制可由ORACLE后台进程ARCH自动归档或由用户进程发出语句手工地归档。当日志组变为不活动、日志开关指向下一组已完成时,ARCH可归档一组,可存取该组的任何或全

部成员,完成归档组。在线日志文件归档之后才可为LGWR重用。当使用归档时,必须指定归档目标指向一存储设备,它不同于个有数据文件、在线日志文件和控制文件的设备,理想的是将归档日志文件永久地移到离线存储设备、如磁带。数据库可运行在两种不同方式下:NOARCHIVELOG方式或ARCHIVELOG方式。数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档。在该数据库控制文件指明填满的组不需要归档,所以一当填满的组成为活动,在日志开关的检查点完成,该组即可被LGWR重用。在该方式下仅能保护数据库实例故障,不能保护介质(磁盘)故障。利用存储在在线日志中的信息,可实现实例故障恢复。

如果数据库在ARCHIVELOG方式下,可实施在线日志的归档。在控制文件中指明填满的日志文件组在归档之前不能重用。一旦组成为不活动,执行归档的进程立即可使用该组。

在实例起动时,通过参数LOG-ARCHIVE-START设置,可启动ARCH进程,否则ARCH进程在实例启动时不能被启动。然而DBA在凭借时候可交互地启动或停止自动归档。一旦在线日志文件组变为不活动时,ARCH进程自动对它归档。

如果数据库在ARCHIVELOG方式下运行,DBA可手工归档填满的不活动的日志文件组,不管自动归档是可以还是不可以。

数据库后备

不管为ORACLE数据库设计成什么样的后备或恢复模式,数据库数据文件、日志文件和控制文件的操作系统后备是绝对需要的,它是保护介质故障的策略部分。操作系统后备有完全后备和部分后备

完全后备:一个完全后备将构成ORACLE数据库的全部数据库文件、在线日志文件和控制文件的一个操作系统后备。一个完全后备在数据库正常关闭之后进行,不能在实例故障后进行。在此时,所有构成数据库的全部文件是关闭的,并与当前点相一致。在数据库打开时不能进行完全后备。由完全后备得到的数据文件在任何类型的介质恢复模式中是有用的。

部分后备

部分后备为除完全后备外的任何操作系统后备,可在数据库打开或关闭下进行。如单个表空间中全部数据文件后备、单个数据文件后备和控制文件后备。部分后备仅对在ARCHIVELOG方式下运行数据库有用,因为存在的归档日志,数据文件可由部分后备恢复。在恢复过程中与数据库其它部分一致。

数据库恢复

实例故障的恢复

当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM ABORT 语句)中止时出现实例故障,此时需要实例恢复。实例恢复将数据库恢复一故障之前的事务一致状态。如果在在线后备发现实例故障,则需介质恢复。在其它情况ORACLE在下次数据库起动时(对新实例装配和打开),自动地执行实例恢复。如果需要,从装配状态变为打开状态,自动地激发实例恢复,由下列处理:为了解恢复数据文件中没有记录的数据,进行向前滚。该数据记录在在线日志,包括对回滚段的内容恢复。

回滚未提交的事务,按步1重新生成回滚段所指定的操作。

释放在故障时正在处理事务所持有的资源。

解决在故障时正经历一阶段提交的任何悬而未决的分布事务。

介质故障的恢复

介质故障是当一个文件、一个文件的部分或一磁盘不能读或不能写时出现的故障。介质故障的恢复有两种形式,决定于数据库运行的归档方式。

如果数据库是可运行的,以致它的在线日志仅可重用但不能归档,此时介质恢复为使用最新的完全后备的简单恢复。在完全后备执行的工作必须手工地重作。如果数据库可运行,其在线日志是被归档的,该介质故障的恢复是一个实际恢复过程,重构受损的数据库恢复到介质故障前的一个指定事务一致状态。

不管哪种形式,介质故障的恢复总是将整个数据库恢复到故障之前的一个事务一致状态。如果数据库是在ARCHIVELOG方式运行,可有不同类型的介质恢复:完全介质恢复和不完全介质恢复。

完全介质恢复可恢复全部丢失的修改。仅当所有必要的日志可用时才可能。有不同类型的完全介质恢复可使用,其决定于毁坏文件和数据库的可用性。例:

关闭数据库的恢复。当数据库可被装配却是关闭的,完全不能正常使用,此时可进行全部的或单个毁坏数据文件的完全介质恢复。

打开数据库的离线表空间的恢复。当数据库是打开的,完全介质恢复可以处理。未损的数据库表空间是在线的可以使用,而受损耗捕空间是离线的,其所有数据文件作为恢复的单位。

打开数据库的离线表间的单个数据文件的恢复。当数据库是打开的,完全介质恢复可以处理。未损的数据库表空间是在线的可以使用,而所损的表空间是离线的,该表空间的指定所损的数据文件可被恢复。

使用后备的控制文件的完全介质恢复。当控制文件所有拷贝由于磁盘故障而受损时,可进行介质恢复而不丢失数据。

不完全介质恢复是在完全介质恢复不可能或不要求时进行的介质恢复。重构受损的数据库,使其恢复介质故障前或用户出错之前的一个事务一致性状态。不完全介质恢复有不同类型的使用,决定于需要不完全介质恢复的情况,有下列类型:基于撤消、基于时间和基于修改的不完全恢复。

基于撤消恢复:在某种情况,不完全介质恢复必须被控制,DBA可撤消在指定点的操作。基于撤消的恢复地在一个或多个日志组(在线的或归档的)已被介质故障所破坏,不能用于恢复过程时使用,所以介质恢复必须控制,以致在使用最近的、未损的日志组于数据文件后中止恢复操作。

基于时间和基于修改的恢复:如果DBA希望恢复到过去的某个指定点,不完全介质恢复地理想的。可在下列情况下使用:

当用户意外地删除一表,并注意到错误提交的估计时间,DBA可立即关闭数据库,恢复它到用户错误之前时刻。

由于系统故障,一个在线日志文件的部分被破坏,所以活动的日志文件突然不可使用,实例被中止,此时需要介质恢复。在恢复中可使用当前在线日志文件的未损部分,DBA利用基于时间的恢复,一旦有将效的在线日志已应用于数据文件后停止恢复过程。

在这两种情况下,不完全介质恢复的终点可由时间点或系统修改号(SCN)来指定。

数据库安全设计与分析

井冈山大学 《网络安全课程设计报告》 选题名称数据库的安全与分析 学院电子与信息工程 专业网络工程 班级网络工程13本(1) 姓名何依 学号130913029 日期2016.10.08

目录 一、背景与目的 (3) 二、实施方案概要 (3) 1、用户权限 (3) 2、访问权限 (3) 3、再次校对 (4) 4、登录 (4) 三、技术与理论 (4) 1、三层式数据访问机制 (4) 2、数据加密处理机制 (4) 3、数据库系统的安全策略: (5) 四、课程设计实施 (6) 1、第一步 (6) 2、第二步 (8) 3、第三步 (9) 4、第四步 (10) 5、第五步 (11) 五、课程设计结果分析 (11) 六、总结 (12)

一、背景与目的 无论是从十大酒店泄露大量开房信息,到工商银行的快捷支付漏洞导致用户存款消失,这一种种触目惊心的事件表明数据库的安全性能对于整个社会来说是十分重要的,数据库安全是对顾客的权益的安全保障,也是国家、企业以及更多的人的安全保障,从而数据库的安全性非常值得重视。 对于数据库的安全我将进行以下分析,旨在了解更多的数据库安全技术和对常见的数据库攻击的一些防范措施,并借鉴到今后的实际开发项目中去,更好的保护客户的权益。 二、实施方案概要 本次的数据库主要基于我们比较熟悉的SQLSever进行。 为了保障用户的数据的存储安全,保障数据的访问安全,我们应该对拘束看的用户采取监控的机制,分布式的处理各种应用类型的数据即采取三层式数据库连接的机制。 1、用户权限 当一个数据库被建立后,它将被指定给一个所有者,即运行建立数据库语句的用户。通常,只有所有者(或者超级用户)才能对该数据库中的对象进行任何操作,为了能让其它用户使用该数据库,需要进行权限设置。应用程序不能使用所有者或者超级用户的账号来连接到数据库,因为这些用户可以执行任何查询,例如,修改数据结构(如删除表格)或者删除所有的内容,一旦发生黑客事件数据库的安全将会岌岌可危。 2、访问权限 可以为应用程序不同的部分建立不同的数据库账号,使得它们职能对数据库对象行使非常有限的权限。对这些账号应该只赋予最需要的权限,同时应该防止相同的用户能够在不同的使用情况与数据库进行交流。这也就是说,如果某一个入侵者利用这些账号中的某一个获得了访问数据库的权限,他们也仅仅能够影响

数据库安全性和完整性实验

实验9:数据库安全性实验 一、实验目的 加深对数据库安全性的理解,并掌握SQL Server中有关用户、角色及操作权限的管理方法。 二、实验内容 1.数据库的安全性实验。在SQL Server企业管理器中,设置SQL Server 的安全认证模式,实现对SQL Server的用户和角色的管理,设置和管理 数据操作权限。 三、实验原理和步骤 1.设置SQL Server的安全认证模式,选择混合模式。 右键服务器属性-安全性:选择SQL Server和Windows身份验证模式。 重启服务,生效。 2.账号: sa账号登录 3.登录帐号的管理

1)将Windows帐号添加到SQL Server 2005中 创建操作系统用户- 4.数据库用户的管理 1)dbo用户; 查看banking数据库的dbo用户,查看用户权限。 2)U1用户; 创建banking数据库的U1用户,查看用户权限。 5.权限管理 1)赋予所创建的U1用户db_datareader角色,查看用户权限 2)赋予所创建的U1用户db_datawriter角色,查看用户权限 3)赋予所创建的U1用户db_owner角色,查看用户权限 4)两种方法赋予所创建的U1用户对banking数据库表customer的select 权限,验证并写出sql语句 5)两种方法赋予所创建的U1用户对banking数据库表branch的select 和对branch_name修改的权限,验证并写出sql语句 6)把对loan表的update权限授予所创建的U1用户用户,并允许将此 权限再授予其他用户,验证并写出sql语句 7)两种方法回收所创建的U1用户对banking数据库表customer的select 权限,验证并写出sql语句 8)两种方法回收所有用户对banking数据库表loan的update权限,验 证并写出sql语句 四、实验报告要求 要求写出如下设计报告: 1.用Transact-SQL写出实验操作的语句 2.实验步骤和实验结果。 3.实验中的问题和提高。 4.SQL Server中有的安全性功能。 五、注意事项 1.用户、角色和权限的职能,以及它们之间的关系。

数据库原理习题与答案 第9章数据库系统恢复和并发控制技术

第九章.数据库系统恢复和并发控制技术 习题: 一.填空题 1.数据库保护包含数据的。 2.是DBMS的基本单位,它是用户定义的一组逻辑一致的程序序列。 3.DBMS的并发控制的主要方法是机制。 4.有两种基本的锁,它们是和。 5.对并发操作若不加以控制,可能带来的不一致性有、和。 6.数据库系统在运行过程中,可能会发生故障,故障主要有、、介质故障和四类。 7.数据库系统是利用存储在外存上其他地方的来重建被破坏的数据库,它主要有两种:和。 二.选择题 1.下面哪个不是数据库系统必须提供的数据控制功能。 A.安全性 B.可移植性 C.完整性 D.并发控制 2.事务的原子性是指。 A.事务中包括的所有操作要么都做,要么都不做 B.事务一旦提交,对数据库的改变是永久的 C.一个事务内部的操作及使用的数据对并发的其他事务是隔离的 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态 3.多用户的数据库系统的目标之一是使它的每个用户好像面对着一个单用户的数据库一样使用它,为此数据库系统必须进行。 A.安全性控制 B.完整性控制 C.并发控制 D.可靠性控制 4.设有两个事务T1、T2,其并发操作如下图所示,下面评价正确的是________。 T1 T2 ①读A=10 ②读A=10 ③A=A-5写回 ④A=A-8写回

A该操作不存在问题B该操作丢失修改 C该操作不能重复读D该操作读“脏”数据 5.若事务T对数据R已加X锁,则其他对数据R 。 A.可以加S锁,不能加X锁 B.不能加S锁,可以加X锁 C.可以加S锁,也可以加X锁 D.不能加任何锁 6.对并发控制不加以控制,可能会带来。 A.不安全 B.死锁 C.死机 D.不一致 7.用来记录对数据库中数据进行的每一次更新操作。 A.后援副本 B.日志文件 C.数据库 D.缓冲区 三.简答题 1.试述事务的概念和事务的四个特性。 2.数据库中为什么要有恢复子系统,它的功能是什么? 3.数据库运行中可能发生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据? 4.数据库恢复的基本技术有哪些? 5.登记日志文件时,为什么必须先写日志文件,后写数据库? 6.在数据库中为什么要并发控制? 7.什么是封锁? 8.基本的封锁有哪几种?试述它们的含义。 9.不同封锁协议与系统一致性级别的关系是什么? 10.请给出预防死锁的若干方法。 11.什么样的并发调度是正确的调度? 12.试述两段锁协议的概念。

数据库的安全性管理

第10章数据库的安全性管理 教学目标: 掌握SQL Sever 的安全机制,了解登录和用户的概念,掌握权限管理和掌握角色管理。通过本章的学习,要求读者深入理解SQL Server 的安全机制,以及掌握常用的管理操作,培养良好的数据库安全意识以及制定合理的数据库安全策略。建立C/S结构的网络数据库概念,锻炼实际数据库管理能力,为今后从事数据库管理员(DBA)的工作奠定基础。 10.1SQL Server 的安全性机制 在介绍安全管理之前,首先看一下SQL Server 是如何保证数据库安全性的,即了解SQL Server 安全机制。 10.1.1 权限层次机制 SQL Server 2005的安全性管理可分为3个等级:1、操作系统级;2、SQL Server 级3、数据库级。 10.1.2 操作系统级的安全性 在用户使用客户计算机通过网络实现SQL Server 服务器的访问时,用户首先要获得计算机操作系统的使用权。 一般说来,在能够实现网络互联的前提下,用户没有必要向运行SQL Server 服务器的主机进行登录,除非SQL Server 服务器就运行在本地计算机上。SQL Server 可以直接访问网络端口,所以可以实现对Windows NT 安全体系以外的服务器及其数据库的访问,操作系统安全性是操作系统管理员或者网络管理员的任务。由于SQL Server 采用了集成Windows NT网络安全性机制,所以使得操作系统安全性的地位得到提高,但同时也加大了管理数据库系统安全性的灵活性和难度。 10.1.3 SQL Server 级的安全性 SQL Server 的服务器级安全性建立在控制服务器登录帐号和口令的基础上。SQL Server 采用了标准SQL Server 登录和集成Windows NT登录两种方式。无论是使用哪种登录方式,用户在登录时提供的登录帐号和口令,决定了用户能否获得SQL Server的访问权,以及在获得访问权以后,用户在访问SQL Server时可以拥有的权利。

实验八 数据库的安全性

实验八数据库的安全 T9.1 数据库用户的管理 1、实验目的 (1)掌握Windows登录名的建立与删除方法。 (2)掌握SQL Server登录名的建立与删除方法。 (3)掌握数据库用户创建于管理的方法。 2、实验准备 (1)了解windows身份验证模式与SQL Server身份验证模式的原理。 (2)了解数据库用户的建立与删除方法。 3、实验步骤 (1)Windows登录名。 ①使用界面方式创建Windows身份模式的登录名。方法如下: 第一步以管理员身份登录到Windows,选择“开始”,打开“控制面板”中的“性能和维护”,选择其中的“管理工具”,双击“计算机管理”进入“计算机管理”窗口。 在该窗口中选择“本地用户和组”中的“用户”图标,右击,在弹出的快捷菜单中选择“新用户”菜单项,打开“新用户”窗口,新建一个用户zheng。 第二步一管理员身份登录到SQL Server Management Studio,在对象资源管理器中选择“安全性”,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单项。在“新建登录名”窗口中单击“搜索”按钮添加Windows用户名zheng。选择“Windows身份验证模式”,单击“确定”按钮完成。 ②使用命令方式创建Windows身份模式的登录名,语句如下: 【思考与练习】 使用用户zheng登录Windows,然后启动SQL Server Management Studio,以Windows 身份验证模式连接。看看与以系统管理员身份登录时有什么不同。 (2)SQL Server登录名。 ①使用界面方式创建SQL Server登录名。方法为:在对象资源管理器的“安全性”中,右击“登录名”,在弹出的快捷菜单中选择“新建登录名”菜单项。在“新建登录名”窗口中输入要创建的登录名“yan”,并选择“SQL Server 身份验证模式”,输入密码,取消选择“用户在下次登录时必须更改密码”选项,单击“确认”按钮。 ②以命令方式创建SQL Server登录名,语句如下:

数据库的安全性实验报告

西安邮电大学 (计算机学院) 课内实验报告 实验:数据库的安全性实验 课程:数据库原理及应用B 班级:网络1203 学号: 学生姓名: 任课教师:孟彩霞

一、实验目的 (1)理解SQL Server验证用户身份的过程,掌握设置身份验证模式的方法(2)理解登录帐号的概念,掌握混合认证模式下登录帐号的建立与取消方法 (3)掌握混合认证模式下数据库用户的建立与取消方法 (4)掌握数据库用户权限的设置方法 (5)理解角色的概念,掌握管理角色技术 二、实验内容 (1)在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 (2)创建、管理数据库服务器的登录账号。 (3)创建、管理数据库用户。 (4)管理用户权限。 (5)创建、管理数据库角色。 三、实验环境 Windows7 SQL SERVER 2012 四、实验前准备 课本 上机使用代码 五、实验步骤 1.在企业管理器中打开“SQL Server属性(配置)”对话框,设置身份验证模式为“SQL Server”和“Windows”模式(即混合模式)。 2.创建、管理数据库服务器的登录账号。用T-SQL语句创建、查看、删除登录账号。 创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。 EXEC sp_addlogin ‘student’,’111’,’JWGL’查看登录账号EXEC sp_helplogins 删除登录账号为EXEC sp_droplogins ‘student’ 3.创建、管理数据库用户。 用T-SQL语句创建、查看、删除数据库用户。 为数据库JWGL创建一个用户user1,该用户登录SQL Server服务器的账号为wang,登录密码为secret,相应的程序代码为: EXEC sp_addlogin ‘wang’, ‘secret’, ‘JWGL’ GO EXEC sp_grantdbaccess ‘wang’, ‘user1’查看数据库用户为EXEC sp_helpuser 删除数据库中的“wang”用户为EXEC sp_revokedbaccess ‘wang’ 4.管理用户权限。 使用T-SQL语句完成第3章习题12中(1)~(3)的用户管理和用户权限管理。企业管理器: (1)允许用户李明对Orders表进行插入、删除操作。 GRANT INSERT ,DELETE ON Orders TO ‘李明’

实验五 SQL SERVER 完整性与安全性 实验报告

实验五SQL SERVER 完整性与安全性 一、实验目的 掌握SQL SERVER数据访问控制策略和技术,SQL SERVER数据库管理系统使用安全帐户认证控制用户对服务器的连接,使用数据库用户和角色等限制用户对数据库的访问。 二、实验内容 1.在服务器级别上创建三个以SQL Server身份验证的登录名,登录名称自定。 2.分别为三个登录名在“gongcheng”数据库映射三个数据库用户,数据库用户名为Tom,Mary和John,使这三个登录名可以访问“gongcheng”数据库。

3.授予用户John创建表和视图的权限。 grant create table,create view to John 在“gongcheng”下,安全性—John—属性,选择安全对象,搜索特定对象,选择“gongcheng”表,在权限中选择“创建表”和“创建视图”, 如图:

即可赋予John“创建表”和“创建视图”的权限。 4.完成以下授权: (1)把对表S的INSERT权力授予用户Tom,并允许他再将此权限授予其他用户。 grant insert on S to tom with grant option (2)用户Mary对S,P,J三个表有SELECT和INSERT权力 grant select,insert on S to Mary grant select,insert on P to Mary grant select,insert on J to Mary (3)用户Tom对SPJ表有DELETE权力,对QTY字段具有UPDA TE权力。 grant delete,update(qty) on spj to Tom

[安全管理,数据库,计算机]计算机数据库安全管理分析与研究

计算机数据库安全管理分析与研究 摘要:现阶段我国计算机数据库和网络信息技术迎来蓬勃发展趋势,可关于数据库被非法侵入以及内部关键性数据丢失问题依旧未能根除,直接限制今后大规模网络信息系统建设进度。在此类背景下,笔者决定针对目前我国网络环境中数据库面临的一切安全威胁,加以客观论证,同时结合最新技术手段和实践经验制定妥善的数据库安全维护方案,最终开拓电子商务业务的企业获得长效发展机遇,真正为我国综合竞争实力绽放,提供保障。 关键词:计算机数据库安全管理指令内容验证解析 前言:计算机数据库内部储存大量信息,依照不同路径将挖掘的信息,直接传递给指令发送终端,该类系统独立性显著,并且和其余结构单元有着本质性差异。事实上,大多数企业和电子空间,都开始将自身核心业务转移到网络数据库之中,使得地理过于分散的厂商和公司之间的数据收集、存储、传播模式,顺利地朝着分布式、开放式过渡转化,不过涉及当中的系统介入和数据盗用等安全性问题却是始终延续。这就需要相关技术人员在完整论述计算机数据库面临的威胁因素基础上,主动透过计算机操作系统、数据库注入防护等层面,进行灵活地调试方案规划整理,进一步为日后计算机数据库安全管理绩效绽放,奠定基础。 一、关于计算机数据库安全管理的必要性论述 1.计算机数据库模型的科学组建 计算机数据库运作的核心便是后台数据库,其一切访问操作功能都将交由前台程序提供支持,尤其是在网络空间之下,数据库为关键性信息共享应用提供最小冗余度和访问控制条件,尽量保证终端最终接收过程中不会产生丢失迹象。关于这部分模型具体可划分出三个层次,包括数据库、应用服务器和浏览器等。当中浏览器作为第一层客户端,更加方便用户随时输入信息,此时代码快速转化为网页并提供交互功能,将操作主体一切请求处理完毕。位于二层的应用服务器则是扮演后台角色,利用对应的进程予以开启,保证快速响应不同请求,顺势生成必要性代码处理相关结果,如若说数据存取正好落在客户端请求范畴之中,数据库服务器则必须联合二层结构单元,进行特定请求回应。而最终层数据库服务器,则针对内部关键性数据提供严格的保护管制,对于不同类型的应用服务器当下发出请求加以轻松协调。 2.计算机数据库安全性的系统化论证 针对计算机数据库安全性加以细致验证解析。这是信息管理系统的核心任务,任何细节处理不当,都会直接限制最终数据安全管制实效,毕竟大部分关键性数据都是在数据库服务器之上捆绑,包括财务、工程技术、战略性决策数据等,都是归属于机密信息范畴内部的,杜绝一切非法访问操作行为。再就是企业内部资源规划、对外交易、日常业务的交接等,也都深刻依靠网络数据库过渡转接,所以说这部分数据的安全管理,也是十分重要的。 二、针对计算机数据库加以科学安全管理的策略内容解析 1.树立全新的计算机信息安全管理理念

数据库安全性与完整性实验

数据库原理及应用 实验报告 题目:数据库安全性与完整性实验 专业:网络工程 班级: 学号: 姓名: 太原工业学院计算机工程系 2016年10 月15日一、实验目的与要求 目的: 使学生加深对数据安全性与完整性实验的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法,熟悉通过SQL语句副i数据进行完整性控制。 要求: 1.数据库的安全性实验,在SQL Server企业管理器中设置SQL server的安全认证模式,实现对SQL server的用户和角色管理,设置和管理数据操作权限。 2.指出用户和角色的区别 二、实验内容 1.设置SQL server的安全认证模式(windows或SQL server和Windows(s)认证模式)、。 2.登陆的管理 创建一个登录用户 3.数据库用户的管理 登录用户只有成为数据库(Database User)后才能访问数据库。每个数据库的用户信息都存放在系统表Sysusers中,通过查看Sysusers表可以看到该数据库所有用户的情况。SQL Server的数据库中都有两个默认用户:dbo(数据库拥有者用户)和(dba)。通过系统存储过程或企业管理器可以创建新的数据库用户。 4.角色的管理 创建一个角色,使创建的用户成为该角色的成员,并授予一定的操作权限。 5.在学生表中定义主键、外键约束 6.在课程表的“课程名”字段上定义唯一约束 7.在选课表的“成绩”字段上定义check约束,使之必须大于等于0且小于等于100. “课程号”字段只能输入数字字符 8.定义规则,并绑定到学生表的“性别”字段,使之只能取“男、女”值 9.在学生表中增加出生年月字段,定义缺省,并绑定到学生表的出生日期上,使之只能取当前日期。

第八章 数据库并发控制练习和答案教学内容

第八章数据库并发控制 一、选择题 1.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。 A. 完整性控制 B. 访问控制 C. 安全性控制 D. 并发控制 2. 解决并发操作带来的数据不一致问题普遍采用()技术。 A. 封锁 B. 存取控制 C. 恢复 D. 协商 3.下列不属于并发操作带来的问题是()。 A. 丢失修改 B. 不可重复读 C. 死锁 D. 脏读 4.DBMS普遍采用()方法来保证调度的正确性。 A. 索引 B. 授权 C. 封锁 D. 日志 5.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放, 这是()。 A. 一级封锁协议 B. 二级封锁协议 C. 三级封锁协议 D. 零级封锁协议 6.如果事务T获得了数据项Q上的排他锁,则T对Q()。 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读也不能写 7.设事务T1和T2,对数据库中地数据A进行操作,可能有如下几种情况, 请问哪一种不会发生冲突操作()。 A. T1正在写A,T2要读A B. T1正在写A,T2也要写A C. T1正在读A,T2要写A D. T1正在读A,T2也要读A 8.如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。 A. 一个是DELETE,一个是SELECT B. 一个是SELECT,一个是DELETE C. 两个都是UPDATE D. 两个都是SELECT 9.在数据库系统中,死锁属于()。 A. 系统故障 B. 事务故障 C. 介质故障 D. 程序故障 二、简答题 1. 在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。 当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2. 并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏”数据。

数据库安全性控制

第四章数据库安全性控制(习题集) 二、选择题 1、以下(D)不属于实现数据库系统安全性的主要技术和方法。 A. 存取控制技术 B. 视图技术 C. 审计技术 D. 出入机房登记和加锁 2、SQL中的视图提高了数据库系统的(D)。 A. 完整性 B. 并发控制 C. 隔离性 D. 安全性 3、SQL语言的GRANT和REMOVE语句主要是用来维护数据库的(C)。 A. 完整性 B. 可靠性 C. 安全性 D. 一致性 4、在数据库的安全性控制中,授权的数据对象的(A),授权子系统就越灵活。 A. 范围越小 B. 约束越细致 C. 范围越大 D. 约束范围大 5、SQL中的视图机制提高了数据库系统的( D )。 A.完整性 B.并发控制 C.隔离性 D.安全性 6、SQL语言的GRANT和REVOKE语句主要是用来维护数据库的(C )。 A.完整性 B.可靠性 C.安全性 D.一致性 7 、安全性控制的防范对象是(B),防止他们对数据库数据的存取。 A.不合语义的数据 B.非法用户 C.不正确的数据 D.不符合约束数据 8、找出下面SQL 命令中的数据控制命令( A )。 A.GRANT B.COMMIT C.UPDATE D.SELECT 三、填空题 1、数据库的安全性是指保护数据库以防止不合法的使用所造成的_数据泄露、数据更改或数据破坏_。 2、完整性检查和控制的防范对象,防止它们进入数据库。安全性控制的防范对象是,防止他们对数据库数据的存取。 3、计算机系统有三类安全性问题,即_技术安全_ 、_管理安全_和 _政策法规_。 4、用户标识和鉴别的方法有很多种,而且在一个系统中往往是多种方法并举,以获得更强的安全性。常用的方法有通过输入_用户标识__和 _口令_来鉴别用户。 5、用户权限是由两个要素组成的:_数据对象_ 和 _操作类型_ 。 6、在数据库系统中,定义存取权限称为_授权_ 。SQL语言用_GRANT_语句向用户授予对数据的操作权限,用_REVOKE_语句收回授予的权限。 7、数据库角色是被命名的一组与_数据库操作_ 相关的权限,角色是__权限_的集合。 8、数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现;存取控制机制主要包括两部分:(1)、定义用户权限,并将用户权限登记到数据字典中,(2)、合法权限检查。 9、常用的数据库安全控制的方法和技术有用户标识与鉴别、存取控制、视图机制、审计和数据加密等。 9、在存取控制机制中,定义存取权限称为授权;在强制存取控制(MAC)中,仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取对应的客体;仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。 四、简答题 1、试述实现数据库安全性控制的常用方法和技术。 答:实现数据库安全性控制的常用方法和技术有: 1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。

数据库安全性练习题和答案

数据库安全性习题 一、选择题 1. 以下()不属于实现数据库系统安全性的主要技术和方法。 A. 存取控制技术 B. 视图技术 C. 审计技术 D. 出入机房登记和加锁 2. SQL中的视图提高了数据库系统的()。 A. 完整性 B. 并发控制 C. 隔离性 D. 安全性 3. SQL语言的GRANT和REVOKE语句主要是用来维护数据库的()。 A. 完整性 B. 可靠性 C. 安全性 D. 一致性 4. 在数据库的安全性控制中,授权的数据对象的(),授权子系统就越灵活。 A. 范围越小 B. 约束越细致 C. 范围越大 D. 约束范围大 三、简答题 1. 什么是数据库的安全性? 答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 数据库安全性和计算机系统的安全性有什么关系?2.

答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。 系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的, 3.试述实现数据库安全性控制的常用方法和技术。 答:实现数据库安全性控制的常用方法和技术有: 1)用(户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。例如C2级中的自主存取控制(DAC),B1级中的强制存取控制(MAC); 3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。 4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中, DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 从而使得对存储和传输的数据进行加密处理,数据加密:5)

浅析数据库安全性控制的一般方法

数据库安全性控制的一般方法 数据库安全性控制的一般方法(SQL采取DAC控制用户的存取权限) 数据库的安全性是指保护数据库,以防止不合法的使用造成的数据泄密、更改或破坏。数据库管理系统安全性保护,就是通过种种防范措施以防止用户越权使用数据库。安全保护措施是否有效是衡量数据库系统的主要性能指标之一。 9.1 数据库安全性控制的一般方法 9.1.1 安全性级别 对数据库不合法的使用称为数据库的滥用。数据库的滥用可分为无意滥用和恶意滥用。无意滥用主要是指经过授权的用户操作不当引起的系统故障、数据库异常等现象。恶意滥用主要是指未经授权的读取数据(即偷窃信息)和未经授权的修改数据(即破坏数据)。 数据库的完整性尽可能的避免对数据库的无意滥用。数据库的安全性尽可能避免对数据库的恶意滥用。 为了防止数据库的恶意滥用,可以在下述不同的安全级别上设置各种安全措施。 (1)环境级:对计算机系统的机房和设备加以保护,防止物理破坏。 (2)职员级:对数据库系统工作人员,加强劳动纪律和职业道德教育,并正确的授予其访问数据库的权限。 (3)操作系统级:防止未经授权的用户从操作系统层着手访问数据库。 (4)网络级:由于数据库系统允许用户通过网络访问,因此,网络软件内部的安全性对数据库的安全是很重要的。 (5)数据库系统级:检验用户的身份是否合法,检验用户数据库操作权限是否正确。

本节主要讨论数据库系统级的安全性问题。 9.1.2 数据库安全控制的一般方法 数据库系统中一般采用用户标识和鉴别、存取控制、视图以及密码存储等技术进行安全控制。 1( 标识与鉴别 用户标识和鉴别是DBMS提供的最外层保护措施。用户每次登录数据库时都要输入用户标识,DBMS进行核对后,对于合法的用户获得进入系统最外层的权限。用户标识和鉴别的方法很多,常用的方法有: (1)身份(Identification)认证 用户的身份,是系统管理员为用户定义的用户名(也称为用户标识、用户账号、用户ID),并记录在计算机系统或DBMS中。用户名是用户在计算机系统中或DBMS中的惟一标识。因此,一般不允许用户自行修改用户名。 身份认证,是指系统对输入的用户名与合法用户名对照,鉴别此用户是否为合法用户。若是,则可以进入下一步的核实;否则,不能使用系统。 (2) 口令(Password)认证 用户的口令,是合法用户自己定义的密码。为保密起见,口令由合法用户自己定义并可以随时变更。因此,口令可以认为是用户私有的钥匙。口令记录在数据库中。 口令认证是为了进一步对用户核实。通常系统要求用户输入口令,只有口令正确才能进入系统。为防止口令被人窃取,用户在终端上输入口令时,口令的内容是不显示的,在屏幕上用特定字符(用“*”或“?”的较为常见)替代。 (3)随机数运算认证 随机数认证实际上是非固定口令的认证,即用户的口令每次都是不同的。鉴别时系统提供一个随机数,用户根据预先约定的计算过程或计算函数进行计算,并将

数据库系统原理教程课后习题及答案(第十章)

第11章并发控制 1 .在数据库中为什么要并发控制? 答:数据库是共享资源,通常有许多个事务同时在运行。当多个事务并发地存取数据库时就会产生同时读取和/或修改同一数据的情况。若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性。所以数据库管理系统必须提供并发控制机制。 2 .并发操作可能会产生哪几类数据不一致?用什么方法能避免各种不一致的情况? 答:并发操作带来的数据不一致性包括三类:丢失修改、不可重复读和读“脏’夕数据。( l )丢失修改(lost update ) 两个事务Tl 和T2读入同一数据并修改,T2提交的结果破坏了(覆盖了)Tl 提交的结果,导致Tl 的修改被丢失。( 2 )不可重复读(Non 一Repeatable Read ) 不可重复读是指事务Tl 读取数据后,事务几执行更新操作,使Tl 无法再现前一次读取结果。( 3 )读“脏”数据(Dirty Read ) 读“脏’夕数据是指事务Tl 修改某一数据,并将其写回磁盘,事务几读取同一数据后,Tl 由于某种原因被撤销,这时Tl 已修改过的数据恢复原值,几读到的数据就与数据库中的数据不一致,则几读到的数据就为“脏”数据,即不正确的数据。避免不一致性的方法和技术就是并发控制。最常用的技术是封锁技术。也可以用其他技术,例如在分布式数据库系统中可以采用时间戳方法来进行并发控制。 3 .什么是封锁?基本的封锁类型有几种?试述它们的含义。 答:封锁就是事务T 在对某个数据对象例如表、记录等操作之前,先向系统发出请求,对其加锁。加锁后事务T 就对该数据对象有了一定的控制,在事务T 释放它的锁之前,其他的事务不能更新此数据对象。封锁是实现并发控制的一个非常重要的技术。 基本的封锁类型有两种:排它锁(Exclusive Locks ,简称x 锁)和共享锁( Share Locks,简称S 锁)。排它锁又称为写锁。若事务T 对数据对象A 加上X 锁,则只允许T 读取和修改A ,其他任何事务都不能再对A 加任何类型的锁,直到T 释放A 上的锁。这就保证了其他事务在T 释放A 上的锁之前不能再读取和修改A 。共享锁又称为读锁。若事务T 对数据对象A 加上S 锁,则事务T 可以读A但不能修改A ,其他事务只能再对A 加S 锁,而不能加X 锁,直到T 释放A 上的S 锁。这就保证了其他事务可以读A ,但在T 释放A 上的S 锁之前不能对A 做任何修改。 4 .如何用封锁机制保证数据的一致性? 答:DBMS 在对数据进行读、写操作之前首先对该数据执行封锁操作,例如下图中事务Tl 在对A 进行修改之前先对A 执行xock ( A ) ,即对A 加x 锁。这样,当几请求对A 加x 锁时就被拒绝,几只能等待Tl 释放A 上的锁后才能获得对A 的x 锁,这时它读到的A 是Tl 更新后的值,再按此新的A 值进行运算。这样就不会丢失Tl 的更新。

数据库系统安全性分析与实现

数据库系统安全性分析与实现 (刘中胜信息系统项目管理师,高级项目经理) 摘要:随着信息技术的不断发展,各行企业都不同程度地实现了信息化,因而信息系统的应用非常普及,作为信息系统的重要组成部分---数据库系统也就成为重中之重。数据库系统在运行过程中,会受到软件、硬件、人为和自然灾害等各种因素的影响,这些因素不但会破坏数据的机密性、完整性、可用性,造成数据损坏或丢失,而且会影响数据库系统的正常运行,甚至导致数据库系统的崩溃,因此,数据库系统的安全性问题变得尤为突出,不断面临巨大的、新的挑战。本文将从数据库系统的安全属性及安全技术进行分析,探讨实现数据库系统的高安全性策略。 关键字:数据库系统;数据库技术;安全性;安全策略 随着信息技术的不断发展,各行企业都不同程度地实现了信息化,因而信息系统的应用非常普及,作为信息系统的重要组成部分---数据库系统也就成为重中之重。数据库系统在运行过程中,会受到软件缺陷和故障、硬件损坏和故障,人为非法访问和误操作,以及自然灾害等各种因素的影响,这些因素不但影响数据的安全,而且会影响数据库系统的正常运行,甚至导致数据库系统的崩溃,因此,数据库系统的安全性问题变得尤为突出,不断面临巨大的、新的挑战。如何保证数据的安全,如何保证数据库系统正常安全地运行,是我们在实现企业信息化建设过程中必须认真考虑的问题。下面将从数据库系统的安全属性出发,分析构建数据库系统的安全技术,并阐述实现数据库系统高安全性的策略。 一、数据库系统的安全属性分析 对数据库系统安全属性的分析,是实现数据库安全策略的一个重要环节,是一个数据库系统采用恰当安全策略的前提。数据库系统的安全属性涉及多个方面,从总体上来讲,包括机密性、完整性、可用性、可控性和可审查性等属性。 (1)机密性:防止数据被非法窃取、调用或存取而泄密。数据只能被其相应的合法用户访问或调用。 (2)完整性:防止非法用户对数据进行添加、修改和删除,同时也防止合法用户越权访问对未被授权的数据进行添加、修改和删除,并且能够判断数据是否被修改。

数据库并发控制

数据库是一个共享资源,可以提供多个用户使用。这些用户程序可以一个一个地串行执行,每个时刻只有一个用户程序运行,执行对数据库的存取,其他用户程序必须等到这个用户程序结束以后方能对数据库存取。但是如果一个用户程序涉及大量数据的输入/输出交换,则数据库系统的大部分时间处于闲置状态。因此,为了充分利用数据库资源,发挥数据库共享资源的特点,应该允许多个用户并行地存取数据库。但这样就会产生多个用户程序并发存取同一数据的情况,若对并发操作不加控制就可能会存取和存储不正确的数据,破坏数据库的一致性,所以数据库管理系统必须提供并发控制机制。并发控制机制的好坏是衡量一个数据库管理系统性能的重要标志之一。 DM用封锁机制来解决并发问题。它可以保证任何时候都可以有多个正在运行的用户程序,但是所有用户程序都在彼此完全隔离的环境中运行。 一、并发控制的预备知识 (一) 并发控制概述 并发控制是以事务(transaction)为单位进行的。 1. 并发控制的单位――事务 事务是数据库的逻辑工作单位,它是用户定义的一组操作序列。一个事务可以是一组SQL 语句、一条SQL语句或整个程序。 事务的开始和结束都可以由用户显示的控制,如果用户没有显式地定义事务,则由数据库系统按缺省规定自动划分事务。 事务应该具有4种属性:原子性、一致性、隔离性和持久性。 (1)原子性 事务的原子性保证事务包含的一组更新操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或者全不做,不能部分的完成。这一性质即使在系统崩溃之后仍能得到保证,在系统崩溃之后将进行数据库恢复,用来恢复和撤销系统崩溃处于活动状态的事务对数据库的影响,从而保证事务的原子性。系统对磁盘上的任何实际数据的修改之前都会将修改操作信息本身的信息记录到磁盘上。当发生崩溃时,系统能根据这些操作记录当时该事

数据库系统概论第5版课后答案第4章数据库安全性

第4章数据库安全性 1.什么是数据库的安全性? 答:数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 2.数据库安全性和计算机系统的安全性有什么关系? 答:安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。系统安全保护措施是否有效是数据库系统的主要指标之一。 数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。 CC评估保证级(EAL)的划分 4.试述实现数据库安全性控制的常用方法和技术。 答:实现数据库安全性控制的常用方法和技术有:

1)用户标识和鉴别:该方法由系统提供一定的方式让用户标识自己的名字或身份。每次用 户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。 2)存取控制:通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有 未被授权的人员无法存取数据。例如CZ 级中的自主存取控制( DAC ) , Bl 级中的强制存取控制(MAC )。 3)视图机制:为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐 藏起来,从而自动地对数据提供一定程度的安全保护。 4)审计:建立审计日志,把用户对数据库的所有操作自动记录下来放入审计日志中,DBA 可 以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。 5)数据加密:对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知 数据的内容。 5.什么是数据库中的自主存取控制方法和强制存取控制方法? 答:自主存取控制方法:定义各个用户对不同数据对象的存取权限。当用户对数据库访问时首先检查用户的存取权限。防止不合法用户对数据库的存取。 强制存取控制方法:每一个数据对象被(强制地)标以一定的密级,每一个用户也被(强制地)授予某一个级别的许可证。系统规定只有具有某一许可证级别的用户才能存取某一个密级的数据对象。 6.对下列两个关系模式使用GRANT语句完成下列授权功能: 学生(学号,姓名,年龄,性别,家庭住址,班级号) 班级(班级号,班级名,班主任,班长) 1)授予用户U1对两个表的所有权限,并可给其他用户授权。 GRANT ALL PRIVILEGES ON TABLE学生,班级 TO U1 WITH GRANT OPTION ; 2)授予用户U2对学生表具有查看权限,对家庭住址具有更新权限。 GRANT SELECT,UPDATE(家庭住址) ON TABLE学生 TO U2; 3)将对班级表查看权限授予所有用户。 GRANT SELECT ON TABLE 班级 TO PUBLIC; 4)将对学生表的查询、更新权限授予角色R1。 CREATE ROLE R1; GRANT SELECT,UPDATE ON TABLE 学生 TO R1; 5)将角色R1授予用户U1,并且U1可继续授予给其他角色。 GRANT R1 TO U1 WITH ADMIN OPTION;称,MAX(工资),MIN(工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号=部门.部门号 GROUP BY 职工.部门号; GRANT SELECT ON 部门工资 TO 杨兰; 7.针对习题7 中1)~7)的每一种情况,撤销各用户所授予的权限。 1)REVOKE SELECT ON TABLE职工,部门 FROM 王明; 2)REVOKE INSERT , DELETE ON TABLE职工,部门 FROM 李勇; 3)REOVKE SELECT ON TABLE职工WHEN USER ( ) =NAMEFROM ALI; 4)REVOKE SELECT , UPDATE ON TABLE职工FROM 刘星; 5)REVOKE ALTER TABLE ON TABLE职工,部门FROM 张新; 6)REVOKE ALL PRIVILIGES ON TABLE职工,部门FROM 周平;

(安全生产)数据库的安全性与完整性

数据库的安全性和完整性 一、实验目的和要求 1、理解数据库安全性和完整性的概念。 2、掌握SQL Server2000中有关用户、角色及操作权限管理等安全性技术。 3、掌握SQL Server2000中有关约束、规则、默认值的使用等完整性技术。 二、实验内容和步骤 ㈠数据库的安全性 1、SQL Server的安全模式 认证是指来确定登陆SQL SERVER的用户的登陆账号和密码是否正确,以此来验证其是否具有连接SQL SERVER的权限,但是通过认证阶段并不代表能够访问数据,用户只有在获取访问数据库的权限之后才能对服务器上的数据库进行权限许可下的各种操作。 ⑴设置SQL Server的安全认证模式:使用企业管理器来设置,步骤如下: Step1: 展开服务器组,右击需要设置的SQL服务器,在弹出菜单中选择“属性”。 Step2: 在弹出的SQL服务器属性对话框中,选择“安全性”选项卡。 Step3: 选择仅Windows选项(NT/2000验证模式) 或SQL Server和Windows选项(混合模式)。 注:设置改变后,用户必须停止并重新启动SQL Server服务,设置才生效。 如果设置成NT认证模式,则用户在登录时输入一个具体的登陆名时,SQL SERVER将忽略该登录名。 ⑵添加SQL Server账号:若用户没有Windows NT/2000账号,则只能为他建立SQL Server账号。 ①利用企业管理器 Step1: 展开服务器,选择安全性/登录。 Step2: 右击登录文件夹,出现弹出式菜单。 Step3: 在弹出式菜单中选择“新建登录”选项后,就会出现一个登录属性对话框。 step4: 在名称框中输入一个不带反斜杠的用户名,选中SQL Server身份验证单选按钮,并在密码框中输入口令(如下图所示)。

相关主题
文本预览
相关文档 最新文档