IBM Cognos 最佳实践: Enterprise Planning - DB2 中的 User Lockdown

产品:IBM Cognos Planning;关注领域:基础架构

免费下载:IBM® Cognos® Express V9.5 或者 Cognos® 8 Business Intelligence Developer Edition V8.4 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

本文的目的是创建安全的 IBM Cognos Planning 用户,需要在使用 DB2 9.5 时启用 Generate Scripts 选项。

本文假定读者了解 DB2 的安装,并了解生成用于创建 sql 脚本的应用程序,以及生成用于 IBM Cognos Planning 的应用程序 XML 等方面的相关技术。


表空间硬编码

如果想要设置一个默认表空间,供每个应用程序重用或发布容器创建,您必须修改 <install>\c8\bin 目录中 epSQLDDLDB2v7Resources.xml 中的设置。该文件可能设置为只读,这样需要确保在尝试保存之前移除只读设置。

利用熟悉的文本编辑器来对其进行编辑。要对表空间名称进行硬编码,只需改变下面突出显示的内容,来匹配想要使用的表空间。在本例中,将已经硬编码的 cognos8_reg 作为数据、索引、以及 blobs 的默认表空间。

图 1. epSQLDDLDB2v7Resources.xml 文件. 1
epSQLDDLDB2v7Resources.xml 文件. 1

设置脚本命令后缀

默认情况下,IBM Cognos 8.4 Contributor 不会为其 SQL 脚本的每行应用命令结束符,即分号。当尝试利用 DB2 CLP 或者 Command Editor 来执行 SQL 脚本,有可能出现 DB2 脚本工具将 SQL 脚本当做长命令来读取的错误。通过 <install path>\bin\epEAdminDB2v7Resources.xml 文件,我们可以将每一行的后缀设置为以分号或者其他行结束条目来结束。

利用熟悉的文本编辑器打开 epEAdminDB2v7Resources.xml,改变 Instruction Suffix 条目,来在每行末插入分号。如果具有多个 Contributor Admin Consoles 机制,将需要变更为将要生成的脚本。

图 2. epSQLDDLDB2v7Resources.xml 文件. 2
epSQLDDLDB2v7Resources.xml 文件. 2

利用 DB2 CLP(命令行处理程序)来运行脚本

如何执行 SQL 脚本,打开命令行处理器。

Start>All Programs>IBM DB2>DB2Copy>Command Line Tools>Command Line Processor

一旦已打开 CLP,就必须连接到数据库实例。步骤如下:

Connect to <db2instance> user <uid> using <pwd>
Eg. Connect to cognos8 user db2admin using db2admin

图 3. CLP 数据库连接信息 1
CLP 数据库连接信息 1

输入 db2 –c 然后复制/粘贴所要执行的 SQL 脚本。该脚本可以是来自 IBM Cognos Planning Contributor 的 Application Creation 脚本,或者是 Publish 创建或同步脚本。

还可使用 db2 –tvf <path>script.sql,这样就可以指出 sql 脚本所在的文件,并指定从其中运行。

图 4. 输入 db2-c copy 命令 1
输入 db2-c copy 命令 1

在 db2 –c 条目后粘贴 SQL Script,这将会执行还脚本。当脚本完整后,它将会返回到命令提示符。

图 5. 将 Contributor SQL 脚本粘贴到 DB2 1
将 Contributor SQL 脚本粘贴到 DB2 1

使用 DB2 Command Editor

DB2 还提供 Command Editor,这在执行 SQL 脚本时提供 GUI 界面。Command Editor 还是很多 DB2 功能的接口。想对此做深入了解,见 DB2 文档。

要在命令编辑器中执行 IBM Cognos Planning 脚本,首先要打开 Command Editor:

Start>All Programs>IBM DB2>DB2Copy>Command Line Tools>Command Editor

单击 Add 按钮,这将会连接到目标数据库。从可用数据库清单中选择目标,并提供有效的 userid 与 password。

图 6. 选择目标数据库 1
选择目标数据库 1

如果登入成功,将会在结果画面中看到提供相关人员信息的消息。同时还要留意 Statement Termination character,默认情况下,这会是我们在前面设置的分号匹配。

图 7. 数据库连接消息 1
数据库连接消息 1

利用 Open Icon 来浏览 SQL 文件的位置。

图 8. DB2 CLE 浏览到 SQL 脚本文件夹 1
DB2 CLE 浏览到 SQL 脚本文件夹 1

加载了脚本后,就可利用 Execute 按钮来执行任务。脚本执行结果将会在结果窗口中展示。

图 9. CLE Execute 按钮 1
CLE Execute 按钮 1

创建 IBM Cognos Planning Application

