访问Oracle ASM实例的身份认证

 

Authentication for Accessing Oracle ASM Instances

Oracle ASM实例没有数据字典,所以连接到Oracle ASM实例的惟一方法是使用三种系统特权之一:SYSASM、SYSDBA或SYSOPER连接Oracle ASM实例有三种模式:

 

使用操作系统身份验证的本地连接

使用密码身份验证的本地连接

通过使用密码验证的Oracle Net服务进行远程连接

 

ASM和数据库实例必须具有对磁盘组的读写操作系统访问权限。例如,Oracle ASM实例和数据库实例必须对组成相关的Oracle ASM磁盘组的磁盘具有相同的读写权限。对于Linux和UNIX系统,这通常是通过共享Linux和UNIX组成员关系(OSASM组)提供的。在Windows系统上,必须以管理员身份运行Oracle ASM服务。

About Privileges for Oracle ASM

在Oracle ASM安装期间,您可以为所有用户使用一个操作系统组,或者划分系统特权,以便数据库管理员、存储管理员和数据库操作员各有不同的操作系统特权组。

 

不管您是创建单独的操作系统特权组,还是使用一个组为所有系统特权提供操作系统身份验证,都应该使用SYSASM来管理Oracle ASM实例。SYSDBA特权不能用于管理Oracle ASM实例。如果使用SYSDBA特权在Oracle ASM实例上运行管理命令,则该操作将导致错误。SYSDBA特权用于数据库访问磁盘组。

 

Oracle还建议使用权限较低的用户,例如使用安装过程中创建的SYSDBA特权的ASMSNMP,以监视Oracle ASM实例。

 

使用指定为OSDBA、OSOPER和OSASM的组中的成员身份进行操作系统身份验证在所有Oracle平台上都是有效的。连接到Oracle ASM实例,因为SYSASM允许您完全访问所有可用的Oracle ASM磁盘组和管理功能。

Using One Operating System Group for Oracle ASM Users

如果不希望将系统访问权限划分为单独的操作系统组,则可以将一个操作系统组指定为其成员被授予访问权限的组,即OSDBA、OSOPER和OSASM(用于Oracle ASM特权)。所有这些操作系统的默认操作系统组名通常是dba,通常选择该组作为默认配置。

 

表3-1展示了一个没有为Oracle ASM用户分离特权的Linux部署示例。

Table 3-1 One operating system group and one set of privileges for all Oracle ASM users

Role/Software Owner User Group/Privilege

Oracle ASM administrator/Oracle Grid Infrastructure home

oracle

dba/SYSASM, SYSDBA, SYSOPER

Database administrator 1/Database home 1

oracle

dba/SYSASM, SYSDBA, SYSOPER

Database administrator 2/Database home 2

oracle

dba/SYSASM, SYSDBA, SYSOPER

Operating system disk device owner

oracle

dba

 

Using Separate Operating System Groups for Oracle ASM Users

为ASM用户使用单独的操作系统组

您可以为ASM上的特权指定单独的操作系统组作为操作系统身份验证组。下面的列表描述了Oracle ASM的独立操作系统身份验证组及其成员被授予的特权。

 

OSASM组(例如:asmadmin)

 

这个组被授予SYSASM特权,它为Oracle ASM实例提供完全的管理特权。

 

ASM组OSDBA(例如:asmdba)

 

这个组在Oracle ASM实例上被授予SYSDBA特权,它授予对存储在Oracle ASM上的数据的访问权。这个组拥有OSASM组的一个特权子集。

 

在实现单独的管理员权限时,为Oracle ASM实例选择与数据库实例(dba)不同的OSDBA组。

 

ASM组的OSOPER(例如:asmoper)

 

这个组在Oracle ASM实例上被授予SYSOPER特权,它提供启动、关闭、挂载、卸载和检查磁盘组等操作。这个组拥有OSASM组的一个特权子集。

