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 pwcopy
, pwcreate
, pwdelete
, pwmove
, 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数据库密码文件。
-
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
-
Run
orapwd
to move the password file to an Oracle ASM disk group.$ orapwd file='+data/ORCL/orapwdb' dbuniquename='orcl' Enter password for SYS:
-
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
orapwd
with theasm
switch set toy
.$ 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 theinput_file
switch and theasm
switch set toy
. - 要从现有的密码文件在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.
管理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.