分享
 
 
 

我的oracle笔记七(其他)

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

1.如何限定特定IP访问数据库

可以利用登录触发器、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,...)

2.如何穿过防火墙连接数据库

这个问题只会在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

3.如何利用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)

你就可以利用数据库服务器的名称访问数据库了

4.dbms_repcat_admin能带来什么安全隐患

假如一个用户能执行dbms_repcat_admin包,将获得极大的系统权限。

以下情况可能获得该包的执行权限:

1、在sys下grant execute 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中获得具体信息

5.在不知道用户密码的时候,怎么样跳转到另外一个用户执行操作后并不影响该用户?

我们通过如下的方法,可以安全使用该用户,然后再跳转回来,在某些时候比较有用

需要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.

6.如何加固你的数据库

要注重以下方面

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。比如:

http://otn.oracle.com/deploy/security/alerts.htm

10. 把你的数据库与应用放在一个单独的子网中,要不然你的用户密码很轻易被sniffer去。或者采用advance security,对用户登录加密。

11. 限止只有某些ip才能访问你的数据库。

12. lsnrctl 要加密码,要不然别人很轻易从外面关掉你的listener。

13. 假如可能,不要使用默认1521端口

7.如何检查用户是否用了默认密码

假如使用默认密码,很可能就对你的数据库造成一定的安全隐患,那么可以使用如下的查询获得那些用户使用默认密码

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

/

8.如何修改默认的XDB监听端口

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;

9.怎么捕捉用户登录信息,如SID,IP地址等

可以利用登录触发器,如

CREATE OR REPLACE TRIGGER tr_login_record

AFTER 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

10.程序报错

ORA-01555: snapshot too old: rollback segment number 148 with name "_SYSSMU148$" too small

可以查询错误原因

oerr ora 01555

得到如下信息

01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small"

// *Cause: rollback records needed by a reader for consistent read are

// overwritten by other writers

// *Action: If in Automatic Undo Management mode, increase undo_retention

// setting. Otherwise, use larger rollback segments

说明一个事务的执行时长超过了系统设定的最大值.

SQL> show parameters undo

比如

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

undo_management string AUTO

undo_retention integer 16200

undo_suppress_errors boolean FALSE

undo_tablespace string UNDOTBS2

则说明是16200秒.

11.假如你要用ultraEdit-32编辑oracle脚本,可以设置对要害字不同亮度的显示。点"advanced"-->"configuration"-->"Syntax Highlighting"

-->"open",然后把下面的代码追加到最后保存,再重新打开ultraEdit,编辑.sql文件就可以看到了。这样颜色上轻易分辨。方便一些。

/L8"sql" Nocase Line Comment = -- Block Comment On = /* Block Comment Off = */ String Chars = ' File Extensions = SQL

/Delimiters = ~!%@^&*()-+=\/{}[]:;"'<> , .?

/Function String = "%[A-Z _]*[~\s]+(*)"

/C1 "Keywords"

ABORT ACCEPT ACCESS ADD ALL ALTER AND ANY ARRAY ARRAYLEN AS ASC ASSERT ASSIGN AT AUDIT AUTHORIZATION AVG

BASE_TABLE BEGIN BETWEEN BINARY_INTEGER BODY BOOLEAN BY

CASE CHAR CHAR_BASE CHECK CLOSE CLUSTER CLUSTERS COLAUTH COLUMN COMMENT COMMIT COMPRESS CONNECT CONSTANT CRASH CREATE CURRENT CURRVAL CURSOR

DATABASE DATA_BASE DATE DBA DEBUGOFF DEBUGON DECLARE DECIMAL DEFAULT DEFINITION DELAY DELETE DESC DIGITS DISPOSE DISTINCT DO DROP

ELSE ELSIF END ENTRY EXCEPTION EXCEPTION_INIT EXCLUSIVE EXISTS EXIT

FALSE FETCH FILE FLOAT FOR FORM FROM FUNCTION

GENERIC GOTO GRANT GROUP

HAVING

IDENTIFIED IF IMMEDIATE IN INCREMENT INDEX INDEXES INDICATOR INITIAL INSERT INTEGER INTERFACE INTERSECT INTO IS

