Oracle安裝與操作系統用戶組

本文轉自Maclean 的博客http://www.askmaclean.com/archives/oracle-installation-os-user-groups.html


Oracle軟件在安裝維護過程中長要和操作用戶組(OS user group)打交道,從早前的只有oracle用戶和dba組發展到今天11gr2中的grid用戶和asm組,Oracle管理的日新月異可見一斑。

我們在單實例(single-instance)環境中常用的三個操作用戶組,分別是:

oinstall用戶組

oinstall 組是Oracle推薦創建的OS用戶組之一,建議在系統第一次安裝oracle軟件產品之前創建該oinstall組,理論上該oinstall組應當擁有oracle軟件產品目錄(例如$CRS_HOME和$ORACLE_HOME)和oracle Inventory信息目錄倉庫,oracle Inventory信息目錄記錄了系統上安裝過的oracle產品的記錄。關於oracle Inventory產品信息倉庫更多內容可以參考<深入理解Oracle Universal Installer (OUI)>一文。

若系統中已有安裝過oracle產品軟件,則現有的oracle Inventory目錄的所有組必須是今後用來安裝新oracle軟件產品的用戶的主組(primary group)。

現有的oracle Inventory擁有者組可以通過/etc/oraInst.loc位置文件瞭解:

inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall

若/etc/oraInst.loc(少數平臺不在該位置)位置文件不存在,那麼建議創建oinstall用戶組,注意在RAC環境中要保持各節點上用戶組的gid一致:

# /usr/sbin/groupadd -g GID oinstall

OSDBA用戶組(dba)

OSDBA是我們必須要創建的一種系統DBA用戶組(dba),若沒有該用戶組我們將無法安裝數據庫軟件及執行管理數據庫的任務。

OSOPER用戶組(oper)

OSOPER是一種額外的用戶組(oper),我們可以選擇要不要創建該用戶組,創建該用戶組可以滿足讓os用戶行使某些數據庫管理權限(包括SYSOPER角色權限)的目的。注意SYSOPER的權限包括startup和shutdown,所以要小心爲該用戶組添加成員。

 

創建OSOPER用戶組的方法:

# /usr/sbin/groupadd oper

綜上所述在單機環境(single-instance)中oracle軟件擁有者用戶(常見的oracle或者orauser),因該同時是oinstall、dba、oper用戶組的成員。同時該用戶的主用戶組必須是oinstall。

Oracle Database 11g release 2中選擇Privileged Operating System Groups

rdbms_os_groups_dba_oper

 

而在11.2的GI/CRS環境中數據庫軟件擁有者用戶(oracle或orauser)還必須是asmdba用戶組的成員。

usermod -g oinstall -G dba,oper,asmdba [oracle|orauser]

id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),701(asmdba),54324(oper)

注意OSDBA和OSOPER用戶組都受到$ORACLE_HOME/rdbms/lib/config.c 源文件的影響,該文件定義了默認的 SS_DBA_GRP “dba” 和SS_OPER_GRP “oper”,該源文件內容如下:

/*  Refer to the Installation and User's Guide for further information.  */

/* IMPORTANT: this file needs to be in sync with
              rdbms/src/server/osds/config.c, specifically regarding the
              number of elements in the ss_dba_grp array.
 */

#define SS_DBA_GRP "dba"
#define SS_OPER_GRP "oper"
#define SS_ASM_GRP ""

char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP, SS_ASM_GRP};
~

11g release2中oracle建議獨立地管理Grid Infrastructure和ASM實例,因此有必要創建更多的os用戶組以滿足不同的權限分配。

我們在11.2的GI中常用的ASM用戶組有以下三個:

OSASM(asmadmin)用戶組

如果使用ASM,那麼我們必須創建osasm(asmadmin)用戶組,該OSASM用戶組的成員將被賦予SYSASM權限,以滿足組成員管理Oracle Clusterware和Oracle ASM的權限需求。

OSDBA for ASM group(asmdba)用戶組

