Oracle安全性管理_第1页
Oracle安全性管理_第2页
Oracle安全性管理_第3页
Oracle安全性管理_第4页
Oracle安全性管理_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Oracle安全性管理用户与权限管理概述n对于任意一个多用户计算机系统来说,访问和访问安全都是至关重要的。既要允许很多用户访问计算机系统,又要防止未授权的用户访问。nOracle数据库的安全性可以被分成3个层次:n系统安全性系统安全性n数据安全性n网络安全性用户管理n用户与方案在Oracle中,数据库用户和方案是安全的最基本的单元。术语“用户”和“方案”经常互换使用,然而它们是有区别的:n数据库方案定义为数据库对象的集合。n方案的名称就是拥有或控制这些数据库对象集合的用户名称n所有的数据库对象所有的数据库对象,包括表、视图、索引、触发器、Java存储过程、PL/SQL程序包、函数等,都归都归O

2、racle数据库中的某一个用户所有数据库中的某一个用户所有。甚至Oracle的数据字典、系统目录也是名称为sys的方案的一部分。用户管理n默认的数据库用户每个Oracle数据库都有两个默认的数据库用户帐号SYS和SYSTEMnSYS帐号拥有数据字典的基本表和视图.nSYSTEM帐号一般用于创建显示管理信息的表和视图,或被Oracle数据库选项和工具使用的内部表和试图,不要在SYSTEM方案中存储并不用于数据库管理的表.用户管理n建立用户帐号CREATE USER username IDENTIFIED BY password DEFAULT TABLESPACE default_tablesp

3、ace TEMPORARY TABLESPACE temp_tablespace QUOTA 数值数值 K|M|UNLIMITED ON 默认表空间默认表空间 QUOTA 数值数值 K|M|UNLIMITED ON 其他表空间其他表空间 PASSWORD EXPIRE ACCOUNT LOCK|UNLOCKCREATE USER Michael IDENTIFIED BY lincolnnCONNECT sys/password AS sysdbaCONNECT sys/password AS sysdbaCREATE TABLESPACE mytbs01CREATE TABLESPACE m

4、ytbs01DATAFILE e:mytbs01_1.dbf SIZE 5M AUTOEXTEND ON NEXT 3M DATAFILE e:mytbs01_1.dbf SIZE 5M AUTOEXTEND ON NEXT 3M MAXSIZE UNLIMITED;MAXSIZE UNLIMITED;nCREATE USER myuser1 IDENTIFIED BY welcomeCREATE USER myuser1 IDENTIFIED BY welcomeDEFAULT TABLESPACE mytbs01DEFAULT TABLESPACE mytbs01TEMPORARY TAB

5、LESPACE tempTEMPORARY TABLESPACE tempQUOTA 2M ON mytbs01QUOTA 2M ON mytbs01PASSWORD EXPIRE;PASSWORD EXPIRE;用户管理n修改用户帐号口令n删除用户帐号ALTER USER Michael IDENTIFIED BY saraDROP USER Michael如果将如果将Cascade关键字用于关键字用于drop user命令的末尾,则命令的末尾,则在从数据库中删除用户之前,删除用户的所有对象。该在从数据库中删除用户之前,删除用户的所有对象。该关键字不仅可以删除所有的用户对象,而且还可以删除关

6、键字不仅可以删除所有的用户对象,而且还可以删除其他用户模式中对已删除对象表进行引用的约束,使其其他用户模式中对已删除对象表进行引用的约束,使其他用户所拥有的引用了已删除对象的对象无效。他用户所拥有的引用了已删除对象的对象无效。用户管理n用户的默认表空间与临时表空间ALTER USER username DEFAULT TABLESPACE default_tablespace TEMPORARY TABLESPACE temp_tablespace如果不进行指定,则用户的默认表空间为如果不进行指定,则用户的默认表空间为USERS表空表空间;默认的临时表空间是间;默认的临时表空间是TEMP表空间

7、,如果没有创建表空间,如果没有创建TEMP表空间,则表空间,则SYSTEM表空间为用户临时表空间表空间为用户临时表空间用户管理n锁定和解锁用户帐号被锁定的帐号不能进行数据库访问操作ALTER USER username ACCOUNT LOCK|UNLOCK为什么要锁定用户帐号而不是将其删除?用户管理n修改用户的磁盘空间配额 ALTER USER username DEFAULT TABLESPACE default_tablespace QUOTA nn on default_tablespacenDBA可以通过动态性能视图来查看用户在数据库中的活动信息,限制用户对系统资源的使用,以保证数据

