口令文件审核
Step 1: 使用root账号将 oracle dba的权限移除
- [root@oracle-db-19c ~]# su - oracle
- [oracle@oracle-db-19c ~]$
- [oracle@oracle-db-19c ~]$ id oracle
- uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1502(dba),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
- [oracle@oracle-db-19c ~]$
- [oracle@oracle-db-19c ~]$ su -
- Password:
- [root@oracle-db-19c ~]# gpasswd -d oracle dba
- Removing user oracle from group dba
- [root@oracle-db-19c ~]#
- [root@oracle-db-19c ~]# id oracle
- uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
- [root@oracle-db-19c ~]#
注意:如何恢复已经删除的权限:
gpasswd -d userName groupName
gpasswd -d oracle dba
usermod -a -G groupName userName
usermod -a -G dba oraclegpasswd -a oracle dba
- [root@oracle-db-19c ~]# id oracle
- uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
- [root@oracle-db-19c ~]# groupadd -g 1502 dba
- groupadd: group 'dba' already exists
- [root@oracle-db-19c ~]# usermod -a -G dba oracle
- [root@oracle-db-19c ~]# id oracle
- uid=1501(oracle) gid=1501(oinstall) groups=1501(oinstall),1502(dba),1503(oper),1504(backupdba),1505(dgdba),1506(kmdba),1507(racdba)
- [root@oracle-db-19c ~]#
Step2 : 核查使用 sqlplus / as sysdba是否可以登录。结果是无法登录,需要口令方可登录。
- Version 19.3.0.0.0
- [oracle@oracle-db-19c ~]$ sqlplus / as sysdba
-
- SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:26:20 2022
- Version 19.3.0.0.0
-
- Copyright (c) 1982, 2019, Oracle. All rights reserved.
-
- ERROR:
- ORA-01017: invalid username/password; logon denied
-
-
- Enter user-name:
- ERROR:
- ORA-01017: invalid username/password; logon denied
-
-
- Enter user-name:
- ERROR:
- ORA-01017: invalid username/password; logon denied
-
-
- SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
- [oracle@oracle-db-19c ~]$ sqlplus sys/sys as sysdba
-
- SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:26:52 2022
- Version 19.3.0.0.0
-
- Copyright (c) 1982, 2019, Oracle. All rights reserved.
-
-
- Connected to:
- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
- Version 19.3.0.0.0
-
- SQL> exit
- Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
- Version 19.3.0.0.0
- [oracle@oracle-db-19c ~]$
Step3 查看口令文件在何处?
- oracle@oracle-db-19c ~]$ cd $ORACLE_HOME/dbs
- [oracle@oracle-db-19c dbs]$ pwd
- /u01/app/oracle/product/19.3.0/dbhome_1/dbs
- [oracle@oracle-db-19c dbs]$ ls -ltr
- total 20
- -rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
- -rw-r-----. 1 oracle oinstall 24 Nov 2 15:03 lkCDB1
- -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
- -rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
- -rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
- [oracle@oracle-db-19c dbs]$
- [oracle@oracle-db-19c dbs]$ ls -ltr orapwcdb1
- -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
- [oracle@oracle-db-19c dbs]$ cp -p orapwcdb1 orapwcdb1_bkp
- [oracle@oracle-db-19c dbs]$
Step 4.口令文件删除后就无法登录到超级用户了。
- [oracle@oracle-db-19c dbs]$ ls -ltr
- total 24
- -rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
- -rw-r-----. 1 oracle oinstall 24 Nov 2 15:03 lkCDB1
- -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1_bkp
- -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1
- -rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
- -rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
- [oracle@oracle-db-19c dbs]$ rm -rf orapwcdb1
- [oracle@oracle-db-19c dbs]$
- [oracle@oracle-db-19c dbs]$
- [oracle@oracle-db-19c dbs]$
- [oracle@oracle-db-19c dbs]$ sqlplus sys/sys as sysdba
-
- SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 17:34:07 2022
- Version 19.3.0.0.0
-
- Copyright (c) 1982, 2019, Oracle. All rights reserved.
-
- ERROR:
- ORA-01017: invalid username/password; logon denied
-
-
- Enter user-name:
Step5. 如何解决口令文件丢失或口令文件损坏(切记使用绝对路径,不要使用
orapwd file=$ORALCE_HOME/dbs/orapwcdb1 password=1qazxsw23edc#
否则,OPW-00001: Unable to open password-file
)
- [oracle@oracle-db-19c dbs]$ pwd
- /u01/app/oracle/product/19.3.0/dbhome_1/dbs
- [oracle@oracle-db-19c dbs]$ orapwd file=/u01/app/oracle/product/19.3.0/dbhome_1/dbs/orapwcdb1 password=1qazxsw23edc#
- [oracle@oracle-db-19c dbs]$ ll
- total 28
- -rw-rw----. 1 oracle oinstall 1544 Nov 19 11:09 hc_cdb1.dat
- -rw-r--r--. 1 oracle oinstall 3079 May 14 2015 init.ora
- -rw-r-----. 1 oracle oinstall 24 Nov 2 15:03 lkCDB1
- -rw-r-----. 1 oracle oinstall 6144 Nov 19 17:57 orapwcdb1
- -rw-r-----. 1 oracle oinstall 2048 Nov 16 17:17 orapwcdb1_bkp
- -rw-r-----. 1 oracle oinstall 3584 Nov 19 14:00 spfilecdb1.ora
- [oracle@oracle-db-19c dbs]$
-
- [oracle@oracle-db-19c ~]$
- [oracle@oracle-db-19c ~]$
- [oracle@oracle-db-19c ~]$
- [oracle@oracle-db-19c ~]$ sqlplus sys/1qazxsw23edc# as sysdba
-
- SQL*Plus: Release 19.0.0.0.0 - Production on Sat Nov 19 18:00:17 2022
- Version 19.3.0.0.0
-
- Copyright (c) 1982, 2019, Oracle. All rights reserved.
-
-
- Connected to:
- Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
- Version 19.3.0.0.0
-
- SQL>
sys的安全审核需要通过口令文件。
拥有dba角色的权限就可以所有用户权限。
什么是参数? 控制数据库属性行为的开关。
如何查看参数和参数的取值?
- SQL> column name for a40
- SQL> column value for a40
- SQL> set linesize 200
- SQL> set pagesize 200
- SQL> select name,value from v$parameter;
-
- NAME VALUE
- ---------------------------------------- ----------------------------------------
- lock_name_space
- processes 320
- sessions 504
- timed_statistics TRUE
- timed_os_statistics 0
- resource_limit TRUE
- license_max_sessions 0
- license_sessions_warning 0
- long_module_action TRUE
- standby_db_preserve_states NONE
- instance_abort_delay_time 0
- cpu_count 4
- cpu_min_count 4
- instance_groups
- event
- sga_max_size 629145600
- use_large_pages TRUE
- pre_page_sga TRUE
- shared_memory_address 0
- hi_shared_memory_address 0
- lock_sga FALSE
- processor_group_name
- allow_group_access_to_sga FALSE
- sga_min_size 0
- shared_pool_size 0
- large_pool_size 0
- java_pool_size 0
- streams_pool_size 0
- shared_pool_reserved_size 8598323
- java_soft_sessionspace_limit 0
- java_max_sessionspace_size 0
如何查看非默认值的参数?
- SQL>
- SQL> column name for a40
- SQL> column value for a40
- SQL> set pagesize 200
- SQL> set linesize 200
- SQL> select name,value from v$parameter where isdefault<>'TRUE';
-
- NAME VALUE
- ---------------------------------------- ----------------------------------------
- processes 320
- nls_language AMERICAN
- nls_territory AMERICA
- sga_target 629145600
- control_files /u02/oradata/CDB1/control01.ctl, /u02/or
- adata/CDB1/control02.ctl
-
- db_block_size 8192
- compatible 19.0.0
- db_create_file_dest /u02/oradata
- undo_tablespace UNDOTBS1
- remote_login_passwordfile EXCLUSIVE
- dispatchers (PROTOCOL=TCP) (SERVICE=cdb1XDB)
- audit_file_dest /u01/app/oracle/admin/cdb1/adump
- audit_trail DB
- db_name cdb1
- open_cursors 300
- pga_aggregate_target 209715200
- diagnostic_dest /u01/app/oracle
- enable_pluggable_database TRUE
-
- 18 rows selected.
-
- SQL>
使用sqlplus环境命令查看参数取值
- show parameter xxxxx ---> 查看内存值
- show spparameter xxxxx ---> 查看spfile中的值