OSDBA(asmdba)用戶組的成員將被賦予讀寫訪問ASM文件的權限。GI/CRS擁有者用戶和所有oracle數據庫軟件的擁有者必須是該組的成員。同時所有OSDBA(dba)用戶組的成員也必須是asmdba組的成員。

OSOPER for ASM(asmoper)用戶組

asmoper和osoper類似都是額外的可選擇創建的用戶組,創建該獨立的用戶組以滿足賦予用戶一套受限的ASM實例管理權限(ASM的SYSOPER角色),該權限包括了啓動和停止ASM實例,默認情況下OSASM(asmadmin)組成員將擁有所有SYSOPER的ASM管理權限。

在11.2的GI/CRS環境中一般會創建grid或griduser用戶來管理GI軟件和ASM實例,以如下方式創建grid用戶:

 useradd -g oinstall -G asmadmin,asmdba,asmoper grid  

 id grid
 uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),700(asmadmin),701(asmdba),55000(asmoper)

Oracle 11g release2 Grid Infrastructure中選擇Privileged Operating System Groups:

rdbms_os_groups_dba_oper

綜合上述OS用戶和用戶組間的關係:

os_user_group_gi_rac

更多內容可以參考下文:

The OSDBA group (typically, dba)

You must create this group the first time you install Oracle Database software on the system. This group identifies operating system user accounts that have database administrative privileges (the SYSDBA privilege). If you do not create separate OSDBA, OSOPER and OSASM groups for the Oracle ASM instance, then operating system user accounts that have the SYSOPER and SYSASM privileges must be members of this group. The name used for this group in Oracle code examples is dba. If you do not designate a separate group as the OSASM group, then the OSDBA group you define is also by default the OSASM group.

To specify a group name other than the default dba group, then you must choose the Advanced installation type to install the software or start Oracle Universal Installer (OUI) as a user that is not a member of this group. In this case, OUI prompts you to specify the name of this group.

Members of the OSDBA group formerly were granted SYSASM privileges on Oracle ASM instances, including mounting and dismounting disk groups. This privileges grant is removed with Oracle Grid Infrastructure 11g release 2, if different operating system groups are designated as the OSDBA and OSASM groups. If the same group is used for both OSDBA and OSASM, then the privilege is retained.

The OSOPER group for Oracle Database (typically, oper)

This is an optional group. Create this group if you want a separate group of operating system users to have a limited set of database administrative privileges (the SYSOPER privilege). By default, members of the OSDBA group also have all privileges granted by the SYSOPER privilege.

To use the OSOPER group to create a database administrator group with fewer privileges than the default dba group, then you must choose the Advanced installation type to install the software or start OUI as a user that is not a member of the dba group. In this case, OUI prompts you to specify the name of this group. The usual name chosen for this group is oper.

The Oracle Automatic Storage Management Group (typically asmadmin)

This is a required group. Create this group as a separate group if you want to have separate administration privilege groups for Oracle ASM and Oracle Database administrators. In Oracle documentation, the operating system group whose members are granted privileges is called the OSASM group, and in code examples, where there is a group specifically created to grant this privilege, it is referred to as asmadmin.

If you have multiple databases on your system, and use multiple OSDBA groups so that you can provide separate SYSDBA privileges for each database, then you should create a separate OSASM group, and use a separate user from the database users to own the Oracle Grid Infrastructure installation (Oracle Clusterware and Oracle ASM). Oracle ASM can support multiple databases.

Members of the OSASM group can use SQL to connect to an Oracle ASM instance as SYSASM using operating system authentication. The SYSASM privileges permit mounting and dismounting disk groups, and other storage administration tasks. SYSASM privileges provide no access privileges on an RDBMS instance.

The Oracle ASM Database Administrator group (OSDBA for ASM, typically asmdba)

Members of the Oracle ASM Database Administrator group (OSDBA for ASM) are granted read and write access to files managed by Oracle ASM. The Oracle Grid Infrastructure installation owner and all Oracle Database software owners must be a member of this group, and all users with OSDBA membership on databases that have access to the files managed by Oracle ASM must be members of the OSDBA group for ASM.