8、库的运行安全.nSelect sid,serial#,logon_time,username,machine from v$session;权限管理n除非用户具有执行特定的数据库操作权限,否则,用户既不能与数据库服务器连接,也不能做任何事情n例如:n除非用户具有CREATE SESSION系统权限,否则用户不能与Oracle数据库连接n除非用户具有CREATE TABLE系统权限,否则用户不能在自己的模式中创建表权限管理n在Oracle数据库中,有两类权限有两类权限:对象权限和系统权限。n对象级别权限对象级别权限:指在对象级控制数据库的存取和使用指在对象级控制数据库的存取和使用的机制的机制,即

9、访问其他用户的方案对象的能力即访问其他用户的方案对象的能力.例如例如,用用户可以存取哪个用户方案中的哪个对象户可以存取哪个用户方案中的哪个对象,是否能对该是否能对该对象查询对象查询,插入或更新等插入或更新等.n系统权限系统权限:指在系统级控制数据库的存取和使用的机指在系统级控制数据库的存取和使用的机制制,即执行某种即执行某种SQL语句的能力语句的能力.例如例如:是否能启动是否能启动,停停止数据库止数据库,是否能连接到数据库是否能连接到数据库,是否能创建是否能创建,删除删除,更更改方案对象改方案对象.nDBMS通过权限实现数据库安全保护的过程是通过权限实现数据库安全保护的过程是:nDBA或对象的

10、创建者通过或对象的创建者通过SQL语言的语言的GRANT和和REVOKE语句语句,把授予把授予(回收回收)权限的定义告知权限的定义告知DBMS.nDBMS把授予把授予(回收回收)权限的结果存入权限的结果存入(取出取出)数据字典数据字典.n当用户提出操作请求时当用户提出操作请求时,DBMS根据数据字典中保留的根据数据字典中保留的权限定义进行检查权限定义进行检查,以决定是否可以执行该操作请求以决定是否可以执行该操作请求.n权限可以通过两种方式授予用户权限可以通过两种方式授予用户:n直接授予直接授予:直接将权限授予用户直接将权限授予用户;n间接授予间接授予:先将权限授予角色先将权限授予角色,然后将角

11、色授予然后将角色授予用户用户.权限管理n数据库权限的类型-系统权限系统权限(System Privilege)向用户提供了执行某一种或某一类型的数据库操作的能力,有近100种系统权限。基本的系统权限如表14-1权限管理n系统权限的授予和撤销一般由DBA完成REVOKE sys_priv_1,sys_priv_2.|ALLPRIVILEGES FROM user_1,user_2.|PUBLIC;GRANT sys_priv_1,sys_priv_2.|ALLPRIVILEGES TO user_1,user_2.|PUBLIC WITH ADMIN OPTION;n查看系统权限SELECT *

12、 FROM USER_SYS_PRIVSSELECT * FROM DBA_SYS_PRIVS权限管理n使用系统权限时,需要注意以下几点:n一般情况下,都应该将CREATE SESSION权限授予用户n用户需要CREATE TABLE权限来在自己的模式中创建、修改、删除或查询任何表n如果要删除其他模式中的表,用户必须具有DROP ANY TABLE系统权限nCREATE ANY PROCEDURE允许用户创建、修改、删除或执行任何存储过程、程序包和函数n开发人员一般需要几个系统权限,包括CREATE TABLE,CREATE VIEW,CREATE TYPE等,以创建支持前台应用程序的数据库模

13、式权限管理n数据库权限的类型-对象权限对象权限控制用户是否能在特定数据库对象(如表、视图或存储过程)上执行特定类型的操作对象权限对象权限适用对象适用对象允许的操作允许的操作SELECT表、视图、序列查询UPDATE表、视图或其中的字段更新DELETE表和视图删除行INSERT表、视图或其中的字段插入行EXECUTE存储过程,存储函数与程序包执行PL/SQL存储对象READ目录读取目录INDEX表在表上建立索引REFERENCES表或其中字段在其他表中创建的外键能引用表或表中的字段ALTER表或序列修改表或序列的结构权限管理n对象权限的授予和撤销REVOKE obj_priv_1,obj_pri

14、v_2.|ALLPRIVILEGES ON schema.object(column1,column2) FROM user_1,user_2.|PUBLIC GRANT obj_priv_1,obj_priv_2.|ALLPRIVILEGES ON schema.object(column1,column2) TO user_1,user_2.|PUBLIC WITH GRANT OPTION n查看对象权限ncol GRANTEE format a15 col OWNER format a10 col GRANTOR format a10 col PRIVILEGE format a10

15、select * from user_tab_privs; select * from dba_tab_privs;得到基本表的权限状况n其中:GRANTEE表示接受对象权限的用户OWNER表示表的拥有者GRANTOR为授权用户PRIVILEGE表示对象权限GRANTABLE表示该用户是否能向其他用户授予对象权限权限管理n使用对象权限时需要注意以下几个问题(选学):n如果一个视图引用了其他模式中的表或视图,则该视图的拥有者必须以WITH GRANT OPTION方式获得这些表或视图的权限,才能将该视图的对象权限授予其他用户nSELECT对象权限只能授予整个表而不能授予表中的字段角色与权限管理n