当您实现独立的ASM和数据库管理员职责时,此配置需要不同的组和不同的软件所有者。这个实现隐含地要求OSASM和OSDBA是不同的组。对于这个配置,您必须为ASM组创建一个OSDBA,数据库实例必须是该组的成员才能访问Oracle ASM实例。

 

在一个已经配置为甲骨文电网基础设施安装,Oracle ASM用户,如网格,不需要Oracle数据库OSDBA集团的一员,如dba1或dba2,因为甲骨文和修改数据库代理运行数据库所有者和可以使用SYSDBA来连接到数据库。

 

但是,在Oracle重启配置中,Oracle ASM用户(grid)必须是每个数据库的OSDBA组(dba1、dba2、…)的成员。这个要求是必要的,因为Oracle Restart软件作为Oracle ASM用户(grid)运行,该用户必须能够使用CONNECT / as SYSDBA身份验证启动和停止数据库。

 

此外,操作系统磁盘设备的所有者应该与ASM软件的所有者相同。

表3-2显示了一个使用针对ASM用户的独立操作系统特权组的Linux部署示例。

Role/Software Owner User Group/Privilege

Oracle ASM administrator/Oracle Grid Infrastructure home

grid

asmadmin (OSASM)/SYSASM

asmdba (OSDBA for ASM)/SYSDBA

asmoper (OSOPER for ASM)/SYSOPER

dba1, dba2, ... (OSDBA for the databases when in an Oracle Restart configuration)

Database administrator 1/Database home 1

oracle1

asmdba (OSDBA for ASM)/SYSDBA

oper1 (OSOPER for database 1)/SYSOPER

dba1 (OSDBA for database 1)/SYSDBA

Database administrator 2/Database home 2

oracle2

asmdba (OSDBA for ASM)/SYSDBA

oper2 (OSOPER for database 2)/SYSOPER

dba2 (OSDBA for database 2)/SYSDBA

Operating system disk device owner

grid

asmadmin (OSASM)

The SYSASM Privilege for Administering Oracle ASM

SYSASM是一种系统特权,允许SYSDBA数据库管理特权与Oracle ASM存储管理特权分离。对SYSASM特权的访问是由指定为OSASM组的操作系统组中的成员授予的。这类似于SYSDBA和SYSOPER特权,它们是通过指定为OSDBA和OSOPER操作系统组的成员身份授予的系统特权。您可以为所有这些系统特权指定一个组,也可以为每个操作系统特权指定单独的组。

 

您还可以通过密码文件身份验证授予SYSASM特权,如Oracle ASM的密码文件身份验证中所述。

To connect locally as SYSASM using password authentication with SQL*Plus, use the following statement:

sqlplus SYS AS SYSASM
...
Enter password:

To connect remotely as SYSASM using password authentication with SQL*Plus, use the following statement:

sqlplus sys@\"myhost.mydomain.com:1521/+ASM\" AS SYSASM
...
Enter password:

在前面的例子中,+ASM是Oracle ASM实例的服务名。

要使用SQL*Plus的操作系统身份验证将本地作为SYSASM连接到Oracle ASM实例,请使用以下语句:

sqlplus / AS SYSASM

The SYSDBA Privilege for Managing Oracle ASM Components

您可以连接为SYSDBA,使用SQL*Plus或ASMCMD命令来管理与数据库相关的ASM组件。使用SYSDBA特权运行SQL或ASMCMD操作时,连接数据库实例而不是Oracle ASM实例。

 

作为SYSDBA连接到数据库实例有一组有限的ASM特权。例如,在连接SYSDBA特权时不能创建磁盘组。

 

当SYSDBA连接到数据库实例时,ASM操作被限制为:

创建和删除文件、别名、目录和模板

检查各种Oracle实例视图

对该用户创建的文件进行操作,或仅访问其他用户已明确授予访问权的文件

授予其他用户对ASM文件的访问控制

Creating Users with the SYSASM Privilege