动态参数:内存中的当前值可以被修改。
- SQL> select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE!='FALSE' order by 2;
-
- NAME ISSYS_MOD
- ---------------------------------------- ---------
- backup_tape_io_slaves DEFERRED
- recyclebin DEFERRED
- session_cached_cursors DEFERRED
- private_temp_table_prefix DEFERRED
- audit_file_dest DEFERRED
- olap_page_pool_size DEFERRED
- object_cache_max_size_percent DEFERRED
- sort_area_size DEFERRED
- sort_area_retained_size DEFERRED
- client_statistics_level DEFERRED
- object_cache_optimal_size DEFERRED
- sessions IMMEDIATE
- timed_statistics IMMEDIATE
- timed_os_statistics IMMEDIATE
-
静态参数 :内存中的当前值是不可以被修改的。
- SQL> select NAME,ISSYS_MODIFIABLE from v$parameter where ISSYS_MODIFIABLE='FALSE';
-
- NAME ISSYS_MOD
- ---------------------------------------- ---------
- lock_name_space FALSE
- processes FALSE
- standby_db_preserve_states FALSE
- instance_groups FALSE
- event FALSE
- sga_max_size FALSE
- use_large_pages FALSE
- pre_page_sga FALSE
- shared_memory_address FALSE
- hi_shared_memory_address FALSE
- lock_sga FALSE
- processor_group_name FALSE
- allow_group_access_to_sga FALSE
- shared_pool_reserved_size FALSE
- SQL>
- SQL> select count(*) from v$parameter;
-
- COUNT(*)
- ----------
- 445
-
- SQL> show user;
- USER is "SYS"
- SQL>
spfile : server parameter file
二进制格式,脱离文件系统的束缚
只能放在server端
一致性比较好
只能使用sql命令修改
spfile的优先级高于pfile
命名规则: spfile
pfile: parameter file
文本文件
可以放在server端也可以放在client端
pfile灵活但是副本太多
可以使用文本编辑器直接修改
命名规则: init
参数文件保存的位置: $ORACLE_HOME/dbs
找到自己的参数文件!
使用spfile启动的实例,如何修改动态参数的内存值?
alter system set open_cursors=500 scope=memory;
使用spfile启动的实例,如何修改动态参数在参数文件中的取值?
alter system set open_cursors=400 scope=spfile;
使用spfile启动的实例,如何修改动态参数在参数文件中的取值和内存的取值?
- alter system set open_cursors=600 scope=both;
- alter system set open_cursors=600;
使用spfile启动的实例,如何修改静态参数在参数文件中的取值?重新启动实例生效!!! startup force
- alter system set db_unique_name='pdb1' scope=spfile;
-
- memory_target=50g
- SQL> show parameter open_cursors
-
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- open_cursors integer 300
- SQL> show spparameter open_cursors
-
- SID NAME TYPE VALUE
- -------- ----------------------------- ----------- ----------------------------
- * open_cursors integer 300
- SQL>
-
- [oracle@oracle-db-19c dbs]$
- [oracle@oracle-db-19c dbs]$ strings spfilecdb1.ora | grep open_cursors
- *.open_cursors=300
- [oracle@oracle-db-19c dbs]$
使用pfile:
- create pfile from spfile;
- create spfile from pfile;
使用pfile 启动实例
alter system set 命令没有scope选项
alter system set 命令只能修改内存
使用pfile 启动的实例,如何修改动态参数的内存值?
alter system set open_cursors=500;
使用pfile启动的实例,如果修改动态参数在参数文件中的取值?
使用vi直接修改。
使用pfile启动的实例,如何同时修改动态参数在参数文件中的取值和内存中的取值?
先用alter system set 命令,再使用vi
使用pfile启动的实例,如何修改静态参数在参数文件中的取值?
直接使用vi直接修改
修改pfile的默认路径
使用临时的pfile启动实例
startup pfile='/home/oracle/l.ora'