下面是小编帮大家整理的Oracle数据库网络与安全FAQ精粹数据库,本文共4篇,欢迎阅读,希望大家能够喜欢。
篇1:Oracle数据库网络与安全FAQ精粹数据库
[Q]如何限定特定IP访问 数据库 [A]可以利用登录触发器、cmgw或者是在$OREACLE_HOME/network/admin下新增一个protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora: 增加如下内容: tcp.validnode_checking=yes #允许访问的ip tcp.inited_
[Q]如何限定特定IP访问数据库
[A]可以利用登录触发器、cmgw或者是在$OREACLE_HOME/network/admin下新增一个protocol.ora文件(有些os可能是. protocol.ora),9i可以直接修改sqlnet.ora:
增加如下内容:
tcp.validnode_checking=yes#允许访问的ip
tcp.inited_nodes=(ip1,ip2,……)
#不允许访问的ip
tcp.excluded_nodes=(ip1,ip2,……)
[Q]如何穿过防火墙连接数据库
[A]这个问题只会在WIN平台出现,UNIX平台会自动解决,
解决方法:
在服务器端的SQLNET.ORA应类似
SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
TRACE_LEVEL_CLIENT = 16
注册表的HOME0加[HKEY_LOCAL_MACHINE]
USE_SHARED_SOCKET=TRUE
[Q]如何利用hostname方式连接数据库
host name方式只支持tcp/ip协议的小局域网
修改listener.ora中的如下信息
(SID_DESC =(GLOBAL_DBNAME = ur_hostname) --你的机器名
(ORACLE_HOME = E:\oracle\ora92) --oracle home
(SID_NAME = orcl) --sid name
)
然后在客户端的sqlnet.ora中,确保有
NAMES.DIRECTORY_PATH= (HOSTNAME)
你就可以利用数据库服务器的名称访问数据库了
[Q]dbms_repcat_admin能带来什么安全隐患
[A]以下情况可能获得该包的执行权限:
1、在sys下
grantexecute on dbms_repcat_admin to public[|user_name]2、用户拥有execute any procedure特权(仅限于9i以下,9i必须显示授权)
如果用户通过执行如下语句:
exec sys.dbms_repcat_admin.grant_admin_any_schema('user_name');该用户将获得极大的系统特权
可以从user_sys_privs中获得详细信息
[Q]在不知道用户密码的时候,怎么样跳转到另外一个用户执行操作后并不影响该用户?
[A]我们通过如下的方法,可以安全使用该用户,然后再跳转回来,在某些时候比较有用
需要Alter user权限或DBA权限:
SQL>select password from dba_users where username='SCOTT';PASSWORD
-----------------------------
F894844C34402B67
SQL>alter user scott identified by lion;
User altered.
SQL>connect scott/lion
Connected.
REM Do whatever you like...
SQL>connect system/manager
Connected.
SQL>alter user scott identified by values 'F894844C34402B67';
User altered.
SQL>connect scott/tiger
Connected
[Q]如何加固你的数据库
[A]要注意以下方面
1. 修改sys, system的口令。
2. Lock,修改,删除默认用户: dbsnmp,ctxsys等。
3. 把REMOTE_OS_AUTHENT改成False,防止远程机器直接登陆。
4. 把O7_DICTIONARY_ACCESSIBILITY改成False。
5. 把一些权限从PUBLIC Role取消掉。
6. 检查数据库的数据文件的安全性。不要设置成666之类的。检查其他dba 用户。
7. 把一些不需要的服务(比如ftp, nfs等关闭掉)
8. 限制数据库主机上面的用户数量。
9. 定期检查Metalink/OTN上面的security Alert。比如:otn.oracle/deploy/security/alerts.htm
10. 把你的数据库与应用放在一个单独的子网中,要不然你的用户密码很容易被sniffer去。或者采用advance security,对用户登录加密。
11. 限止只有某些ip才能访问你的数据库。
12. lsnrctl 要加密码,要不然别人很容易从外面关掉你的listener。
13. 如果可能,不要使用默认1521端口
[Q]如何检查用户是否用了默认密码
[A]如果使用默认密码,很可能就对你的数据库造成一定的安全隐患,那么可以使用如下的查询获得那些用户使用默认密码
select username “User(s) with Default Password!”from dba_users
where password in
('E066D214D5421CCC', -- dbsnmp
'24ABAB8B06281B4C', -- ctxsys
'72979A94BAD2AF80', -- mdsys
'C252E8FA117AF049', -- odm
'A7A32CD03D3CE8D5', -- odm_mtr
'88A2B2C183431F00', -- ordplugins
'7EFA02EC7EA6B86F', -- ordsys
'4A3BA55E08595C81', -- outln
'F894844C34402B67', -- scott
'3F9FBD883D787341', -- wk_proxy
'79DF7A1BD138CF11', -- wk_sys
'7C9BA362F8314299', -- wmsys
'88D8364765FCE6AF', -- xdb
'F9DA8977092B7B81', -- tracesvr
'9300C0977D7DC75E', -- oas_public
'A97282CE3D94E29E', -- websys
'AC9700FD3F1410EB', -- lbacsys
'E7B5D92911C831E1', -- rman
'AC98877DE1297365', -- perfstat
'66F4EF5650C20355', -- exfsys
'84B8CBCA4D477FA3', -- si_informtn_schema
'D4C5016086B2DC6A', -- sys
'D4DF7931AB130E37') -- system
/
[Q]如何修改默认的XDB监听端口
[A]Oracle9i默认的XML DB把HTTP的默认端口设为8080,这是一个太常用的端口了,很多别的WebServer都会使用这个端口,
如果我们安装了它,最好修改一下,避免冲突,如果不使用呢,就最好不要安装
提供三种修改的方法
1.dbca,选择你的数据库,然后Standard Database Features->Customize->Oracle XML DB option,进入这个画面你应该就知道怎么改了。
2.OEM console,在XML Database 的配置里面修改
3.用oracle提供的包:
-- 把HTTP/WEBDAV端口从8080改到8081
SQL>call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get,'/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))
/
-- 把FTP端口从2100改到2111
SQL>call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),
'/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))
/
SQL>commit;
SQL>exec dbms_xdb.cfg_refresh;
-- 检查修改是否已经成功
SQL>select dbms_xdb.cfg_get from dual;
[Q]怎么捕获用户登录信息,如SID,IP地址等
[A]可以利用登录触发器,如
CREATE OR REPLACE TRIGGER tr_login_recordAFTER logon ON DATABASE
DECLARE
miUserSid NUMBER;
mtSession v$session%ROWTYPE;
CURSOR cSession(iiUserSid IN NUMBER) IS
SELECT * FROM v$session
WHERE sid=iiUserSid;
BEGIN
SELECT sid INTO miUserSid FROM v$mystat WHERE rownum<=1;
OPEN cSession(miUserSid);
FETCH cSession INTO mtSession;
--if user exists then insert data
IF cSession%FOUND THEN
INSERT INTO log$information(login_user,login_time,ip_adress,ausid,terminal,
osuser,machine,program,sid,serial#)
VALUES(ora_login_user,SYSDATE,SYS_CONTEXT ('USERENV','IP_ADDRESS'),
userenv('SESSIONID'),
mtSession.Terminal,mtSession.Osuser,
mtSession.Machine,mtSession.Program,
mtSession.Sid,mtSession.Serial#);
ELSE
--if user don't exists then return error
sp_write_log('Session Information Error:'||SQLERRM);
CLOSE cSession;
raise_application_error(-9,'Login Exception',FALSE);
END IF;
CLOSE cSession;
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Login Trigger Error:'||SQLERRM);
END tr_login_record;
在以上触发器中需要注意以下几点
1、该用户有v_$session与v_$mystat的对象查询权限,可以在sys下对该拥护显式授权,
2、sp_write_log原本是一个写日志的过程,可以置换为自己的需要,如null跳过。
3、必须在创建该触发器之前创建一个log$information的表记录登录信息。
[Q]怎么捕获整个数据库的DDL语句或者是说对象结构变化与修改
[A]可以采用DDL触发器,如
CREATE OR REPLACE TRIGGER tr_trace_ddlAFTER DDL ON DATABASE
DECLARE
sql_text ora_name_list_t;
state_sql ddl$trace.ddl_sql%TYPE;
BEGIN
FOR i IN 1..ora_sql_txt(sql_text) LOOP
state_sql := state_sql||sql_text(i);
END LOOP;
INSERT INTO ddl$trace(login_user,ddl_time,ip_address,audsid,
schema_user,schema_object,ddl_sql)
VALUES(ora_login_user,SYSDATE,userenv('SESSIONID'),
sys_context('USERENV','IP_ADDRESS'),
ora_dict_obj_owner,ora_dict_obj_name,state_sql);
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Capture DDL Excption:'||SQLERRM);
END tr_trace_ddl;
在创建以上触发器时要注意几点
1、必须创建一个ddl$trace的表,用来记录ddl的记录
2、sp_write_log原本是一个写日志的过程,可以置换为自己的需要,如null跳过
[Q]怎么捕获表上的DML语句(不包括select)语句)
[A]可以采用dml触发器,如
CREATE OR REPLACE TRIGGER tr_capt_sqlBEFORE DELETE OR INSERT OR UPDATE
ON manager.test
DECLARE
sql_text ora_name_list_t;
state_sql capt$sql.sql_text%TYPE;
BEGIN
FOR i IN 1..ora_sql_txt(sql_text) LOOP
state_sql := state_sql || sql_text(i);
END LOOP;
INSERT INTO capt$sql(login_user,capt_time,ip_address,audsid,owner,table_name,sql_text)
VALUES(ora_login_user,sysdate,sys_context('USERENV','IP_ADDRESS'),
userenv('SESSIONID'),'MANAGER','TEST',state_sql);
EXCEPTION
WHEN OTHERS THEN
sp_write_log('Capture DML Exception:'||SQLERRM);
END tr_capt_sql;
在创建以上触发器时要注意几点
1、必须创建一个capt$sql的表,用来记录ddl的记录
2、sp_write_log原本是一个写日志的过程,可以置换为自己的需要,如null跳过。
[Q]怎么样生成日期格式的文件
[A]在LINUX/UNIX上,使用`date +%y%m%d` (`这个是键盘上~所在的那个键) 或$(date +%y%m%d),如:
touch exp_table_name_`date +%y%m%d`.dmpDATE=$(date +%y%m%d)
或者
DATE=$(date +%Y%m%d --date '1 days ago') #获取昨天或多天前的日期
Windows上,使用%date:~4,10%,其中4是开始字符,10是提取长度,表示从date生成的日期中,提取从4开始长度是10的串。你可以改成其它你需要的数字,如:
Echo %date:~4,10%
如果想得到更精确的时间,win上面还可以使用time
[Q]测试磁盘与阵列性能
[A]用类似如下的方法测试写能力
time dd if=/dev/zero f=/oradata/biddb/testind/testfile.dbf bs=1024000 count=1000期间系统IO 使用可以用(unix):
iostat -xnp 2 显示Busy程度
[Q]怎么配置SSH密匙
[A]可以防止“中间人”的进攻方式
1、ssh-keygen 或ssh-keygen -d(ssh 2.x)生成钥匙
2、然后拷贝公匙到你想登录的服务器,改名为authorized_keys,如果是3.0以下版本,需要改为authorized_keys2
3、还可以利用config文件进一步简化操作
如
Host *bjHostName 机器名或IP
User 用户名
有了这个配置文件,你就可以利用ssh bj来访问指定的机器了,也就可以利用scp与sftp来传送文件了。
[Q]FTP怎么在脚本中自动上传/下载
[A]可以把FTP写到shell脚本中,如
ftp -n -i 主机IPcd 目标目录
put file
get file
#查询文件
ls
#退出
bye
责任编辑 吴北 jiaoxq#51cto TEL:(010)68476636-8004
原文转自:www.ltesting
篇2:便携数据库管理系统的网络连接与安全
便携数据库管理系统的网络连接与安全
摘要:介绍掌上电脑无线网络配置,涉及PocketDBA应用程序的组成、Web裁剪技术、通信协议、无线网络连接的相关设备及其功能;PocketDBAw使用时安全设置,包括数据的机密性、完整性,对用户访问验证和许可、本地网络安全与防火墙设置。关键词:掌上电脑无线网络PocketDBAWeb裁剪技术加密数据完整性防火墙
引言
计算技术和无线通信技术的发展与结合使得一种全新的计算模式――移动计算机模式成为现实。Internet为信息传递、数据交互提供了一种无处不在的便捷方法。移动计算(mobilecomputing)是使人们能够在任何时间和任何地点获得所需信息的技术和设备的总称。未来的网络将是一无线、有线与Internet三者合一的数字化地球,它将超越一切地理的障碍,使得信息无处不在,这必将为移动计算提供更广阔的空间。在移动计算环境下,用户使用便携式计算机通过无线通信接口实现对信息网络的访问,而不受实际物理位置变化的影响。人们不再满足于传统的局限在有限空间里的信息存取方式,而希望将活动的地点延伸到广阔的地理区域,如家庭、野外、海域和岛屿。人们也不再满足于固定的信息存取模式,而希望随时随地查询数据,甚至在移动的过程中处理数据,如在旅途中处理日常办公事务,在购物时随时查询商品行情等。
便携数据库管理系统(即PocketDBA)是第一个可以实现无线连接数据库管理的工具。通过一个无线连接的掌上电脑,可以实现对Oracle数据库的访问和管理。该工具不仅仅提供一个信息状态的快照,而且提供大部分直接对数据库服务器进行操作的功能,让用户进入数据库招待几乎所有的任务;加上集成了友好的用户界面和方便易用的图表,几乎是每一个数据据库管理都需要的一种无线解决方案。
1PocketDBA应用程序的组成
PocketDBA包括2个主要部分:①PocketDBA客房软件。该软件运行在一个无线连接的掌上电脑上,可以跟PocketDBA服务器进行通信并且将处理的结果显示给用户。②PocketDBA服务器软件(PSS)。该服务器应用程序运行在本地环境,跟本地数据库通信。接收来自PocketDBA客房软件的请求,并进行处理,然后将结果返回。这个软件是用Java语言写的,因此可以在不同操作系统平台上使用。
2掌上电脑的无线网络连接
掌上电脑的无线网络连接实现PocketDBA客房和服务器之间的通信。大多数掌上操作系统设备都使用一种叫Web裁剪的技术进行数据的传输、接收和格式化显示。Web裁剪程序非常类似台式机上的网络浏览器。
图1概要地说明了如何用Web裁剪实现掌上电脑操作系统与一个装有无线服务程序的服务器进行无线通信。
(1)无线掌上设备
掌上电脑装有类似台式机浏览器的网络剪切客户软件,配有无线广域网(WWAN)硬件。该硬件可以是一个内置或外置调制解调器,也可以是一条连接到数字蜂窝电话的补充电缆。通信过程的第1步是通过掌上电脑上的天线将通信请求传送到运营商的无线基站。
(2)运营商无线基站
基站类似广播发射塔分布在世界各个地方。基站的所有权属于运营商并由运营商操作维护。基站接收无线传输数据流,并将数据传给一个无线代理服务器。由于每个基站覆盖范围有限,因此,基站的数目和位置决定了运营的业务覆盖区域。
(3)无线代理服务器
无线代理服务器是负责将无线请求转变成Internet请求。无线代理服务器一般都放在无线服务供应商的数据处理中心。当手持设备传送数据时,无线代理服务器从基站接收信息,并转换成可在Internet上传输的数据流,连接一个无线应用程序服务器来处理请求。
(4)无线应用程序就服务器
无线应用程序服务器接收无线代理服务器送来的请求并进行处理。在很多方面,无线应用程序服务器都类似一个网络服务器,除了它的格式输出更适合在掌上电脑上显示。PocketDBA服务器软件属于无线程序服务器的'一种,常常被安装在公司的内部网络中,能够很容易地跟需要监控的数据库通信。
(5)无线网络连接举例
以下例子中简化了掌上电脑与Internet之间的连接,细节请参阅图1。
①单服务器网络连接,如图2所示。
这种网络配置结构适合用户在运行Oracle数据库的机器上直接安
装运行PocketDBA服务器软件。这种配置在主要限制是PSS软件需要的操作系统是WindowsNT、Windows、Solaris或RedHatLinux。图2中掌上电脑用HTTPS协议通过Internet将通信请求送到防火墙。身份验证通过后,防火墙允许请求并送到PSS。PSS通过JDBC接口与TNS监听器联系,TNS监听器与数据库通信。
②多服务器网络连接,如图3所示。
当用户同时运行多个数据库服务器时,可以采用图3配置。PSS软件安装在装有WindowsNT、Windows2000、Solaris、RedHatLinux的机器上。对于图3最右边的数据库服务器,只要支持Oracle数据库,服务器操作系统类型没有限制。图3中掌上电脑用HTTPS协议通过Internet将通信请求送到防火墙。身份验证通过后,防火墙允许请求并送到PSS。PSS通过JDBC接口与适当主机上的TNS监听器联第,TNS监听器与数据库通信。
③使用代理服务器的网络连接,如图4所示。
这种网络配置结构适合已经有了一个代理服务器,并且代理服务器上设置了身份验证了用户使用,此时PSS服务器上不需再设置身份验证。图4中掌上电脑用HTTPS协议通过Internet将通信请求送到防火墙。防火墙将请求送至代理服务器,经代理服务器验证通过后,通信请求将被送到PSS服务器。PSS通过JDBC接口与适当主机上的TNS监听器联第,TNS监听器与数据库通信。
3PocketDBA安全设置
PocketDBA程序设计的目的是允许管理数据库。由于数据库经常包含敏感的信息,所以安全是最重要的。为了最大限度地减少来自网络上任何系统的安全威胁,需要采取一定的安全策略。
(1)机密性
加密用于PocketDBA应用程序在传输和接收数据时,防止数据被窃听。
在不同设备上采用的加密方法如下:
①无线掌上设备。数据的加密用了数据加密标准扩展规则(DESX)。
②无线基站到代理服务器。从基站到代理服务器的通信时,数据流加密用了1个128位强RSA加密规则,并用SSL协议进行传输。
③代理服务器到PocketDBA服务器。代理服务器经过Internet与PocketDBA服务器进行通信时,有安全和非安全2种模式。
安全模式――传输的数据流用了SSL和公司的身份验证进行加密,并用HTTPS协议发送。
非安全模式――传输的数据流不经过加密,并用HTTP协议传输。这种方法不可取,因为在传输过程中用户名、口令以及所有数据都可能被看到。
(2)数据完整性
数据完整性是防止传输过程中数据发生修改,无线传输数据流用以下方法来防止受到攻击:
①信息完整性检查(MIC);
②密码链;
③时间/日期戳;
④信息序列号;
⑤服务器ID域。
(3)认证与许可
认证与许可保证只有合法用户才能访问应用程序。拥有数据库的登录名和口令的用户可以访问PocketDBA程序。数据库中存在设定访问允许的机制,因此用户被限制在经过授权的范围内进行操作。
另外,用户可以灵活设置的超时时限来定期地消除非激活状态的会话,这样一来就大大降低了被盗的手持设备用来进入系统的可能性。
(4)本地网络安全和防火墙配置
为了让PocketDBA应用程序接收到来自掌上电脑的通信请求,PocketDBA服务器必须有1个可以通过Internet进行访问的完整有效的域名(一个静态IP地址),并且能够跟所有需要管理的数据库进行通信。
PocketDBA推荐使用防火墙来保护本地网络给免受外来攻击。通常情况下,防火墙可以拒绝与特定主机(计算机或网络)所提供的特定服务(如HTTP、HTTPS、FTP等)的连接请求。用在PocketDBA上,防火墙需要加入允许从一个有着严格限制的区域来的数据流能够进入。一条严格规则有时比喻成防火墙上的一个“针孔”。PocketDBA的针孔定义如下:
①服务――仅仅来自HTTPS协议;
②主机――仅仅来自无线PalmOS设备。
篇3:便携数据库管理系统的网络连接与安全
便携数据库管理系统的网络连接与安全
摘要:介绍掌上电脑无线网络配置,涉及PocketDBA应用程序的组成、Web裁剪技术、通信协议、无线网络连接的相关设备及其功能;PocketDBAw使用时安全设置,包括数据的机密性、完整性,对用户访问验证和许可、本地网络安全与防火墙设置。关键词:掌上电脑 无线网络 PocketDBA Web裁剪技术 加密 数据完整性 防火墙
引言
计算技术和无线通信技术的发展与结合使得一种全新的计算模式――移动计算机模式成为现实。Internet为信息传递、数据交互提供了一种无处不在的便捷方法。移动计算(mobile computing)是使人们能够在任何时间和任何地点获得所需信息的技术和设备的总称。未来的网络将是一无线、有线与Internet三者合一的数字化地球,它将超越一切地理的障碍,使得信息无处不在,这必将为移动计算提供更广阔的空间。在移动计算环境下,用户使用便携式计算机通过无线通信接口实现对信息网络的访问,而不受实际物理位置变化的影响。人们不再满足于传统的局限在有限空间里的信息存取方式,而希望将活动的地点延伸到广阔的地理区域,如家庭、野外、海域和岛屿。人们也不再满足于固定的.信息存取模式,而希望随时随地查询数据,甚至在移动的过程中处理数据,如在旅途中处理日常办公事务,在购物时随时查询商品行情等。
便携数据库管理系统(即PocketDBA)是第一个可以实现无线连接数据库管理的工具。通过一个无线连接的掌上电脑,可以实现对Oracle数据库的访问和管理。该工具不仅仅提供一个信息状态的快照,而且提供大部分直接对数据库服务器进行操作的功能,让用户进入数据库招待几乎所有的任务;加上集成了友好的用户界面和方便易用的图表,几乎是每一个数据据库管理都需要的一种无线解决方案。
1 PocketDBA应用程序的组成
PocketDBA包括2个主要部分:①PocketDBA客房软件。该软件运行在一个无线连接的掌上电脑上,可以跟PocketDBA服务器进行通信并且将处理的结果显示给用户。②PocketDBA服务器软件(PSS)。该服务器应用程序运行在本地环境,跟本地数据库通信。接收来自PocketDBA客房软件的请求,并进行处理,然后将结果返回。这个软件是用Java语言写的,因此可以在不同操作系统平台上使用。
2 掌上电脑的无线网络连接
掌上电脑的无线网络连接实现PocketDBA客房和服务器之间的通信。大多数掌上操作系统设备都使用一种叫Web裁剪的技术进行数据的传输、接收和格式化显示。Web裁剪程序非常类似台式机上的网络浏览器。
图1概要地说明了如何用Web裁剪实现掌上电脑操作系统与一个装有无线服务程序的服务器进行无线通
[1] [2] [3] [4]
篇4:国际化学品安全卡(中文版)网络数据库查询系统的设计与实现
国际化学品安全卡(中文版)网络数据库查询系统的设计与实现
概述了国际化学品安全卡(中文版)网络查询系统的建设、主要内容及其查询方法.重点介绍了系统的设计思想,采用ASP编程技术实现了该查询系统的'设计和运行.
作 者:马淑身 李政禹 陆文良 王佳蕊 Ma Shushen Li Zhengyu Lu Wenliang Wang Jiarui 作者单位:中国石化集团,北京化工研究院,北京,100013 刊 名:化工环保 ISTIC PKU英文刊名:ENVIRONMENTAL PROTECTION OF CHEMICAL INDUSTRY 年,卷(期):2005 25(4) 分类号:X93 关键词:国际化学品安全卡 网络 数据库
更多推荐
Oracle数据库网络与安全FAQ精粹数据库
发布评论