分类:
2008-05-17 16:49:47
|
Linux 和 UNIX 操作系统上需要的用户和组帐户 NIS/NIS+ 的问题:
如果环境中使用了 NIS/NIS+ 或者类似的软件,必须在安装 DB2 UDB 之前 手工创建需要的 DB2 UDB 用户和组帐户。安装之前请参考 DB2 UDB 文档中的 NIS 主题(请参阅 参考)。
在 Linux 和 UNIX 操作系统中,安装和操作 DB2 UDB 通常需要几个用户和组帐户:
1、Installation 用户帐户 2、DB2 Administration Server(DAS)用户帐户 3、DB2 UDB 实例所有者用户帐户 4、DB2 UDB fenced 例程用户帐户
默认情况下,DB2 安装向导在 DB2 UDB 服务器安装过程中将自动创建这些用户和组帐户。也可以在安装过程中指定已有的用户帐户。
Installation 用户帐户:
必须使用 “root” 帐户安装 DB2 UDB。这是具有足够权限执行安装的惟一帐户。
实例所有者用户帐户:
在实例所有者的主目录中创建 DB2 UDB 实例。该用户帐户控制所有的 DB2 UDB 进程,拥有该实例所含数据库使用的全部文件系统和设备。在 DB2 UDB 安装过程中,DB2 UDB 实例所有者使用的默认用户 ID 是 db2inst1,默认组是 db2iadm1。如果该用户名已经存在,DB2 安装向导就会在默认的名称后面增加一个 1-99 的数字,直到遇到一个不存在的用户 ID。比方说,如果安装新的 DB2 UDB 时用户 db2inst1 和 db2inst2 已经存在,向导就会创建用户 db2inst3。如果该用户已经存在,向导就会继续搜索(db2inst4、db2inst5 等等),直到发现可用的用户。这种命名算法也适用于 fences 用户帐户和 DB2 管理服务器用户帐户的创建。
一种好的办法是将实例所有者用户帐户限制在实例所有者组中,不在其他任何组中包含它。这样有助于控制可以修改实例或者实例中任何对象的用户帐户和组的数量。
在默认的 Linux 或 UNIX 安装中,可以选择在安装过程中创建一个实例。也可以在以后使用 db2icrt 和 db2idrop 工具程序创建其他实例或者删除已有的实例。这些工具位于 DB2PATH/instance 目录中,其中 DB2PATH 在 AIX 上代表 /usr/opt/db2_08_01,在其他基于 Linux 和 UNIX 的系统上代表 /opt/IBM/db2/V8.1。运行这些工具程序必须使用 root 用户帐户。在 Linux 和 UNIX 上使用 db2icrt 工具创建新实例时,必须指定与该实例关联的 fenced 用户帐户。选择的实例名必须映射到将成为实例所有者的用户帐户名。比方说,要把已有的用户帐户 prodinst 作为新实例的所有者,应该在 db2icrt 命令中指定 prodinst 作为实例名。该实例将在拥有它的用户的主目录中创建。比如,下面的命令创建了一个新实例 devinst,它属于 devinst 用户帐户,并使用已有的用户帐户 devfenc 作为 fenced 用户帐户: 清单 6. 在 Linux 和 UNIX 上创建新的 DB2 UDB 实例 db2icrt -u devfenc devinst。 DB2 UDB 不支持直接以 root 帐户作为数据库管理员。应该使用 su - DB2 Administration Server 用户帐户:
DB2 Administration Server(DAS)用户帐户用于在系统上运行 DAS 进程。默认安装过程中创建的默认用户 ID 是 dasusr1,默认组是 dasadm1。DB2 UDB GUI 工具还使用 DAS 帐户对本地服务器实例和数据库执行管理任务。每台上只需要一个 DAS。它可以管理服务器上定义的所有实例。DAS 用户帐户必须不同于实例所有者用户帐户。
一旦使用该帐户启动 DAS 进程,也必须使用该帐户停止。因此在 Linux 或 UNIX 上,必须使用 su - fenced 用户帐户:
fenced 用户帐户用于在 DB2 UDB 使用的地址空间(内存)之外运行用户定义函数(UDF)和存储过程。有时候,如果一个过程或函数不稳定或者在测试中,那么应该将其定义为 FENCED,这样就可以在自己的进程地址空间中运行。这样,如果该函数或过程崩溃或者异常终止,也不会对其他实例进程产生任何影响。为 fenced 用户创建的默认用户帐户是 db2fenc1,默认的组是 db2fadm1。由于安全的原因,我们建议不要使用实例所有者帐户作为 fenced 用户帐户。如果不需要这个层次的安全,比方说是在测试环境中运行,或者不准备使用 fenced UDF 或存储过程,可以直接使用实例所有者帐户而不必创建其他用户帐户。在创建新的实例时,必须在实例创建命令中指定 fenced 用户帐户(db2icrt ... -u 为其他 Linux 和 UNIX 用户建立 DB2 UDB 环境:
Linux 和 UNIX 环境在用户级上强制实施高安全策略,与一个用户帐户关联的文件和进程不能被其他用户直接访问。默认情况下,创建新的 DB2 UDB 实例时,一个特殊的 DB2 UDB 环境脚本 db2profile 也被添加到实例所有者的系统配置文件中,每次实例所有者登录到系统时都要使用该文件。这些脚本设置对数据库环境的访问,允许实例所有者执行 DB2 UDB 命令。为了让系统上的其他用户访问实例和 DB2 UDB 环境,他们也必须运行同样的脚本。一种办法是 “提供” DB2 UDB 实例所有者的 .profile 文件(或者该 .profile 文件引用的 db2profile 文件)。如果使用 Bourne 或 Korn shell ,那么可以编辑用户帐户的 .profile 文件,使该用户登录到系统时自动运行 db2profile 脚本。对于 C shell 用户,可以编辑 .login 文件让它运行 db2shrc 脚本文件。为了选择要使用的实例,请在 .profile 或 .login 脚本文件中添加下面的语句,或者在用户需要访问 DB2 UDB 的终端窗口中发出该语句(注意需要句点(.)和空格):
Bourne 或 Korn shell: . INSTHOME/sqllib/db2profile
C shell: source INSTHOME/sqllib/db2cshrc 其中 INSTHOME 是要使用的实例的主目录。
对于主目录中有自定义脚本版本的用户:
Bourne 或 Korn shell: . USERHOME/db2profile
C shell: source USERHOME/db2cshrc,其中 USERHOME 是用户的主目录。
如果需要同时使用多个实例,那么对使用的每个实例在单独的 终端窗口中运行该脚本。 |