16、数据库角色就是权限的命名集合数据库角色就是权限的命名集合。使用角色可以大大降低用户权限的维护负担。角色可以是对象权限或系统权限的命名集合。数据库管理员只需创建特定的数据库角色,使其反映组织或应用的安全权限,就可以将这些角色赋予用户。n系统内置角色CONNECT,RESOURCE,DBA等角色与权限管理n利用角色进行权限管理权限1权限2权限3角色1角色2用户1用户2用户3角色与权限管理n创建角色如:Create role public_role创建一个公用角色n删除角色CREATE ROLE role_name;DROP ROLE role;对角色授权n将系统权限授予角色n将对象权限授予角色GR

17、ANT sys_priv_1,sys_priv_2.|ALLPRIVILEGES TO role_1,role_2. WITH ADMIN OPTIONGRANT obj_priv_1,obj_priv_2.|ALLPRIVILEGES ON schema.object(column1,column2)|DIRECTORY dir TO role_1,role_2.|PUBLIC WITH GRANT OPTIONGrant create session to public_role with admin option;Connect scott/tiger;Grant select ,ins

18、ert,update on dept to public_role; connect sys/pwdbvtc4 as sysdba;Grant public_role to myuser1;Connect myuser1/welcomeselect * from scott.dept;角色与权限管理n撤销角色的系统权限n撤销角色的对象权限REVOKE sys_priv_1,sys_priv_2.|ALLPRIVILEGES FROM role_1,role_2.;REVOKE obj_priv_1,obj_priv_2.|ALLPRIVILEGES ON schema.object(colum

19、n1,column2)|DIRECTORY dir FROM user_1,user_2. 角色与权限管理n将角色授予用户或其他角色n撤销授予用户或其他角色的角色GRANT role_1,role_2. TO user_1,user_2.|PUBLIC|role_1,role_2 WITH ADMIN OPTION;REVOKE role_1,role_2. FROM user_1,user_2.|PUBLIC|role_1,role_2;n查看角色信息可以通过数据字典视图USER_TAB_PRIVS查看角色拥有的权限如:select * from USER_TAB_PRIVS where g

20、rantee=PUBLIC_ROLE;Oracle中的数据字典概述n数据字典用于存放有关数据库描述信息的数据。比如一个表的创建者信息,创建时间信息,所属表空间信息,用户访问权限信息等。当用户在对数据库中的数据进行操作时遇到困难就可以访问数据字典来查看详细的信息。 概述n基本的数据字典表由sys用户所有,并且保存在system表空间中。用户不能直接访问这些表,只能通过一系列视图访问数据字典表中的信息。数据字典的分类nOracle中的数据字典有静态和动态之分。静态数据字典主要是在用户访问数据字典时不会发生改变的,但动态数据字典是依赖数据库运行的性能的,反映数据库运行的一些内在信息,所以在访问这类数

21、据字典时往往不是一成不变的。 静态数据字典n这类数据字典主要是由表和视图组成,应该注意的是,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成: user_* all_* dba_* 静态数据字典nuser_*该视图存储了关于当前用户所拥有的对象的信息。(即所有在该用户方案下的对象)静态数据字典nall_*该视图存储了当前用户能够访问的对象的信息。(与user_*相比,all_* 并不需要拥有该对象,只需要具有访问该对象的权限即可)静态数据字典ndba_*该视图存储了数据库中所有对象的信息。(前提是当前用户具有访问这些数据库的权

22、限,一般来说必须具有管理员权限)静态数据字典n三者之间存储的数据有重叠,除了访问范围的不同以外,其他均具有一致性。具体来说,数据字典视图是由SYS(系统用户)所拥有的,所以在缺省情况下,只有SYS和拥有DBA系统权限的用户可以看到所有的视图。没有DBA权限的用户只能看到user_*和all_*视图。如果未被授予相关的SELECT权限的话,他们不能看到 dba_*视图。常用user_*视图(目录和对象)nuser_tables视图主要描述当前用户拥有的所有表的信息,主要包括表名、表空间名、簇名等。通过此视图可以清楚了解当前用户可以操作的表有哪些。 SELECT * FROM USER_TABLES常用user_*视图(目录和对象)nuser_objects视图主要描述当前用户拥有的所有对象的信息,对象包括表、视图、存储过程、触发器、包、索引、序列等。该视图比user_tables视图更加全面。 SELECT OBJECT_TYPE,STATUS FROM USER_OBJECTS WHERE OBJECT_NAME=UPPER(package1);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论