在 IBM Cognos Planning Contributor 中右键单击 Applications 项目,并选择 Create New Application。单击欢迎画面中的 Next。

图 10. Contributor - 创建 New Application 1
Contributor - 创建 New Application 1

从中选择想要用于构建 Contributor Application 的 Analyst Model 并单击。在 Model Details 屏幕中再次单击 next。

图 11. Contributor - 选择 Analyst Library 1
Contributor - 选择 Analyst Library 1

选择 e.list 并单击 next。

图 12. Contributor - 选择 e.List 1
Contributor - 选择 e.List 1

为 Contributor Application 提供名称、datastore 名、应用程序 ID、以及备份位置。

由于我们正在使用 lockdown 用户,因此,无法利用 Wizard 来创建应用程序,因此必须利用 Generate datastore 脚本以及 datafiles radio 按钮。

此时如果想要利用非硬编码表空间,可通过单击 Advanced 按钮来进行设置。

图 13. Contributor - 运行数据库脚本 1
Contributor - 运行数据库脚本 1
图 14. Contributor - 指定表空间 1
Contributor - 指定表空间 1

单击 Next 和 Finish,将会完成创建 Generate Script 以及应用程序 XML 文件的步骤。

图 15. Contributor - Application Wizard Finish 1
Contributor - Application Wizard Finish 1

在 Application Data 文件夹中,可以找到 SQL 脚本以及应用程序 XML 文件。打开 SQL 文件并将条目内容复制到剪贴板中。

图 16. Windows Explorer - 展示 SQL 剪贴板 1
Windows Explorer - 展示 SQL 剪贴板 1

打开 DB2 CLP(命令行处理程序)并连接到想要使用的数据库。

图 17. DB2 CLP db2-c 复制与粘贴 1
DB2 CLP db2-c 复制与粘贴 1

利用 db2 –c 选项并在其后粘贴剪贴板中的细节内容。

该脚本将会在 DB2 数据库中创建 Planning Application。

图 18. DB2 CLP - 导入结果 1
DB2 CLP - 导入结果 1

现在需要在将应用程序增加到 Contributor Admin Console 之前将权限授予 lockdown 用户。


创建 lockdown 用户

设置 lock down 用户:(假设已在 Windows NT 中创建了用户)

打开 Control Panel 增加新用户。.

图 19. DB2 Control Center - 用户 Lockdown 1
DB2 Control Center - 用户 Lockdown 1

如果用户已存在,则可从下拉菜单中选择用户,还可输入新用户名。在本例中我们输入 EPLOCKDOWN。需要利用 Windows NT Users and Groups 来为该用户指定密码。

图 20. 增加用户 - EPLOCKDOWN 1
增加用户 - EPLOCKDOWN 1

权限需求:

需要 ‘Connect to database’ 和 ‘Access to the Load Utility’ 。如果没有 Load Utility,在 Imports 或者 Publishes 过程中的批量加载将会失败。

图 21. 增加用户 - EPLOCKDOWN 2
增加用户 - EPLOCKDOWN 2

选择 Table,利用 Add Table 按钮来选择通过 GenScripts 所创建的,想要允许 LockDown 用户使用的 EP Model。

图 22. 增加用户 - EPLOCKDOWN 3
增加用户 - EPLOCKDOWN 3

利用 Control-A 突出显示想要授权访问的所有 EP Model 表,确保 Priviledges Select/Insert/Update/Delete 已有 Yes 权限,不需要 Grant 权限。

图 23. 增加用户 - EPLOCKDOWN 4
增加用户 - EPLOCKDOWN 4

在 Tablespace 内单击 add table space,并选择已在 Model 中创建的 tablespace。

为该表空间指定 Yes 权限,不需要 Grant 权限。

图 24. 增加用户 - EPLOCKDOWN 5
增加用户 - EPLOCKDOWN 5

现在已经针对要增加到 Contributor Admin Console 中的 datastore 为 eplockdown 用户进行授权。

返回到 Contributor Admin Console,并右键单击 Applications。这将会针对我们已经授权连接的任何 Contributor Applications,来扫描 DB2 数据库。

图 25. Contributor - 连接到现有应用程序 1
Contributor - 连接到现有应用程序 1

选择 application 并单击 Add。

图 26. Contributor - 连接到现有应用程序 2
Contributor - 连接到现有应用程序 2

增加了应用程序后,会发现不存在 Development 模型,并将会请求应用程序 xml。如果必要,可浏览到 Application Data 目录,并突出显示 xml 文件,然后单击 Open。

图 27. Contributor - 连接到现有应用程序 3
Contributor - 连接到现有应用程序 3

具有开发模型的应用程序出现在清单中。

图 28. Contributor - 连接到现有应用程序 4
Contributor - 连接到现有应用程序 4