Members of the Oracle ASM Operator Group (OSOPER for ASM, typically asmoper)

This is an optional group. Create this group if you want a separate group of operating system users to have a limited set of Oracle ASM instance administrative privileges (the SYSOPER for ASM privilege), including starting up and stopping the Oracle ASM instance. By default, members of the OSASM group also have all privileges granted by the SYSOPER for ASM privilege.

To use the Oracle ASM Operator group to create an ASM administrator group with fewer privileges than the default asmadmin group, then you must choose the Advanced installation type to install the software, In this case, OUI prompts you to specify the name of this group. In code examples, this group is asmoper.

An Oracle central inventory group, or oraInventory group (oinstall). Members who have the central inventory group as their primary group, are granted the OINSTALL permission to write to the oraInventory directory.

A single system privileges group that is used as the OSASM, OSDBA, OSDBA for ASM, and OSOPER for ASM group (dba), whose members are granted the SYSASM and SYSDBA privilege to administer Oracle Clusterware, Oracle ASM, and Oracle Database, and are granted SYSASM and OSOPER for ASM access to the Oracle ASM storage.

An Oracle grid installation for a cluster owner (grid), with the oraInventory group as its primary group, and with the OSASM group as the secondary group, with its Oracle base directory /u01/app/grid.

An Oracle Database owner (oracle) with the oraInventory group as its primary group, and the OSDBA group as its secondary group, with its Oracle base directory /u01/app/oracle.

/u01/app owned by grid:oinstall with 775 permissions before installation, and by root after the root.sh script is run during installation. This ownership and permissions enables OUI to create the Oracle Inventory directory, in the path /u01/app/oraInventory.

/u01 owned by grid:oinstall before installation, and by root after the root.sh script is run during installation.

/u01/app/11.2.0/grid owned by grid:oinstall with 775 permissions. These permissions are required for installation, and are changed during the installation process.

/u01/app/grid owned by grid:oinstall with 775 permissions before installation, and 755 permissions after installation.

/u01/app/oracle owned by oracle:oinstall with 775 permissions.

An Oracle central inventory group, or oraInventory group (oinstall), whose members that have this group as their primary group are granted permissions to write to the oraInventory directory.

A separate OSASM group (asmadmin), whose members are granted the SYSASM privilege to administer Oracle Clusterware and Oracle ASM.

A separate OSDBA for ASM group (asmdba), whose members include grid, oracle1 and oracle2, and who are granted access to Oracle ASM.

A separate OSOPER for ASM group (asmoper), whose members are granted limited Oracle ASM administrator privileges, including the permissions to start and stop the Oracle ASM instance.

An Oracle grid installation for a cluster owner (grid), with the oraInventory group as its primary group, and with the OSASM (asmadmin), OSDBA for ASM (asmdba) group as a secondary group.

Two separate OSDBA groups for two different databases (dba1 and dba2) to establish separate SYSDBA privileges for each database.

Two Oracle Database software owners (oracle1 and oracle2), to divide ownership of the Oracle database binaries, with the OraInventory group as their primary group, and the OSDBA group for their database (dba1 or dba2) and the OSDBA for ASM group (asmdba) as their secondary groups.

An OFA-compliant mount point /u01 owned by grid:oinstall before installation.

An Oracle base for the grid installation owner /u01/app/grid owned by grid:oinstall with 775 permissions, and changed during the installation process to 755 permissions.

An Oracle base /u01/app/oracle1 owned by oracle1:oinstall with 775 permissions.

An Oracle base /u01/app/oracle 2 owned by oracle2:oinstall with 775 permissions.

A Grid home /u01/app/11.2.0/grid owned by grid:oinstall with 775 (drwxdrwxr-x) permissions. These permissions are required for installation, and are changed during the installation process to root:oinstall with 755 permissions (drwxr-xr-x).

/u01/app/oraInventory. This path remains owned by grid:oinstall, to enable other Oracle software owners to write to the central inventory.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章