《网络连接配置与系统安全概述.ppt》由会员分享,可在线阅读,更多相关《网络连接配置与系统安全概述.ppt(44页珍藏版)》请在金锄头文库上搜索。
1、第3章 网络连接配置 与系统安全,Oracle Net主要功能是在系统中计算机之间建立网络会话和传输数据 客户机和服务器之间 两个服务器之间 配置程序 早期版本:Oracle SQL Net/Net8 Easy Config 9i/10g:Net Configuration Assistant Net Manager Oracle Net是Oracle网络产品的基础,为实现分布式计算和各软件工具集成提供支持,3.1 Oracle Net,典型的C/S结构系统,是驻留在服务器上的一个独立的进程 能够监听指定端口上的使用指定网络连接协议的连接请求 监听进程接收网络中客户机的连接请求并管理传送到服务
2、器的这些请求的通信 监听程序配置文件:listener.ora,1.监听程序,本地管理模式 连接信息存储在网络内每台计算机的tnsnames.ora文件中,2.Oracle Net客户端的配置模式,集中管理模式 连接信息集中存储在目录服务器或Oracle名称服务器中,服务器进程作为监听程序与数据库服务器之间的连接,并代理用户与数据库服务器交互,3.服务器进程,服务器进程可以配置为两种模式 专用服务器模式 共享服务器模式,4.Oracle Net工作原理,5.关于全局数据库名,在一个分布式环境中,多个Oracle数据库可能有相同的数据库名称,此时需要使用全局数据库名以便进行区分 由数据库名db_
3、name和数据库域名db_domain两个初始化参数标识全局数据库名,全局数据库名在监听程序配置文件listener.ora中表示为GLOBAL_DBNAME GLOBAL_DBNAME标示的全局数据库名格式为: 数据库名.数据库域名,需要为每一个数据库例程配置监听信息才能接收到来自客户机的请求,6.服务器监听程序配置,监听程序的配置信息包括 监听的协议地址 支持服务的信息 控制服务器进程运行特征的参数,监听程序配置不当或没有启动监听进程时,客户计算机将不能连接到Oracle服务器,7.Oracle Net客户端配置,需要为客户端应用程序配置连接到服务器端Oracle数据库服务的方法,本地Ne
4、t服务名(主机字符串)是一个描述符,描述了要连接的Oracle服务器和其中的Oracle数据库例程,典型的配置是在客户计算机中建立保存“本地Net服务名”的文件。客户机端Oracle Net通过该文件来解析Oracle网络服务信息,7.Oracle Net客户端配置,重要的关键字 ADDRESS:采用的网络协议和目标主机地址、监听端口 SERVICE_NAME:目标服务器中数据库例程名称 一般对应listener.ora中的GLOBAL_DBNAME SERVER:服务器进程的工作模式 SERVER = DEDICATED,专用服务器模式 SERVER = SHARED,共享服务器模式,ORA
5、CLE_HOMENETWORKADMINtnsnames.ora 可手工配置 或 用工具完成配置,7.Oracle Net客户端配置,如何完成客户端配置 建议使用Net Configuration Assistant完成配置 可手工修改配置 也可使用应用程序的安装程序经过选择服务器、指定数据库名等用程序生成配置文件,客户端配置注意事项 配置完成后应进行登录连接测试确保配置正确 确保操作系统层正确的配置了相关通信协议 确保配置服务器监听程序监听了要使用的通信协议,7.Oracle Net客户端配置,Oracle Net支持的命名方法 本地命名(TNSNAMES) 目录命名(LDAP) 主机命名(
6、HOSTNAME) 轻松连接命名(EZCONNECT),客户端配置概要文件 指定客户机所所要连接服务名的解析方法及优先顺序(从左至右,左边优先),ORACLE_HOMENETWORKADMINsqlnet.ora 手工配置,Oracle 提供用户、角色、同义词、视图、系统特权与对象权限、概要文件等保证Oracle数据库系统及其中数据的安全。,3.2 系统与对象权限管理,数据库系统及其中对象的访问权限一般应由数据库系统管理员(DBA)进行统一管理,Oracle数据库用户权限分类,对象权限 允许用户执行对指定对象(包括表、视图、序列、过程、函数和包)的特定操作。如将数据插入到某个表中、允许检索某个
7、表中数据等,系统特权 允许用户执行特定的系统级操作或在特定的对象类型上执行特定操作。如创建表空间、创建表等,列访问权限 限定用户只能在某个表的某些列上执行INSERT、UPDATE操作或参照引用(REFERENCES)某些列,1.系统特权,CONNECT特权角色用户是权限最低的用户。 权限如下:,Oracle数据库为了简化对系统特权的管理,创建了CONNECT、RESOURCE和DBA三个典型特权角色,登录到Oracle数据库和修改口令 对自己的表执行查询、删除、修改和插入 查询经过授权的其他用户的表和视图数据 插入、修改、删除经过授权的其他用户的表 创建自己拥有的表的视图、同义词 完成经过授
8、权的基于表或用户的数据卸载,1.系统特权,RESOURCE特权角色除了具有CONNECT特权角色的所有权限外,还可以进行下列操作: 创建基表、视图、索引、聚簇和序列 授予和回收其他用户对其数据库对象的存取特权 对自己拥有的表、索引、聚簇等数据库对象的存取活动进行审计,DBA特权角色是系统中的最高级别特权角色,可执行创建用户、导出系统数据等特权操作,1.系统特权,建议 用CREATE SESSION系统特权代替CONNECT特权角色 用CREATE TABLE、CREATE PROCEDURE、CREATE TRIGGER等具体的系统特权来代替RESOURCE特权角色 用SYSOPER和SYSD
9、BA代替DBA特权角色 慎用DBA特权角色,1.系统特权,SYSDBA是系统中级别最高的权限 拥有STARTUP,SHUTDOWN,ALTER DATABASE,CREATE DATABASE,CREATE SPFILE,ARCHIVELOG,RECOVERY和RESTRICTED SESSION等系统特权 该特权身份登录系统时实际上相当于以SYS用户登录数据库,系统特权大多以CREATE、ALTER、DROP、SELECT 、INSERT 、UPDATE、DELETE等DDL或DML语句的字眼开头,代表用户能在系统中执行的操作,1.系统特权,SYSOPER能执行STARTUP,SHUTDOW
10、N,CREATE SPFILE,ALTER DATABASE OPEN/MOUNT/BACKUP,ARCHIVELOG和RECOVERY,RESTRICTED SESSION等系统特权操作,DBA身份用户可以访问DBA_SYS_PRIVS视图查看授予用户的系统特权信息 普通用户可以访问用户视图USER_SYS_PRIVS查看自己获得的系统特权,例3.1 查看用户具有的系统特权。 EXA_03_01.SQL,2.对象权限,共有9种对象权限 插入(INSERT) 删除(DELETE) 更新(UPDATE) 选择(SELECT) 修改(ALTER) 运行(EXECUTE) 参照引用(REFERENC
11、E) 索引(INDEX) 读(READ)/写(WRITE),Oracle提供针对性的对象存取控制权限,创建对象的用户拥有该对象的所有对象权限,无需为对象的拥有者授予对象权限,2.对象权限,表的访问权限 ALTER:修改表定义 DELETE:删除表数据 INDEX:为表创建索引 INSERT:对表进行插入 SELECT:查询 UPDATE:修改数据 REFERENCE:参照表中数据,视图的访问权限 SELECT:查询视图数据 INSERT:通过视图向基表插入数据 UPDATE:通过视图对基表数据进行修改 DELETE:通过视图删除基表数据,2.对象权限,同义词的访问权限:同其对应的对象,存储过程
12、/函数/包/类型的访问权限 EXECUTE:允许执行(或访问),序列的访问权限 ALTER:修改序列的定义 SELECT:使用序列的序列值,目录访问权限 READ:允许读取目录 WRITE:允许在目录中创建文件、写入数据,3.数据库系统特权的授予与回收,WITH ADMIN OPTION:允许得到权限的用户将权限转授其他用户 PUBLIC:表示系统中所有用户(用于简化授权),授予系统特权的语法如下: GRANT system_privilege | role TO user | role | PUBLIC WITH ADMIN OPTION ;,对不同职责用户,应授予不同权限,只有DBA才可以
13、将系统特权授予某个用户,3.数据库系统特权的授予与回收,当系统特权使用WITH ADMIN OPTION选项传递给其他用户时,收回原始用户的系统特权将不会产生级联效应(回收传递授予用户的权限),回收系统特权的语法如下: REVOKE system_privilege | role FROM user | role | PUBLIC ;,系统特权应逐个用户检查和管理,例3.2 数据库系统特权的授予与回收。 EXA_03_02.SQL,4.对象权限的授予与回收,WITH ADMIN OPTION:允许得到权限的用户将权限转授其他用户 PUBLIC:表示系统中所有用户(用于简化授权),对象权限的授权
14、语法如下: GRANT object_privilege | ALL (column_list) ON schema.object TO user | role | PUBLIC WITH GRANT OPTION ;,应只对确实需要该对象访问权限的用户授权 只授予必须的权限,有必要限制ALL的使用,使用对象属主名前缀标识其他用户的对象 用户名.对象名,4.对象权限的授予与回收,CASCADE CONSTRAINTS表示级联删除对象上存在的参照完整性约束 当对象权限使用WITH GRANT OPTION传递给其他用户时,收回原始用户的对象权限将会产生级联效应,其他用户的对象访问权限会被一并收回
15、。,数据库对象权限的回收语法如下: REVOKE object_privilege | ALL ON schema.object FROM user| role | PUBLIC CASCADE CONSTRAINTS ;,例3.3 对象访问权限授予与回收。 EXA_03_03.SQL,5.列访问权限,只有INSERT、UPDATE和REFERENCES作为列访问权限可以在列级授予 数据字典 USER_COL_PRIVS_MADE:授予其它用户的列权限 USER_COL_PRIVS_RECD:获得的列权限,例3.4 列访问权限的授予与查看。 EXA_03_04.SQL,方案(Schema)是数
16、据库对象(如表、视图、序列等)的逻辑组织。,3.3 用户与角色,一般情况下,一个应用(如库存管理)对应一个方案。需要为一个应用创建一个数据库用户,并在该用户下创建这个应用的各种数据库对象,角色是一组相关权限的集合,可简化权限的管理,1.配置身份验证,对于一般用户 Oracle采用基于数据库的身份验证方法 在数据字典中记载用户名、口令等信息,SYS用户身份及SYSDBA、SYSOPER系统特权用户权限很大,可能对数据库进行破坏性操作 有必要针对以DBA身份连接的用户设计专门的身份验证方法,1.配置身份验证,DBA用户身份验证方法 使用操作系统集成的身份验证 通过Oracle口令文件进行验证,初始化参数remote_login_passwordfile NONE:忽略口令文件,通过操作系统进行身份验证 EXCLUSIVE:将使用数据库的口令文件对每个具有权限的用户进行验证 SHARED:多个数据库将共享SYS和INTERNAL口令文件用户 默认值: NONE,1.配置身份验证,通过操作系统验证DBA用户 初始化