您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 《Oracle数据库实用教程(第二版)》第03章 网络连接配置与系统安全
Oracle数据库实用教程(第二版)唐远新曲卫平李晓峰等编著中国水利水电出版社2009.6第3章网络连接配置与系统安全OracleNet主要功能是在系统中计算机之间建立网络会话和传输数据客户机和服务器之间两个服务器之间配置程序早期版本:OracleSQLNet/Net8EasyConfig9i/10g:NetConfigurationAssistantNetManagerOracleNet是Oracle网络产品的基础,为实现分布式计算和各软件工具集成提供支持3.1OracleNet典型的C/S结构系统是驻留在服务器上的一个独立的进程能够监听指定端口上的使用指定网络连接协议的连接请求监听进程接收网络中客户机的连接请求并管理传送到服务器的这些请求的通信监听程序配置文件:listener.ora1.监听程序本地管理模式连接信息存储在网络内每台计算机的tnsnames.ora文件中2.OracleNet客户端的配置模式集中管理模式连接信息集中存储在目录服务器或Oracle名称服务器中服务器进程作为监听程序与数据库服务器之间的连接,并代理用户与数据库服务器交互3.服务器进程服务器进程可以配置为两种模式专用服务器模式共享服务器模式4.OracleNet工作原理5.关于全局数据库名在一个分布式环境中,多个Oracle数据库可能有相同的数据库名称,此时需要使用全局数据库名以便进行区分由数据库名db_name和数据库域名db_domain两个初始化参数标识全局数据库名全局数据库名在监听程序配置文件listener.ora中表示为GLOBAL_DBNAMEGLOBAL_DBNAME标示的全局数据库名格式为:数据库名.数据库域名需要为每一个数据库例程配置监听信息才能接收到来自客户机的请求6.服务器监听程序配置监听程序的配置信息包括监听的协议地址支持服务的信息控制服务器进程运行特征的参数监听程序配置不当或没有启动监听进程时,客户计算机将不能连接到Oracle服务器7.OracleNet客户端配置需要为客户端应用程序配置连接到服务器端Oracle数据库服务的方法本地Net服务名(主机字符串)是一个描述符,描述了要连接的Oracle服务器和其中的Oracle数据库例程典型的配置是在客户计算机中建立保存“本地Net服务名”的文件。客户机端OracleNet通过该文件来解析Oracle网络服务信息7.OracleNet客户端配置重要的关键字ADDRESS:采用的网络协议和目标主机地址、监听端口SERVICE_NAME:目标服务器中数据库例程名称一般对应listener.ora中的GLOBAL_DBNAMESERVER:服务器进程的工作模式SERVER=DEDICATED,专用服务器模式SERVER=SHARED,共享服务器模式ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora可手工配置或用工具完成配置7.OracleNet客户端配置如何完成客户端配置建议使用NetConfigurationAssistant完成配置可手工修改配置也可使用应用程序的安装程序经过选择服务器、指定数据库名等用程序生成配置文件客户端配置注意事项配置完成后应进行登录连接测试确保配置正确确保操作系统层正确的配置了相关通信协议确保配置服务器监听程序监听了要使用的通信协议7.OracleNet客户端配置OracleNet支持的命名方法本地命名(TNSNAMES)目录命名(LDAP)主机命名(HOSTNAME)轻松连接命名(EZCONNECT)客户端配置概要文件指定客户机所所要连接服务名的解析方法及优先顺序(从左至右,左边优先)ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora手工配置Oracle提供用户、角色、同义词、视图、系统特权与对象权限、概要文件等保证Oracle数据库系统及其中数据的安全。3.2系统与对象权限管理数据库系统及其中对象的访问权限一般应由数据库系统管理员(DBA)进行统一管理Oracle数据库用户权限分类对象权限允许用户执行对指定对象(包括表、视图、序列、过程、函数和包)的特定操作。如将数据插入到某个表中、允许检索某个表中数据等系统特权允许用户执行特定的系统级操作或在特定的对象类型上执行特定操作。如创建表空间、创建表等列访问权限限定用户只能在某个表的某些列上执行INSERT、UPDATE操作或参照引用(REFERENCES)某些列1.系统特权CONNECT特权角色用户是权限最低的用户。权限如下:Oracle数据库为了简化对系统特权的管理,创建了CONNECT、RESOURCE和DBA三个典型特权角色登录到Oracle数据库和修改口令对自己的表执行查询、删除、修改和插入查询经过授权的其他用户的表和视图数据插入、修改、删除经过授权的其他用户的表创建自己拥有的表的视图、同义词完成经过授权的基于表或用户的数据卸载1.系统特权RESOURCE特权角色除了具有CONNECT特权角色的所有权限外,还可以进行下列操作:创建基表、视图、索引、聚簇和序列授予和回收其他用户对其数据库对象的存取特权对自己拥有的表、索引、聚簇等数据库对象的存取活动进行审计DBA特权角色是系统中的最高级别特权角色,可执行创建用户、导出系统数据等特权操作1.系统特权建议用CREATESESSION系统特权代替CONNECT特权角色用CREATETABLE、CREATEPROCEDURE、CREATETRIGGER等具体的系统特权来代替RESOURCE特权角色用SYSOPER和SYSDBA代替DBA特权角色慎用DBA特权角色1.系统特权SYSDBA是系统中级别最高的权限拥有STARTUP,SHUTDOWN,ALTERDATABASE,CREATEDATABASE,CREATESPFILE,ARCHIVELOG,RECOVERY和RESTRICTEDSESSION等系统特权该特权身份登录系统时实际上相当于以SYS用户登录数据库系统特权大多以CREATE、ALTER、DROP、SELECT、INSERT、UPDATE、DELETE等DDL或DML语句的字眼开头,代表用户能在系统中执行的操作1.系统特权SYSOPER能执行STARTUP,SHUTDOWN,CREATESPFILE,ALTERDATABASEOPEN/MOUNT/BACKUP,ARCHIVELOG和RECOVERY,RESTRICTEDSESSION等系统特权操作DBA身份用户可以访问DBA_SYS_PRIVS视图查看授予用户的系统特权信息普通用户可以访问用户视图USER_SYS_PRIVS查看自己获得的系统特权例3.1查看用户具有的系统特权。EXA_03_01.SQL2.对象权限共有9种对象权限插入(INSERT)删除(DELETE)更新(UPDATE)选择(SELECT)修改(ALTER)运行(EXECUTE)参照引用(REFERENCE)索引(INDEX)读(READ)/写(WRITE)Oracle提供针对性的对象存取控制权限创建对象的用户拥有该对象的所有对象权限,无需为对象的拥有者授予对象权限2.对象权限表的访问权限ALTER:修改表定义DELETE:删除表数据INDEX:为表创建索引INSERT:对表进行插入SELECT:查询UPDATE:修改数据REFERENCE:参照表中数据视图的访问权限SELECT:查询视图数据INSERT:对视图进行插入UPDATE:修改视图数据DELETE:删除视图数据2.对象权限同义词的访问权限:同其对应的对象存储过程/函数/包/类型的访问权限EXECUTE:允许执行(或访问)序列的访问权限ALTER:修改序列的定义SELECT:使用序列的序列值目录访问权限READ:允许读取目录WRITE:允许在目录中创建文件、写入数据3.数据库系统特权的授予与回收WITHADMINOPTION:允许得到权限的用户将权限转授其他用户PUBLIC:表示系统中所有用户(用于简化授权)授予系统特权的语法如下:GRANT{system_privilege|role}TO{user|role|PUBLIC}[WITHADMINOPTION];对不同职责用户,应授予不同权限只有DBA才可以将系统特权授予某个用户3.数据库系统特权的授予与回收当系统特权使用WITHADMINOPTION选项传递给其他用户时,收回原始用户的系统特权将不会产生级联效应(回收传递授予用户的权限)回收系统特权的语法如下:REVOKE{system_privilege|role}FROM{user|role|PUBLIC};系统特权应逐个用户检查和管理例3.2数据库系统特权的授予与回收。EXA_03_02.SQL4.对象权限的授予与回收WITHADMINOPTION:允许得到权限的用户将权限转授其他用户PUBLIC:表示系统中所有用户(用于简化授权)对象权限的授权语法如下:GRANT{object_privilege|ALL}[(column_list)]ONschema.objectTO{user|role|PUBLIC}WITHGRANTOPTION;应只对确实需要该对象访问权限的用户授权只授予必须的权限,有必要限制ALL的使用使用对象属主名前缀标识其他用户的对象用户名.对象名4.对象权限的授予与回收CASCADECONSTRAINTS表示级联删除对象上存在的参照完整性约束当对象权限使用WITHGRANTOPTION传递给其他用户时,收回原始用户的对象权限将会产生级联效应,其他用户的对象访问权限会被一并收回。数据库对象权限的回收语法如下:REVOKE{object_privilege|ALL}ONschema.objectFROM{user|role|PUBLIC}[CASCADECONSTRAINTS];例3.3对象访问权限授予与回收。EXA_03_03.SQL5.列访问权限只有INSERT、UPDATE和REFERENCES作为列访问权限可以在列级授予数据字典USER_COL_PRIVS_MADE:授予其它用户的列权限USER_COL_PRIVS_RECD:获得的列权限例3.4列访问权限的授予与查看。EXA_03_04.SQL方案(Schema)是数据库对象(如表、视图、序列等)的逻辑组织。3.3用户与角色一般情况下,一个应用(如库存管理)对应一个方案。需要为一个应用创建一个数据库用户,并在该用户下创建这个应用的各种数据库对象角色是一组相关权限的集合,可简化权限的管理1.配置身份验证对于一般用户Oracle采用基于数据库的身份验证方法在数据字典中记载用户名、口令等信息SYS用户身份及SYSDBA、SYSOPER系统特权用户权限很大,可能对数据库进行破坏性操作有必要针对以DBA身份连接的用户设计专门的身份验证方法1.配置身份验证DBA用户身份验证方法使用操作系统集成的身份验证通过Oracle口令文件进行验证初始化参数remote_login_passwordfileNONE:忽略口令文件,通过操作系统进行身份验证EXCLUSIVE:将使用数据库的口令文件对每个具有权限的用户进行验证SHARED:多个数据库将共享SYS和INTERNAL口令文件用户默认值:NONE1.配置身份验证通过操作系统验证DBA用户初始化参数remote_login_passwordfile=NONEORACLE_HOME\NETWORK\ADMIN\sqlnet.oraSQLNET.AUTHENTICATION_SERVICES=(NTS)在Windows中建立ORA_DBA用户组将某个操作系统用户加入该组和Windows的Administrators组以该用户登录操作系统,以SYSDBA身份连接Oracle数据库时,不再需要验证SYS用户口令1.配置身份验证使用Oracle口令文件验证DBA用户初始化参数remote_login_passwordfile=EXCLUSIVE/SHAREDORACLE_HOME\NETWORK\ADM
本文标题:《Oracle数据库实用教程(第二版)》第03章 网络连接配置与系统安全
链接地址:https://www.777doc.com/doc-3206869 .html