登录到Oracle ASM实例SYSASM时,可以结合使用CREATE USER和GRANT SQL语句来创建具有SYSASM特权的用户。

 

还可以使用revoke命令从用户撤消SYSASM特权,还可以使用drop user命令从密码文件中删除用户。

 

注意:

这些命令只更新本地ASM实例的密码文件。

 

ASM不支持创建外部和全局用户。

The following example describes how to perform these SQL operations for the user identified as new_user:

REM create a new user, then grant the SYSASM privilege
SQL> CREATE USER new_user IDENTIFIED by new_user_passwd;
SQL> GRANT SYSASM TO new_user;

REM connect the user to the ASM instance
SQL> CONNECT new_user AS SYSASM;
Enter password:

REM revoke the SYSASM privilege, then drop the user
SQL> REVOKE SYSASM FROM new_user;
SQL> DROP USER new_user;

当您 REVOKE Oracle ASM密码文件中用户的最后特权时,不会像在Oracle数据库密码文件中那样自动删除用户。必须运行DROP USER来删除在ASM密码文件中没有权限的用户。

Operating System Authentication for Oracle ASM

指定为OSASM组的操作系统组的成员资格为SYSASM系统特权提供操作系统身份验证。OSASM是专门为Oracle ASM提供的。最初,只有安装ASM的用户是OSASM组的成员,如果您使用一个单独的操作系统组来获得这个特权。但是,您可以添加其他用户。OSASM组的成员被授权使用SYSASM特权进行连接,并拥有对ASM的完全访问权,包括对由该ASM实例管理的所有磁盘组的管理访问权。

 

在Linux和UNIX系统上,dba是Oracle ASM指定的OSASM、OSOPER和OSDBA的默认操作系统组。

 

在Windows系统中,ORA_ASMADMIN、ORA_ASMDBA和ORA_ASMOPER分别是Oracle ASM指定的OSASM操作系统组、OSDBA操作系统组和OSOPER操作系统组。

 

SQL*Plus命令、ASMCMD命令和ASMCA使用操作系统身份验证。

Password File Authentication for Oracle ASM

ASM的密码文件认证可以在本地和远程进行。要启用密码文件身份验证,必须为Oracle ASM创建一个密码文件。

 

如果您选择Oracle ASM存储选项,那么当ASMCA配置Oracle ASM磁盘组时,ASMCA会为初始用户(SYS和ASMSNMP)创建一个Oracle ASM密码文件。要将其他用户添加到密码文件,可以使用CREATE USER和GRANT命令。

 

如果您在没有使用ASMCA的情况下配置了一个Oracle ASM实例,那么您必须手动创建一个密码文件,并将SYSASM特权授予用户SYS。

 

SQL*Plus命令使用密码文件身份验证。

Managing a Shared Password File in a Disk Group

您可以管理磁盘组上的共享密码文件,允许跨集群系统访问单个文件。

注意:修改密码文件的位置之后,应该执行以下SQL语句来刷新密码文件元数据缓存。

SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE

The location of the password file can be changed by running orapwd, or the ASMCMD pwcopypwcreatepwdeletepwmove, or pwset command.

About a Shared Password File in a Disk Group

Oracle数据库或ASM的单个密码文件可以驻留在指定的ASM磁盘组中。让密码文件驻留在跨集群可访问的单一位置上,可以减少维护成本和密码不同步的情况。

 

只有在运行Oracle ASM实例并挂载指定的磁盘组时,才可以使用位于磁盘组上的密码文件进行身份验证。否则,必须使用操作系统身份验证来启动Oracle ASM实例和堆栈。

 

COMPATIBLE.ASM磁盘组属性必须设置为12.1或更高,以便设置密码所在的磁盘组。需要SYSASM特权来管理Oracle ASM密码文件。管理数据库密码文件需要Oracle ASM上的SYSDBA特权。

 

