是实例所有者的路径。
如果遇到这样的消息,一定要确认连接到数据库的用户或应用程序是否提供了合法的用户 ID 和口令。该用户 ID 和口令必须存在于执行用户身份验证的设施中(由目标 DB2 UDB 实例的 AUTHENTICATION 参数决定)。
授权
授权是决定指定用户 ID 对特定数据库对象和动作的访问和特权信息的过程。DB2 UDB 在内部存储和维护用户/组的授权信息。每当提交一个命令时,DB2 UDB 执行授权检查以保证您有执行该动作的正确特权。
特权可以授予特定的用户或者用户组。用户和组的定义本身同样在 DB2 UDB 外部定义。作为组成员的用户自动继承该组的特权。授予用户的特定权限优先于和该用户参与的任何组关联的特权,并且一直有效,即使后来从组中删除了用户。就是说,明确授予用户的特权必须明确收回。
多数数据库对象都由一组相关的权限,可使用 SQL 语句 GRANT 和 REVOKE 分配给用户和组。比如,下面的 SQL 语句将 ADM.ACCTABC 表的 SELECT 权限授予用户 bob:GRANT SELECT ON TABLE ADM.ACCTABC TO USER BOB。
一旦发出该语句,用户 bob 就可以提交引用该表的 SELECT 语句。类似的,下面的 SQL 语句从 clerks 组收回 ADM.LEGERS 视图的 INSERT 权限:REVOKE INSERT ON VIEW ADM.LEGERS FROM GROUP CLERKS。
只能收回以前授予的权限。关于能够授予用户和组的各种数据库对象特权的详细信息,请参阅 DB2 UDB 文当。
必须指出,特别是对 DB2 UDB 新用户,GRANT 语句不会检验用户和组帐户是否存在于外部设施中。这意味着,可以把权限和数据库中存储的信息授予不存在的用户和组帐户。这就造成了一种错误的印象,即可以在 DB2 UDB 中定义用户和组。比方说,连接到 finance 数据库时可以发出下面的语句:
GRANT SELECT ON TABLE ADM.TAXCODE TO USER XYZ。
其中的 xyz 是一个任意的字符串,没有映射为外部安全设施中的已有用户,然后 DB2 UDB 就会在其 GUI 工具或者某些目录表中显示 xyz,如图 2 所示。但这并不意味着存在或创建了名为 xyz 的用户。
图 2. 向未定义用户授权后的表特权
图 1 下方显示了一个授权场景的例子。这个用户叫 bob,已经成功连接到数据库,现在尝试对表 ADM.TAXCODES 执行 SELECT 语句。DB2 UDB 查看其目录表,看看该用户是否被授予了这个表的 SELECT 权限。因为此权限已经授予 bob,DB2 UDB 允许执行 SELECT 语句。
如果用户未经授权而对某个对象执行一种操作,DB2 UDB 就会拒绝操作并向客户机应用程序返回错误信息。比方说,如果用户 bob 尝试向 ADM.TAXCODES 表中插入一行,但是没有足够的权限,就会返回下面的错误消息:
清单 3. 用户授权失败时 DB2 UDB 返回的消息:
DB21034E The command was processed
as an SQL statement because it
was not a valid Command Line
Processor command. During SQL
processing it returned:
SQL0551N "BOB" does not
have the privilege to perform
operation "INSERT" on object "ADM.TAXCODES".
SQLSTATE=42501
如果遇到类似的消息,一定要确认连接到数据库所提供的用户 ID 是否具有执行目标操作的适当权限。必须明确授予该用户此特权,或者该用户属于拥有该特权的组,或者该用户是超级用户。
超级用户
可以为某些用户组分配特定的实例和数据库权限。DB2 UDB 定义了超级用户授权的层次结构(SYSADM、SYSCTRL、SYSMAINT、SYSMON),每一种都具有执行管理操作子集的能力,比如创建数据库、迫使用户离开系统和对数据库进行备份。关于授权级别的详细讨论请参阅 DB2 UDB 文当(参见 参考资料)。
可以使用相关的实例级参数配置实例的授权(SYSADM_GRP、SYSCTRL_GRP、SYSMAIN_GRP、SYSMON_GRP)。每个参数可以设置为具有该授权的用户组名(在 DB2 UDB 外部定义)。
比如,如果定义组 snrdba 包含所有高级 DBA 用户帐户,就可使用下面的命令将 SYSADM_GRP 实例参数值设为 snrdba,从而使所有这些用户成为 SYSADM 超级用户:
清单 4. 更新 SYSADM_GRP 实例参数
UPDATE DBM CFG USING SYSADM_GRP snrdba
db2stop
db2start
snrdba 组中的所有用户都将拥有和 SYSADM 授权级别关联的全部特权,从而能够执行授权级别所需要的全部管理任务。
以这种方式定义授权就可以区分 DB2 UDB 管理员和系统/网络管理员。比如,DBA 可能要求拥有 DB2 UDB 实例的全部管理授权,但不需要本地机器或网络的管理授权。在这种情况下,可以将该 DBA 的用户帐户添加到对系统/网络没有完全访问权限、但是对 DB2 UDB 实例有完全访问权限的组,只要在 SYSADM_GRP 实例参数中指定该组名即可。
在 Windows 上的 DB2 UDB 默认安装中,这些实例级超级用户授权参数(SYSADM_GRP、SYSCTRL_GRP、SYSMAIN_GRP、SYSMON_GRP))的值默认设为 NULL。这意味着超级用户权限被授予属于本地 Administrators 组的所有合法帐户。我们强烈建议明确将这些参数值改为合法的组名,以便防止未授权的访问。在 Linux 和 UNIX 安装中,这不是一个大问题,因为 NULL 值默认为实例所有者的基本组,而基本组在安装后只包含实例所有者的用户 ID。
还可以为用户分配一组数据库级的授权。数据库授权使用标准的 SQL GRANT 和 REVOKE 语句。关于这些数据库授权级别的更多信息,请参阅 DB2 UDB 文档(参见 参考资料)。
DB2 UDB 系统命令,如 db2、db2ilist、db2start、db2stop、db2iupdt 等,都是操作系统可执行文件。因此,运行这些命令的安全机制以文件的操作系统权限为基础。这些文件的权限在 DB2 UDB 安装时设置。
DB2 UDB 用户和组帐户命名规则
在 DB2 UDB 中,用户和组帐户必须遵守表 1 和 2 中所述的命名规则。这些限制是在定义帐户的外部设施中起作用的限制之外增加的。
表 1. 平台约束和限制 限制 Windows Linux/UNIX
(1) Windows NT®、Windows 2000®、Windows XP® 和 Windows Server® 2003 现在实际上限制为 20 个字符。
(2) 如果不使用 Client 身份验证,对于连接到 Windows NT、Windows 2000、Windows XP 和 Windows Server 2003 的非 Windows 32 位客户机,在明确指定用户名和口令时支持使用超过 8 个字符的用户名。
表 2 显示了对所有平台的命名限制。
(3) DB2 UDB 内部使用名为 PUBLIC 的伪组,可以为其授权或者收回特权。PUBLIC 不是外部安全设施中定义的真正的组。它是把特权授予通过身份验证的任何用户的一种方式。
(4) 还有其他一些特殊字符也能使用,这取决于操作系统和在哪里使用 DB2 UDB。但是为了避免不一致性和潜在的问题,在数据库中命名对象时不要使用其他特殊字符。
用默认用户 ID(如 db2admin)安装 DB2 UDB 并使用弱口令(或者根本没有)可能将系统置于风险中。很多计算机病毒、蠕虫和特洛伊木马的设计都利用了弱口令。比方说,很多这类程序都尝试使用常见口令如 “password”、“123456”、“111111”、“db2admin” 等获得对系统的访问。因此不要使用简单的口令很重要。
在验证用户时口令也很重要。比如,在 Linux 和 UNIX 操作系统上,未定义口令被作为 NULL 处理。没有定义口令的任何用户都被视作使用 NULL 口令。从操作系统的角度来看,这是一种匹配,用户经过验证后就能连接到数据库。
DB2 UDB 安装需要和创建的用户/组帐户
DB2 UDB 需要一个具有管理权的用户帐户来执行安装。该用户所需要的具体权限依赖于安装 DB2 UDB 的平台。默认情况下,DB2 UDB 在安装过程中要创建多个用户和组帐户。这些帐户用于 “拥有” 和启动在服务器上运行的各种 DB2 UDB 服务和进程。
这一节介绍在 Windows、Linux 和 UNIX 环境中安装 DB2 UDB 所需要的用户特权。还说明在 DB2 UDB 默认安装过程中创建的各种用户和组。
Microsoft Windows 操作系统上需要的用户和组帐户:
如果在 Windows 操作系统上安装 DB2 UDB,将需要下列用户帐户:
1、Installation 用户帐户。
2、DB2 Administration Server(DAS)用户帐户 。
3、DB2 UDB 实例所有者用户帐户。
Installation 用户帐户:
在运行 DB2 安装向导
[1] [2] [3] 下一页
 |
频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。
| 原始作者:佚名 |
录入时间:2007-5-23 22:14:07 |
| 信息来源:不详 |
投稿信箱:itqoo@126.com |
|
|
 |