|
1.视图 | | | | 视图(View): | 是从一个或多个基本表导出的表。但视图仅是一个定义,视图本身没有数据,不占磁盘空间。视图一经定义就可以和基本表一样被查询,也可以用来定义新的视图,但更新(插、删、改)操作将有一定限制。 | | | | | | | 视图机制使系统具有三个优点:数据安全性、逻辑数据独立性和操作简便性。 视图被用来对无权用户屏蔽数据。用户只能使用视图定义中的数据,而不能使用视图定义外的其他数据,从而保证了数据安全性。 |
2.权限 (1)用户权限 SELECT INSERT DELETE UPDATE REFERENCES:允许用户定义新关系时,引用其他关系的主键作为外键。 USAGE:允许用户使用已定义的域。 (2)授权语句 ①语句格式 GRANT <权限表> ON <数据库元素> TO <用户名表> [WITH GRANT OPTION] ②说明 这里权限表中的权限可以是前面提到的六种权限。 如果权限表中包括全部六种权限,那么可用关键字“ALL PRIVILEGES”代替。 数据库元素可以是关系、视图或域,但是在域名前要加关键字DOMAIN。 短语WITH GRANT OPTION表示获得权限的用户还能获得传递权限,把获得的权限转授给其他用户。 在授权语句中,关键字PUBLIC表示系统中所有目前的和将来可能出现的所有用户。 (3)实例 GRANT SELECT, UPDATE ON S TO WANG WITH GRANT OPTION /* 把对关系S的查询、修改权限授给用户WANG,并且WANG还可以把这些权限转授给其他用户。*/ GRANT INSERT (S#, C#) ON SC TO LOU WITH GRANT OPTION /* 把对关系SC的插入(只能插入S#,C#值)权限授给用户LOU,同时LOU还获得了转授权。*/ GRANT UPDATE (GRADE) ON SC TO WEN /* 把对关系SC的成绩修改权限授给用户WEN。*/ GRANT REFERENCES (CNO) ON C TO BAO WITH GRANT OPTION /* 允许用户BAO建立新关系时,可以引用关系C的主键CNO作为新关系的外键,并有转让权限。*/ GRANT USAGE ON DOMAIN AGE TO CHEN /* 允许用户CHEN使用已定义过的域AGE。*/ (4)回收语句 ①语句格式 REVOKE <权限表> ON <数据库元素> FROM <用户名表> [RESTRICT | CASCADE] ②说明 该语句中带CASCADE,表示回收权限时要引起连锁回收。即用户Ui从用户Uj回收权限时,要把用户Uj转授出去的同样的权限同时回收。如果语句中带RESTRICT,则当不存在连锁回收现象时,才能回收权限,否则系统拒绝回收。 回收语句中“REVOKE”可用“REVOKE GRANT OPTION FOR”代替,其意思是回收转授出去的转让权限,而不是回收转授出去的权限。 ③权限回收的实例 REVOKE SELECT, UPDATE ON S FROM WANG CASCADE /* 该语句表示从用户WANG回收对关系S的查询、修改权限,并且是连锁回收。*/ REVOKE INSERT (S#, C#) ON SC FROM ZHANG RESTRICT /* 如果ZHANG已把获得的插入权限转授给其他用户,那么上述回收语句执行失败,否则回收成功。*/ REVOKE GRANT OPTION FOR REFERENCES (C#) ON C FROM BAO /* 该语句从用户BAO回收对关系C中主键CNO引用的转授权。*/ |
3.角色 (1)角色的概念 在SQL中,用户(User)是实际的人或是访问数据库的应用程序。而角色(Role)是一组具有相同权限的用户,实际上角色是属于目录一级的概念。 (2)用户与角色的关系 ①SQL标准并不包含CREATE USER和DROP USER语句,由具体的系统确定如何创建和撤销用户、如何组成一个合理的用户标识和口令系统。 ②用户和角色之间存在着多对多联系,即一个用户可以参与多个角色,一个角色也可授予多个用户。 ③可以把使用数据库的权限用GRANT语句授予角色,再把角色授予用户,这样用户也就拥有了使用数据库的权限。 ④角色之间可能存在一个角色链。即可以把一个角色授予另一角色,则后一个角色也就拥有了前一个角色的权限。 (3)角色的定义语句 GRANT <权限列表> ON <基本表名或视图名> TO <角色名> GRANT <角色名> TO <用户名> GRANT <角色名> TO <角色名> 用REVOKE语句把权限或角色收回。 |
4.审计 | | | | 审计追踪(Audit Trail): | 用于安全性目的的数据库日志,称为审计追踪(Audit Trail)。 | | | | | | | 审计追踪是一个对数据库作更改(插、删、修)的日志,还包括一些其他信息,如哪个用户执行了更新和什么时候执行的更新等。 如果怀疑数据库被篡改了,那么就开始执行DBMS的审计软件。该软件将扫描审计追踪中某一时间段内的日志,以检查所有作用于数据库的存取动作和操作。当发现一个非法的或未授权的操作时,DBA就可以确定执行这个操作的账号。 |