分类:
2008-05-17 16:49:20
|
DB2 UDB 实例所有者用户帐户:
要拥有和启动 DB2 UDB 实例,需要一个本地或域帐户。可以在安装 DB2 UDB 之前创建 DB2 UDB 实例所有者用户帐户,也可以让 DB2 安装向导来创建。如果让 DB2 安装向导创建新的域用户帐户,执行安装使用的用户帐户必须具有创建域用户帐户的权限。该用户帐户也必须是执行安装的上 Administrators 组的成员。DB2 安装向导创建该帐户时自动授予下列用户权限: 作为操作系统的一部分: 调试程序、创建 token 对象、增加配额、锁定内存页、作为服务登录、代替进程级的 token。
如果创建或指定了不同的帐户,一定要赋予该帐户上述用户权限。为了保证正确设置了这些权限,打开 Windows 控制面板(Start > Settings > Control Panel)并双击 Administrative Tools 图标。双击 Local Security Policy 图标。对于上面列出的每种策略,保证该用户包含在授权的用户和组列表中。提供的口令不正确会造成 DB2 UDB 启动过程中无法加载服务,有可能禁止执行特定的动作。
在默认 Windows 安装中将自动创建一个名为 DB2 的实例。可以分别使用 db2icrt 和 db2idrop 工具程序创建其他实例或删除已有的实例。这些工具放在 DB2PATHsqllibbin 目录中,其中 DB2PATH 是安装 DB2 UDB 的位置。运行这些工具程序必须使用具有本地 Administrator 权限的用户帐户。如果创建实例时通过参数提供用户帐户和口令,那么将使用该帐户拥有和启动该服务。如果没有提供用户帐户和口令,则使用 LocalSystem 帐户。比如,下面的命令将创建一个新实例 devinst,并赋予 LocalSystem 帐户拥有和启动该实例进程的权限:
清单 5. 在 Windows 中创建新的 DB2 UDB 实例db2icrt devinst。 修改帐户信息:
安装后可以修改与每个 DB2 UDB 服务关联的用户帐户。此外,从 DB2 UDB Version 8.2 开始,可以使用内置的 LocalSystem Account(LSA)帐户启动 DB2 UDB 服务。在使用严格口令策略的系统上,使用 LSA 可能比较有利,因为 LSA 没有关联的口令。比如在有些环境中,要求用户每两个月换一次口令,否则其帐户就会被暂时锁住。这一策略要求修改指定用户帐户的口令来启动 DB2 UDB 服务。如果配置成启动某些服务的用户帐户被锁住,或者用户帐户的口令被修改了,但是没有在服务启动配置中更新,这些服务将无法启动。
在将任何 DB2 UDB 服务从专门的用户帐户移交给 LocalSystem 帐户之前,必须考虑到 LocalSystem 帐户不能访问 LAN 共享,因为不能在其他计算机上验证身份。因此必须保证 DB2 UDB 系统不使用其他机器上的任何文件资源。
在 LocalSystem Account(LSA)上下文中运行的程序使用本地的 DB2 UDB 隐式连接。如果开发在该帐户下运行的应用程序,必须知道 DB2 UDB 关于对象模式名以 “SYS” 开头的限制。如果应用程序包含创建 DB2 UDB 对象的语句,应该这样写:
对于静态 SQL,必须为 QUALIFIER 选项绑定一个值而不能使用默认值。 对于动态 SQL,要创建的对象必须显式地用 DB2 UDB 支持的模式名限制,否则必须将 CURRENT SCHEMA 注册表变量设置为某个模式。
图 4 列出了一些在 DB2 UDB 系统上运行的 DB2 UDB 进程。可以看到,每个进程都有一个相关的所有者(用户名)。关于与 DB2 UDB 有关的所有进程的说明,请参阅 “Everything You Wanted to Know About DB2 Universal Database Processes”(developerWorks,2003 年 4 月)。
要改变用于启动 DB2 UDB 服务的用户帐户,打开 Services 面板(Start > Settings > Control Panel > Administrative Tools > Services)。右击 DB2 UDB 服务查看其属性。单击服务属性窗口(图 5)上方的 Log On 选项卡。在该选项卡中,可以指定服务启动时使用的用户帐户,或者指定为 LSA。单击 OK 保存修改,关闭该服务的属性窗口。
一般来说,应该使用单独的、可标识的用户帐户来启动 DB2 UDB 服务。但是,环境中对用户帐户的控制越紧,就越有可能使用已有的用户帐户或者 LocalSystem 帐户启动这些服务。一旦设置一个帐户来运行某项服务,就不能删除该帐户,否则与该帐户相关的服务就无法启动。即便使用相同的名称重新创建该帐户也不能解决。在这种情况下,必须像前面所述的那样手工进入服务面板,重新配置启动该服务使用的用户帐户。
DB2USERS 和 DB2ADMNS 组:
从 DB2 UDB Version 8.2 开始,为 Windows 环境下的 DB2 UDB 增加了一些安全特性。作为 DB2 UDB 安装的一部分出现了一个新的选项,即在操作系统中创建两个新的组:DB2USERS 和 DB2ADMNS。一旦创建了这两个组,只有是这些组的成员的用户帐户才能访问系统上的 DB2 UDB 文件(包括命令和 DB2 UDB 创建的用户数据文件)。
可以改变这些组的名称,但应该尽量使用默认的名称。如果和已有的组名冲突,就会提示修改组名。如果在初始 DB2 UDB 安装中没有选择该选项,以后可以运行 db2secv82.exe 程序来启用。该程序在 DB2PATHSQLLIBBIN 目录中,其中的 DB2PATH 是安装 DB2 UDB 的位置。为了最大程度地服务器,应该启用该选项。
图 6 显示了启用该安全特性的情况。服务器文件系统中所有的 DB2 UDB 文件夹都要求用户必须是这两个组之一的成员,才能访问 DB2 UDB 文件夹和文件。
一旦使用 db2secv82.exe 命令启用了这种额外的安全特性,有两种办法可以取消:
立即再次运行 db2secv82.exe 命令,不对系统做任何改变。如果已经对系统做了任何改变,只能使用下面的。 将 EVERYONE 组添加到 DB2ADMNS 和 DB2USERS 组:
如果启用安全特性,DB2 UDB 注册表变量 DB2_EXTSECURITY 将设置为 YES。这就告诉 DB2 UDB 需要进行附加的安全检查。如果创建 DB2ADMNS 和 DB2USERS 组后将 DB2_EXTSECURITY 的值改为 NO,文件和文件夹的访问权限仍然属于这两个组,但是 DB2 UDB 将不执行额外的安全检查。 |