ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 格式化SHOW PARAMETER命令

格式化SHOW PARAMETER命令

原创 Linux操作系统 作者:yangtingkun 时间:2010-11-17 23:49:23 0 删除 编辑

以前发现通过COLUMN命令没有办法像格式化SQL查询结果那样格式化SHOW PARAMETER命令的结果。没想到测试审计SYS操作时意外发现了这个问题的答案。

审计DBA用户操作:http://yangtingkun.itpub.net/post/468/508790

 

 

可以看到,正常的COLUMN语句对于show parameter命令无效:

SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /data/oracle/product/11.2/dbs/
                                                 spfiletest112.ora
SQL> col name format a15
SQL> col value format a50
SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /data/oracle/product/11.2/dbs/
                                                 spfiletest112.ora

从上一篇文章可以看到,由于SYS用户执行了show parameter命令,从而在审计日志中得到了sqlplus执行的命令:

Mon Nov 15 22:43:50 2010
ACTION : 'SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number', 6,'big int
eger', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER('%audit_file_dest%') OR
DER BY NAME_COL_PLUS_SHOW_PARAM,ROWNUM'
DATABASE USER: '/'
PRIVILEGE : SYSDBA
CLIENT USER: oracle
CLIENT TERMINAL: pts/1
STATUS: 0

根据show parameter的真实语句,很容易就可以用column命令来格式化show parameter的输出结果了:

SQL> col name_col_plus_show_param format a15
SQL> col value_col_plus_show_param format a50
SQL> show parameter spfile

NAME            TYPE        VALUE
--------------- ----------- --------------------------------------------------
spfile          string      /data/oracle/product/11.2/dbs/spfiletest112.ora

这里还有一个问题,SQL语句将NAME列命名为NAME_COL_PLUS_SHOW_PARAM,为什么最终显示的仍然是NAME呢,显然在其他地方对这个结果进行了处理。

而这个地方最可能就是glogin.sql:

[oracle@yans1 ~]$ cd $ORACLE_HOME/sqlplus/admin
[oracle@yans1 admin]$ more glogin.sql
--
-- Copyright (c) 1988, 2004, Oracle Corporation.  All Rights Reserved.
--
-- NAME
--   glogin.sql
--
-- DESCRIPTION
--   SQL*Plus global login "site profile" file
--
--   Add any SQL*Plus commands here that are to be executed when a
--   user starts SQL*Plus, or uses the SQL*Plus CONNECT command
--
-- USAGE
--   This script. is automatically run
--

-- Used by Trusted Oracle
COLUMN ROWLABEL FORMAT A15

-- Used for the SHOW ERRORS command
COLUMN LINE/COL FORMAT A8
COLUMN ERROR    FORMAT A65  WORD_WRAPPED

-- Used for the SHOW SGA command
COLUMN name_col_plus_show_sga FORMAT a24
COLUMN units_col_plus_show_sga FORMAT a15
-- Defaults for SHOW PARAMETERS
COLUMN name_col_plus_show_param FORMAT a36 HEADING NAME
COLUMN value_col_plus_show_param FORMAT a30 HEADING VALUE

-- Defaults for SHOW RECYCLEBIN
COLUMN origname_plus_show_recyc   FORMAT a16 HEADING 'ORIGINAL NAME'
COLUMN objectname_plus_show_recyc FORMAT a30 HEADING 'RECYCLEBIN NAME'
COLUMN objtype_plus_show_recyc    FORMAT a12 HEADING 'OBJECT TYPE'
COLUMN droptime_plus_show_recyc   FORMAT a19 HEADING 'DROP TIME'

-- Defaults for SET AUTOTRACE EXPLAIN report
-- These column definitions are only used when SQL*Plus
-- is connected to Oracle 9.2 or earlier.
COLUMN id_plus_exp FORMAT 990 HEADING i
COLUMN parent_id_plus_exp FORMAT 990 HEADING p
COLUMN plan_plus_exp FORMAT a60
COLUMN object_node_plus_exp FORMAT a8
COLUMN other_tag_plus_exp FORMAT a29
COLUMN other_plus_exp FORMAT a44

-- Default for XQUERY
COLUMN result_plus_xquery HEADING 'Result Sequence'

通过观察这个glogin.sql文件这个问题一目了然了,而show sga等命令和show parameter是同样的道理。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4227/viewspace-678384/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 审计DBA用户操作
请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2007-12-29

  • 博文量
    1964
  • 访问量
    11076556