创建适配器用户帐户

您必须在受管资源上为适配器创建一个用户帐户。 IBM® Verify在为 Oracle 创建应用程序时,请提供账户信息。

帐户必须能够远程连接到 Oracle 数据库服务器,并且必须具有管理 Oracle 数据库用户的足够特权。 表 1 列出了用户帐户为管理 Oracle 数据库用户所必须具有的必需特权。

表 1. 所需权限及其说明
特权 描述
CREATE USER 用于创建 Oracle 数据库用户。
GRANT ANY ROLE 用于授予或除去 Oracle 数据库用户的角色。
SELECT ANY TABLE 用于执行协调操作并从 Oracle 数据库检索以下信息:
  • 用户及其属性的列表
  • 表的列表
  • 角色的列表
  • 特权的列表
  • 使用者组的列表
  • Oracle 版本
GRANT ANY PRIVILEGE 用于授予或除去 Oracle 数据库用户的特权。
SELECT ANY DICTIONARY

SELECT ANY DICTIONARY 特权将替换 O7_DICTIONARY_ACCESSIBILITY 初始化参数的缺省设置。 该参数的缺省值为 FALSE

使用此系统特权,用户可以访问 SYS 模式中的所有对象,包括该模式中创建的表。

必须基于需求向各个用户授予必需的特权。 SELECT ANY DICTIONARY 特权未包含在 GRANT ALL PRIVILEGES 特权中。 您还可以通过角色授予 SELECT ANY DICTIONARY 特权。

根据您的需求,您可以使用以下场景:
  • 如果 O7_DICTIONARY_ACCESSIBILITY=TRUE,那么 SELECT ANY TABLE 特权提供对所有 SYS 和非 SYS 对象的访问权。
  • 如果 O7_DICTIONARY_ACCESSIBILITY=FALSE,那么 SELECT ANY TABLE 特权仅提供对非 SYS 对象的访问权。
  • 如果启用了 SELECT_CATALOG_ROLE 特权,那么 SELECT_CATALOG_ROLE 特权仅提供对所有 SYS 视图的访问权。
  • 如果启用了 SELECT ANY DICTIONARY 特权,那么 SELECT ANY DICTIONARY 特权仅提供对 SYS 模式对象的访问权。
  • 如果同时启用了 SELECT ANY TABLE 和 SELECT ANY DICTIONARY 特权,那么 SELECT ANY TABLE 和 SELECT ANY DICTIONARY 特权提供对所有 SYS 和非 SYS 对象的访问权。
  • SELECT ANY DICTIONARY 特权和 SELECT_CATALOG_ROLE 特权不会影响 O7_DICTIONARY_ACCESSIBILITY 设置。
SELECT ON SYS.USER$

要获取 Oracle 12c 支持(非容器数据库),请访问最近一次更改密码的日期或 SYS.USER$ 表中的 PTIME 列。

要检索上次密码更改日期,请将此特权授予用户。

WM_ADMIN_ROLE or SELECT_CATALOG_ROLE 要访问 DBA_WM_SYS_PRIVS 视图,请执行此操作。
DBMS_LOCK 和 ADMINISTER_RESOURCE_MANAGER 系统特权上的 EXECUTE 许可权 用于执行设置使用者组的存储过程。

缺省情况下,向用户授予了对该用户的模式中对象的访问权。 ANY 关键字向用户授予对所有模式中该类型的所有对象的访问权。 例如,

  • 要授予系统特权,您必须具有使用 ADMIN OPTION 或 GRANT ANY PRIVILEGE 授予的系统特权。
  • 要授予对象特权,必须满足以下某个条件:
    • 您必须是对象所有者。
    • 对象所有者必须使用 GRANT OPTION 向您授予对象特权。
    • 对象所有者必须向您授予 GRANT ANY OBJECT PRIVILEGE 系统特权。

如果您不使用 ANY 关键字,必须向用户帐户授予特权、角色、表等,或者该用户帐户必须是对象所有者。 在模式中添加新的特权、角色或表时,必须更新用户帐户的许可权。

要降低安全性风险,请勿使用 ANY 关键字向用户帐户授予特权。