LEVEL LIKE LIMITED LOCK LONG LOOP

MAX MAXEXTENTS MIN MINEXTENTS MINUS MISLABEL MOD MODE

NATURAL NATURALN NEW NEXTVAL NOAUDIT NOCOMPRESS NOLOGGING NOT NOWAIT NULL NUMBER NUMBER_BASE

OF OFFLINE ON ONLINE OPEN OPTION OR ORDER OTHERS OUT

PACKAGE PARTITION PCTFREE PCTUSED PLS_INTEGER POSITIVE POSITIVEN PRAGMA PRIOR PRIVATE PRIVILEGES PROCEDURE PUBLIC

RAISE RANGE RAW REAL RECORD REF RELEASE REMR RENAME RESOURCE RETURN REVERSE REVOKE ROLLBACK ROW ROWID ROWLABEL ROWNUM ROWS ROWTYPE RUN

SAVEPOINT SCHEMA SELECT SEPARATE SESSION SET SHARE SMALLINT SPACE SQL SQLCODE SQLERRM START STATEMENT STDDEV SUBTYPE SUCCESSFUL SUM SYNONYM SYSDATE

TABAUTH TABLE TABLES TASK TERMINATE THEN TO TRIGGER TRUE TYPE

UID UNION UNIQUE UPDATE USE USER

VALIDATE VALUES VARCHAR VARCHAR2 VARIANCE VIEW VIEWS

WHEN WHENEVER WHERE WHILE WITH WORK WRITE

XOR

/C2 "Packages"

DBMS_OUTPUT

DBMS_JOB

DBMS_SQL

/C3 "Package Methods"

BIND_VARIABLE BIND_VARIABLE_CHAR BIND_VARIABLE_RAW BIND_VARIABLE_ROWID BROKEN

CHANGE CLOSE_CURSOR COLUMN_VALUE COLUMN_VALUE_CHAR COLUMN_VALUE_RAW COLUMN_VALUE_ROWID

DEFINE_COLUMN DEFINE_COLUMN_CHAR DEFINE_COLUMN_RAW DEFINE_COLUMN_ROWID DISABLE

ENABLE EXECUTE EXECUTE_AND_FETCH

FETCH_ROWS

GET_LINE GET_LINES

INTERVAL IS_OPEN

LAST_ERROR_POSITION LAST_ROW_COUNT LAST_ROW_ID LAST_SQL_FUNCTION_CODE

NEW_LINE NEXT_DATE

OPEN_CURSOR

PARSE PUT PUT_LINE

REMOVE

SUBMIT

WHAT

/C4 "SQL*Plus Commands"

EXECUTE

GRANT

REPLACE

RUN

START

/C5 "SQL*Plus Functions"

ABS ADD_MONTHS ASCII

CEIL CHR CONCAT CONVERT COS COSH

DECODE

EXP

FLOOR

GREATEST

HEXTORAW

INITCAP INSTR

LAST_DAY LENGTH LN LOG LOWER LPAD LTRIM

MOD MONTHS_BETWEEN

NEXT_DAY NEW_TIME NLS_INITCAP NLS_LOWER NLS_UPPER NVL

POWER

RAWTOHEX REPLACE ROUND ROWIDTOCHAR RPAD RTRIM

SIGN SIN SINH SOUNDEX SQRT SUBSTR SUBSTRB

TAN TANH TO_CHAR TO_DATE TO_LABEL TO_MULTI_BYTE TO_NUMBER TO_SINGLE_TYPE TRANSLATE TRUNC

UPPER USERENV

VSIZE

/C6 "Should Be Reserved"

BEFORE

EACH

FOR

KEY

PRIMARY

WHEN WHERE WHILE

/C7 "CONST Var"

DUP_VAL_INDEX TIMEOUT_ON_RESOURCE TRANSACTION_BACKED_OUT INVALID_CURSOR NOT_LOGED_ON LOGIN_DENIED

NO_DATA_FOUND SYS_INVALID_ROWID TOO_MANY_ROWS ZERO_DIVIDE INVALID_NUMBER STORAGE_ERROR PROGRAM_ERROR VALUE_ERROR

NOTFOUND FOUND

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有