发布到 DB2 9.5

与应用程序用户不同,发布用户需要对权限做少量改变。因为需要在发布容器中删除数据以及构建索引。

想使用 Generate Script,需要在 Application Creating 之后启用一些选项。如果计划使用 Generate Scripts,需要将 Optimize Publish Performance 设置为 Enable Indexing,以及将 Generate Scripts 设置为 Yes。

图 29. Contributor - Admin Options 画面 1
Contributor - Admin Options 画面 1

要在 Application expand Publish 中创建发布容器脚本 > Table-Only 布局并单击 Options 选项卡。单击 Publish 按钮。

图 30. Contributor - Table Only Publish 画面 1
Contributor - Table Only Publish 画面 1

提示创建 Publish Container Script 的选项。

图 31. Contributor - 发布容器脚本 1
Contributor - 发布容器脚本 1

单击 no,就可以创建脚本。利用该选项无法变更表空间。这将会采用在 epSQLDDLDB2v7Resources.xml 文件中的默认表空间设置。

如果请求 Tablespaces 的运行时间变更,则需要在 SQL 脚本生成时,由 DBA 来修改。

图 32. Contributor - 发布容器脚本 2
Contributor - 发布容器脚本 2

单击 yes,将会在 Application Data 目录中生成脚本。

图 33. Contributor - 发布容器脚本 3
Contributor - 发布容器脚本 3

利用命令行处理程序(CLP)来执行该脚本。

利用 db2 –c 命令将脚本粘贴到命令窗体中。这将会创建发布容器。

图 34. DB2 CLP - 复制发布容器脚本 1
DB2 CLP - 复制发布容器脚本 1

打开 DB2 Admin Console 并按照前面获取权限的相同方法来为 lockdown 用户授权。

确保 EPLockdown 用户已取得下面截屏内容中显示的相同的权限。

图 35. DB2 - 变更用户 EPLOCKDOWN 1
DB2 - 变更用户 EPLOCKDOWN 1

打开 schema 选项卡,并将 Creatin、Dropin、以及 Alterin 授权改为 YES。

图 36. DB2 - 变更用户 EPLOCKDOWN 2
DB2 - 变更用户 EPLOCKDOWN 2

在 Table 选项卡中选择 add table 按钮,并从 schema 下拉菜单中选择前面从脚本中创建的发布容器。

图 37. DB2 - 变更用户 EPLOCKDOWN 3
DB2 - 变更用户 EPLOCKDOWN 3

突出显示一个表,并单击 ctrl-a 来突出显示清单中的所有表,然后单击 OK。

图 38. DB2 - 增加表 1
DB2 -增加表 1

回到 Table 选项卡中,突出显示所有从发布架构中新增加的表,除了 Control 以外,将以下所有项目权限设置为 Yes。

图 39. DB2 - 变更用户 EPLOCKDOWN 4
DB2 - 变更用户 EPLOCKDOWN 4

单击 Table Space 选项卡,并增加所采用的 Tablespace,并提供 Use 特权为 Yes。

图 40. DB2 - 变更用户 EPLOCKDOWN 5
DB2 - 变更用户 EPLOCKDOWN 5

现在准备发布。

回到 Publish >Table-Only Publish 文件夹中的 Contributor,选择发布所必须的 cubes 以及 e.list 项目,单击 option 选项卡,并单击 Generate Sync Script for Database。再次提示是否已经创建发布容器。这次选择 yes。

图 41. Contributor - 发布 Table-Only 布局 1
Contributor - 发布 Table-Only 布局 1

提示选择想要使用的发布容器。选择所创建的那个。

图 42. Contributor - 发布 Table-Only 布局 2
Contributor - 发布 Table-Only 布局 2

提示将这一发布容器增加到 Job Server Cluster。选择 Job Server cluster 并单击 close。

图 43. Contributor - 发布 Table-Only 布局 3
Contributor - 发布 Table-Only 布局 3

提示同步脚本。在完全发布之前,需要运行该脚本。这可以为我们所选择的选项准备发布容器。

图 44. Contributor - 发布运行脚本消息 1
Contributor - 发布运行脚本消息 1

针对 DB2,通过 CLP(命令行处理程序)db2 –c 命令执行该脚本。

图 45. DB2 CLP - 运行发布脚本 1
DB2 CLP - 运行发布脚本 1

现在准备单击 Publish。

图 46. Contributor - 发布 Table-Only 布局 4
Contributor - 发布 Table-Only 布局 4

参考资料

学习

获得产品和技术

讨论

  • 参与 developerWorks 博客 并加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=677373
ArticleTitle=IBM Cognos 最佳实践: Enterprise Planning - DB2 中的 User Lockdown
publish-date=07222011