DB2基础学习六 DB2客户端编目
来自: 推动者社区
在BD2中,创建数据库时 DB2 会自动地对数据库进行编目。它在本地数据库目录中为数据库编写一个条目,在系统数据库目录中编写另一个条目。如果数据库是从远程客户机(或者是从同一台机器上另一个实例执行的客户机)创建的,那么也会在客户机实例上的系统数据库中创建一个条目
那么为什么需要编目呢?
如果没有编目信息,应用程序就无法连接数据库!DB2 有多个用来访问数据库的目录。这些目录让 DB2 能够找到已知的数据库,无论它们是在本地系统上,还是在远程系统上。系统数据库目录包含一个列表和指针,它们指出可以找到每个已知数据库的地方。节点目录包含的信息指出如何以及在哪里能够找到远程系统或实例。要在这些目录中放进一个条目,需要使用 CATALOG 命令。要删除条目,应该使用 UNCATALOG 命令。
DB2在客户机上对数据库进行编目有三种方法:
∙ 使用发现的自动配置
∙ 使用访问配置文件的自动配置
∙ 手工配置
教程中将描述所有这些方法。从客户机的角度来看,使用配置文件或发现对数据库进行编目是最容易的方法。手工配置要求了解数据库的位置和特征才能成功地执行命令。
在此我们主要讲手工配置,上一节我们主要学习了DB2的用户和授权机制。
当DB2用户在发出 attach 或 connect 命令时,它在底层操作系统安全特性的帮助下完成这个任务。
attach 命令用来连接 DB2 实例,connect 命令用来连接 DB2 实例中的数据库。
当我们用创建 DB2 实例时使用的用户 ID 登录到安装 DB2 的机器上。发出以下命令:
在这里,隐式地执行身份验证。使用登录机器的用户 ID,并假设这个 ID 已经经过了操作系统的检验。
db2 connect to sample ur test1 using password Databa Connection Information Databa rver = DB2/NT 9.1.0 SQL authorizatio ID = TEST1 Local databa alias = SAMPLE db2 connect to sample ur test1 using password Databa Connection InformationDataba rver = DB2/NT 9.1. SQL authorization ID = TEST1Local databa alias = SAMPLE |
|
在这里,显式地执行身份验证。用户 test1 和密码 password 由操作系统进行检验。用户 test1 成功地连接到示例数据库。
db2 connect to sample ur test1 using password new chgpass confirm chgpass
以上采用了操作系统验证,并更新了密码。
DB2 9 能够根据用户是试图连接数据库,还是执行实例连接和实例级操作,指定不同的身份验证机制。在默认情况下,实例对于所有实例级和连接级请求使用一种身份验证类型。这由数据库管理程序配置参数 AUTHENTICATION 来指定。
在服务器上设置身份验证
在数据库服务器上,在数据库管理程序配置(DBM CFG)文件中使用 AUTHENTICATION 参数设置身份验证。请记住,DBM CFG 文件是一个实例级配置文件。因此,AUTHENTICATION 参数影响这个实例中的所有数据库。以下命令演示如何修改这个参数。
要查看配置文件中的身份验证参数:
要将身份验证参数修改为 rver_encrypt:
C:\PROGRA~1\SQLLIB\BIN> db2 update dbm cfg using authentication rver_encrypt C:\PROGRA~1\SQLLIB\BIN> db2stopC:\PROGRA~1\SQLLIB\BIN> db2start |
学习是什么 |
db2 connect to sample ur test1 using password new chgpass confirm chgpass C:\PROGRA~1\SQLLIB\BIN> db2 update dbm cfg using authentication rver_encrypt C:\PROGRA~1\SQLLIB\BIN> db2stop C:\PROGRA~1\SQLLIB\BIN> db2start |
气炎 |
管宁割席文言文翻译网关上设置身份验证
使用 catalog databa 命令在网关上设置身份验证。在这里的示例中,我们将使用名为 myhostdb 的主机数据库。 保安队
要将网关身份验证类型设置为 SERVER,应该在网关机器上发出以下命令:
db2 catalog databa myhostdb at node nd1 authentication SERVER
db2 terminate
注意,身份验证不会在网关本身执行。在 DB2 Version 8 中,身份验证必须在客户机或主机数据库服务器上执行。
客户机上设置身份验证描写元宵节的诗句
我们来考虑两台单独的客户机上的两种情况。我们将一个客户机配置为连接服务器机器上的数据库(DB2 UDB LUW 分布式平台),另一个客户机连接主机上的数据库(例如 DB2 for zSeries)。
∙ 连接服务器数据库的客户机:在针对要连接的数据库的数据库目录项中,客户机身份验证设置必须匹配数据库服务器上的设置(但是 KRB_SERVER_ENCRYPT、DATA_ENCRYPT_CMP 和 GSS_SERVER_ENCRYPT 例外)。 我们假设服务器身份验证类型设置为 SERVER。在客户机上发出以下命令对名为 sample 的服务器数据库进行编目:
db2 catalog databa sample at node nd1 authentication SERVER |
|
好看的封面图片
∙
如果没有指定身份验证类型,客户机将默认使用 SERVER_ENCRYPT。
∙ 一团糟英语连接主机数据库的客户机
我们假设网关上的身份验证类型设置为 SERVER。如果没有指定身份验证类型,那么在通过 DB2 Connect 访问数据库时假设采用 SERVER_ENCRYPT 身份验证。身份验证在主机数据库服务器上进行。从客户机发出以下命令会导致客户机向网关发送未加密的用户 ID 和密码:
db2 catalog databa myhostdb at node nd1 authentication SERVER
假设网关上的身份验证类型设置为 SERVER_ENCRYPT。身份验证同样在主机数据库服务器上进行。用户 ID 和密码在客户机上进行加密,然后再发送到网关,并在网关上进行加密,然后再发送到主机。这是默认的做法。
db2 catalog databa myhostdb at node nd1 authentication SERVERdb2 terminate |
|