Oracle数据库网络与安全之FAQ汇集(1)
文章作者 100test 发表时间 2007:03:14 13:52:45
来源 100Test.Com百考试题网
[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下 
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中获得详细信息 
[Q]在不知道用户密码的时候,怎么样跳转到另外一个用户执行操作后并不影响该用户? 
[A]我们通过如下的方法,可以安全使用该用户,然后再跳转回来,在某些时候比较有用 
需要Alter user权限或DBA权限: 
SQL> 0select 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.  |