磁盘组中的共享密码文件由ASMCMD命令、ORAPWD工具和SRVCTL命令管理。ORAPWD支持在ASM磁盘组上创建密码文件。所有其他密码文件操作都是使用ASMCMD或SRVCTL命令执行的。

在运行命令(如ORAPWD)创建密码文件之前,请确保正确设置了ORACLE_SID和ORACLE_HOME环境变量。例如,在为Oracle ASM设置密码文件之前,设置ORACLE_SID和ORACLE_HOME环境变量,以确保可以连接到本地的Oracle ASM实例。有关环境变量和连接到Oracle ASM实例的信息,请参阅连接到并启动Oracle ASM实例。

 

SRVCTL提供用于管理磁盘组中的密码文件的命令,例如用于更新和显示密码文件位置的以下命令:

$ srvctl modify asm -pwfile location
$ srvctl modify database -db dbname -pwfile location
$ srvctl config asm

Creating a Password File in a Disk Group

注意:在集群中配置ASM时,不要使用orapwd来创建新的ASM密码文件。如果在集群配置中无法访问Oracle ASM密码文件,则必须使用可用的备份恢复密码文件,而不是创建新文件。有关在集群中重新创建共享的Oracle ASM密码文件(如文档1929673.1)的文章,请参阅My Oracle Support (https://support.oracle.com)。

可以使用orapwd在指定的ASM磁盘组中创建密码文件。

 

要从文件系统上的现有密码文件在磁盘组中创建Oracle数据库密码文件,请使用dbuniquename开关运行orapwd。dbuniquename开关指定为orcl标识的数据库实例创建一个Oracle数据库密码文件。

    1. Determine that the Oracle Database password file is currently located on the file system.

      SQL>  SELECT file_name FROM V$PASSWORDFILE_INFO; 
      FILE_NAME 
      ---------------------------------------------------------------------- 
       /u01/app/oracle/product/19.1.0/db_home1/dbs/orapworcl

       

    2. Run orapwd to move the password file to an Oracle ASM disk group.

      $ orapwd file='+data/ORCL/orapwdb' dbuniquename='orcl'
      
      Enter password for SYS:

       

    3. After the password file has been moved, update the password metadata cache with the ALTER SYSTEM statement and then confirm the new password file location.

      SQL>  ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE;
      System altered.
      
      SQL>  SELECT file_name FROM v$passwordfile_info; 
      FILE_NAME 
      ---------------------------------------------------------------------- 
      +DATA/ORCL/orapwdb

       

  • To create an Oracle ASM password file in a disk group, run orapwdwith the asm switch set to y.

    $ orapwd file='+data/ASM/orapwasm' asm=y
    
    Enter password for SYS:

     

  • To create an Oracle ASM password file in an Oracle ASM disk group from an existing password file, run orapwd with the input_fileswitch and the asm switch set to y.

  • 要从现有的密码文件在Oracle ASM磁盘组中创建Oracle ASM密码文件,请运行orapwd,并将input_file开关和ASM开关设置为y。
  • $ orapwd input_file='/oraclegrid/dbs/orapwasm' file='+data/ASM/orapwasm' asm=y
    
    Enter password for SYS:

     

  • Backing Up and Restoring an Oracle ASM Password File in a Disk Group

您可以备份ASM密码文件,如果ASM密码文件丢失或磁盘组无法访问,则可以恢复备份的密码文件。

 

本节介绍将ASM密码文件备份到磁盘组的步骤和恢复ASM密码文件的步骤。

源和目标磁盘组必须具有磁盘组属性COMPATIBLE.ASM set to 12.1 or higher.

  1. Locate the password file using the ASMCMD pwget command.

    For example:

    ASMCMD [+] > pwget --asm
    +DATA/orapwasm

     

  2. Back up the password file to another disk group with the pwcopy command.

    For example:

    ASMCMD [+] > pwcopy +DATA/orapwasm +FRA/my_pwfile_backup

     

    Using pwcopy without the --asm or --dbuniquename option does not change the current location of the password file. If necessary after the copy is made, you can set the current password file location with the pwset command.

    在不使用——asm或——dbuniquename选项的情况下使用pwcopy不会改变密码文件的当前位置。如有必要,复制完成后,可以使用pwset命令设置当前密码文件的位置。

  3. Verify which password file is in the current location after making a backup with the pwcopy command.

    For example:

    ASMCMD [+] > pwget --asm
    +DATA/orapwasm

     

  4. Verify the backup password file was created.

    For example:

    ASMCMD [+] > ls +fra/my_pwfile_backup
    my_pwfile_backup

     

  5. To restore the Oracle ASM password file, you can use pwset or pwcopy.

    To restore the Oracle ASM password file from the backup and use the existing location, use the pwset command with the --asm option.

    要恢复Oracle ASM密码文件,可以使用pwset或pwcopy。

    要从备份中恢复Oracle ASM密码文件并使用现有位置,请使用pwset命令和——ASM选项。

    For example:

    ASMCMD [+] > pwset --asm +FRA/my_pwfile_backup

     

    To restore the Oracle ASM password file from the backup to another disk group, use the pwcopy command with the --asm option.

    For example:

    ASMCMD [+] > pwcopy --asm +FRA/my_pwfile_backup +DATA2/my_orapwasm

     

    The --asm option with the pwset and pwcopy command sets the password location for the Oracle ASM instance.

    Verify 核实 查证

  6. Verify the location of the current password file with the pwgetcommand if you have changed the location.

    For example:

    ASMCMD [+] > pwget --asm
    +DATA2/my_orapwasm

     

    If the location of the current password file displayed is not the expected location, then flush the password metadata cache to refresh the password file information.

    SQL>  ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE;
    System altered.

     

    Administering the Oracle ASM Audit Trail

管理ASM审计跟踪

regularly

adv. 定期地;有规律地;整齐地;匀称地

facility 设备 工具

如果没有定期维护ASM、IOServer或APX代理实例的审计目标目录,那么审计跟踪文件的数量可能会非常大。为了控制这些文件的数量,可以使用操作系统工具(如UNIX平台上的Syslog工具)来管理审计。

Managing Instance Audit Records With Syslog

指向Syslog设施的审计记录应该与系统中其他系统生成的审计记录分开。为了确保这种分离,可以在/etc/syslog.conf中设置配置值,以便只将Oracle审计记录写入给定的文件。

例如,您可以选择在syslog.conf文件中设置/var/log/oracle/oracleaudit.log文件,专门用于Oracle审计记录,具体设置如下:

# Log all Oracle audit records.
LOCAL7.ALERT     /var/log/oracle/oracleaudit.log

 

应该重新启动syslog守护进程,以获取syslog配置文件中的更改。重新启动操作需要计算机上的超级用户(root)特权。例如:

# /etc/rc.d/init.d/syslog restart

在syslog配置文件中设置条目之后,在Oracle ASM、IOServer或APX代理实例参数文件中将AUDIT_SYSLOG_LEVEL初始化参数设置为相同的值(AUDIT_SYSLOG_LEVEL = LOCAL7.ALERT)并重新启动实例。

See Also:

 

  • Articles at My Oracle Support (https://support.oracle.com) for information about managing Oracle ASM, IOServer, or APX proxy instance auditing. For example:

    • Manage ASM Audit Files with syslog (Doc ID 1559573.1)

    • Manage Audit File Directory Growth with cron (Doc ID 1298957.1)

    • AUDIT_SYS_OPERATIONS Set To FALSE Yet Audit Files AreGenerated (308066.1)

    • Init.ora Parameter "AUDIT_FILE_DEST" Reference Note (39796.1)

  • Oracle Database Reference for information about the AUDIT_SYSLOG_LEVEL initialization parameter.

你可能感兴趣的:(访问Oracle ASM实例的身份认证)