ASM安全
这个小节主要描写叙述与ASM相关的各种安全配置话题,像
配置ASM须要的userids、groupids;ASM权限如
SYSOPER,SYSDBA和新的SYSASM权限,最后还有ASM
使用的ORACLEpassword文件,orapwd。
一个ASM实例多个UNIX Userids
假设使用一个不同于RDBMS实例的用户和独立的ASM_HOME,
那么每一个RDBMS实例的ORACLE 用户必须是ASM实例dba组的
成员;ASM的ORACLE用户不必是RDBMS实例DBA组的成员。
假设你想用不同的UNIX userid并使用多个其它UNIX userid创
建的ASM实例来管理他们自己的存储,你能够为每一个数据库
创建自己的dba组(不同于ASM dba组的),比如数据库能够使用
名字为dba1,dba2等DBA组。假设你想RDBMS实例以共享使用
同样的磁盘组,那么全部的RDBMS实例须要以read/write权限訪问
磁盘组。ASM实例须要以read/write权限訪问全部的磁盘。对于
RDBMS实例来说,你能够限制实例能够訪问哪些磁盘。
ASM权限
在ORACLE 10G,通过SQLPLUS訪问ASM实例与訪问标准的数据库
实例一样,能够以SYSDBA或SYSOPER权限訪问。然而,注意那是
由于没有数据字典在ASM实例中,权限认证是通过操作系统级别或
ORACLE password文件来完毕的。有代表性的是SYSDBA权限通过
操作系统用户组进行赋权。在UNIX系统上,一般使用的是dba group。
默认dba组拥有訪问本节点上全部实例的SYSDBA权限,包含ASM实例。
使用SYSDBA权限连接ASM,拥有管理本地系统磁盘组的全然的管理
訪问权限。
注意在WINDOWS系统中,ORACLE一般执行在local system或administrator
用户下,OSOPER和OSDBA组是硬编码组分别与ORA_OPER和ORA_DBA关联。
从ORACLE DATABASE 11g開始,一个叫SYSASM的权限成为訪问ASM
实例的主要手段,大多数ASM实例的管理命令不再使用与SYSDBA。SYSDBA
仍然可用向后兼容,假设使用了SYSDBA,在ASM alert日志中就会有例如以下信息
写入:
Warning: Deprecated privilege SYSDBA for command 'STARTUP' |
SYSASM权限的目的是把ASM认证与RDBMS认证分开。SYSASM权限拥有
对ASM实例的所有控制权。认证通过OSASM用户组,类似于SYSDBA权限,
仅仅是SYSDBA认证是通过OSDBA实现的。对于ORACLE Database 11g ASM来说,
使用SYSASM代替SYSDBA认证是最佳实践。
以下展示了怎样使用SYSASM而且配置一个新的拥有SYSASM角色的用户:
[oracle11@racnode1~]$ sqlplus "/ as sysasm" 创建ASMUSER,使用例如以下命令: SQL> CREATE USER ASMUSER IDENTIFIED BY ASMUSER1; SQL> GRANT SYSASM, SYSOPER TO ASMUSER; 使用ASMUSER连接ASM实例: [oracle@racnode1 ~]$ sqlplus "ASMUSER/ASMUSER as sysasm" SQL> select * from v$pwfile_users; USERNAME SYSDBA SYSOPER SYSASM ---------------------------- ----- ------- ------ SYS TRUE TRUE FALSE ASMUSER FALSE TRUE TRUE |
在ORACLE ASM 10g中,用户使用SYSOPER连接ASM实例权限与使用SYSDBA连接
权限大致同样,除了查询v$视图权限外。使用SYSOPER连接ASM实例使用例如以下命令:
[oracle11@racnode1~]$ sqlplus " as sysoper" |
从ORACLE DATABASE 11g起,ASM SYSOPER权限的职责与数据库SYSOPER基本同样。
以下的命令是SYSOPER用户可用的命令:
STARTUP/SHUTDOWN ALTER DISKGROUP MOUNT/DISMOUNT ALTER DISKGROUP ONLINE/OFFLINE DISK ALTER DISKGROUP REBALANCE ALTER DISKGROUP CHECK |
全部其它命令像CREATE DISKGROUP,ADD/DROP/RESIZE DISK,等等-都须要SYSASM
权限,这些命令都不能为SYSOPER权限用户所用。
全部的管理命令--包含STARTUP,SHUTDOWN,和ALTER/CREATE/DROP DISKGROUP
都登陆到ASM实例。比如,全部ALTER DISKGROUP 命令总是记录在alert log当实例发出
命令以后。假设有须要,通过SYS USER从ASM实例发出的操作都会记录到
.aud文件里。要做到这点须要配置例如以下初始化參数:
audit_sys_operations = TRUE _disable_instance_params_check = TRUE |
注意,与RDBMS实例不同,audit trail信息不能存放在ASM实例的AUD$中,由于
ASM没有数据库来存放这些表。因此输出通常dump到.aud文件中,这些文件
通常存放在默认位置--$ORACLE_HOME/rdbms/audit。
init.ora中的AUDIT_FILE_DEST控制audit文件默认位置,在WINDOWS上,这些
日志打印到WINDOWS SYSTEM LOG中。
ASM与orapwd
ASM实例使用ORACLE password文件供远程ASM訪问,很像RDBMS实例
供远端数据库訪问。
注意
RDBMS实例与ASM实例全然分离,因此ASM拥有自己的password文件,
RDBMS实例与ASM实例全然分离,因此ASM拥有自己的password文件,
不与RDBMS实例共享。
为了配置EM远程訪问ASM,ASM的password文件不需存在。假设ASM实例
是DBCA配置的,orapwd文件会自己主动创建。假设ASM实例是手动配置的
必须使用owapwd命令手工创建password文件:
[oracle11@racnode1~]$ orapwd file=$ORACLE_HOME/asm/orapw+ASM1 password=oracle |
标准orapwd工具用于管理ASM实例的password文件,仅仅是限制改动syspassword。
注意
在RAC系统中集群中的每一个ASM实例必须都有owapwd文件。
使用ASM实例中V$PWFILE_USERS视图来查看password文件里的内容:
SQL> SELECT * FROM V$PWFILE_USERS; USERNAME SYSDB SYSOP SYSAS ------------------------------ ----- ----- ----- SYS TRUE TRUE FALSE |
在ORACLE DATABASE 11g中,能够使用与RDBMS中一样的命令来改动ASMpassword文件。
然而仅仅能更新本地orapwd文件。
ASM管理
随着ASM的出现,卷管理和存储管理的责任似乎变得模糊了。ASM管理定义
角色能够有一些变种,依赖组织层(管理层)。例如以下是一些典型部署(案例):
- 由一个ASM管理员管理特定的ASM实例。ASM管理员能够来自Sysadmin(sa)
- ASM的软件能够由RDBMS用户来安装。这样能够加强ASM管理角色。
- 负责管理企业数据库DBA或ORACLE软件负责人同一时候管理ASM实例存储。
系统管理员(SA)管理OS LUNs(logical unit numbers),改动设备文件属组
同一时候把ASM磁盘与其它主机逻辑卷管理器
无论怎样分权和划分权责,以下的动作还是要为ASM存储做的:
确定ASM存储需求
依据应用/数据库来确定存储类型,如SATA(Serial Advanced Technology
Attachment)还是FC( Fibre Channel)。假设你部署一个分层存储这是一个很
重要的问题。比如,DATA磁盘组可能须要高端FC盘,而Flash磁盘组仅仅须要SATA
磁盘就能够了。
确定数据库须要多少空间。
确定数据库操作的IOPS数。结合IOPS需求来确定数据库对后端存储磁盘的
需求。这个步骤必需要要存储管理员和系统管理员系统完毕。
从磁盘阵列预分配磁盘
从存储阵列创建LUNs。这些LUNs能够从RAID(RAID 10 或 RAID 5)组中来
划分,映射给合适的主机。
在主机层预分配磁盘。
root用户在OS上确认这些LUNs能够被主机识别。为这些LUNs调整
权限和属组。
属组和权限改动完毕后,ASM能够发现这些盘了。这些盘就能够被加入到
已存在的磁盘组或用于创建新的磁盘组了。
创建必要的磁盘组
ASM识别存储阵列提供的磁盘以后,确定怎样把这些磁盘分配给磁盘组。
使用已有磁盘组或创建新磁盘组。
例如以下的ASM v$视图描写叙述了ASM的数据结构和组建:
V$ASM_ALIAS This view displays all system- and user-defined aliases. There is one row for every alias present in every diskgroup mounted by the ASM instance. The RDBMS instance displays no rows in this view. V$ASM_ATTRIBUTE This Oracle Database 11gview displays one row for each ASM attribute defined. These attributes are listed when they are defined in CREATE DISKGROUPor ALTER DISKGROUPstatements. DISK_REPAIR_TIMERis an example of an attribute. V$ASM_CLIENT This view displays one row for each RDBMS instance that has an opened ASM diskgroup. V$ASM_DISK This view contains specifics about all disks discovered by the ASM instance, including mount status, disk state, and size. There is one row for every disk discovered by the ASM instance. V$ASM_DISK_IOSTAT This displays information about disk I/O statistics for each ASM client. If this view is queried from the database instance, only the rows for that instance are shown. V$ASM_DISK_STAT This view contains similar content as the V$ASM_ DISK, except V$ASM_DISK_STATreads disk information from cache and thus performs no disk discovery. This view is primarily used for quick access to the disk information without the overhead of disk discovery. V$ASM_DISKGROUPV$ASM_DISKGROUPdisplays one row for every ASM diskgroup discovered by the ASM instance on the node. V$ASM_DISKGROUP_STAT This view contains all the similar view contents as the V$ASM_DISKGROUP, except that V$ASM_DISK_STATreads disk information from the cache and thus performs no disk discovery. This view is primarily used for quick access to the diskgroup information without the overhead of disk discovery. V$ASM_FILE The V$ASM_FILEview displays information about ASM files. There is one row for every ASM file in every diskgroup mounted by the ASM instance. In a RDBMS instance, V$ASM_FILEdisplays no rows. V$ASM_OPERATION This view describes the progress of an influx ASM rebalance operation. In a RDBMS instance, V$ASM_OPERATIONdisplays no rows. V$ASM_TEMPLATE This view contains information on user- and systemdefined templates. V$ASM_TEMPLATEdisplays one row for every template present in every diskgroup mounted by the ASM instance. In a RDBMS instance,V$ASM_TEMPLATEdisplays one row for every template present in every diskgroup mounted by the ASM instance with which the RDBMS instance communicates |
例如以下视图能够在RDBMS和ASM实例中訪问
见P68
总结
ASM实例管理ASM metadata。ASM实例与ORACLE实例很相似也有
SGA和绝大多数的后台进程。ASM能够运行类似RDBMS实例的命令。
ASM实例不挂在数据库,可是挂载磁盘组。ASM管理metadata使得
ASM数据文件能够被数据库使用。ASM实例和数据库实例必须能够訪问
全部的ASM磁盘。当文件打开或创建时ASM实例提供extent map给RDBMS实例。
RDBMS实例基于extent map直接读写磁盘。ASM实例没有在I/0路径中。
-----------------------------------------------------------------------------------------------------------------
本站注明原创和翻译的均为原创文章,文章同意转载,但必须以链接方式注明源地址,
否则追究法律责任!文章中难免有疏漏欢迎网友批评指正。
QQ: 173386747
Email: hailong.sun1982@gmail.com
Blog: http://blog.csdn.net/card_2005