`
javathinker
  • 浏览: 227032 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

DB2 创建和使用nickname 报错 SQL1101N

阅读更多

在使用DB2的联邦功能时在创建nickname及使用nickname的时候最常见的报错就是SQL1101N,提示用户名或者密码不对不能访问远程数据源。
下面说一下最常见的原因。


一 创建过程中报错

创建db2的联邦通常包含以下四步:
1 CREATE WRAPPER DRDA
2 CREATE SERVER
3 CREATE USER MAPPING
4 CREATE NICKNAME


本地sample数据库要与远程qa数据库做联邦,qa数据库已经编目到本地,实例参数FEDERATED已开启,实际创建过程如下:

db2inst1@lbdb:~> db2 connect to sample

Database Connection Information

Database server = DB2/LINUXX8664 9.7.4
SQL authorization ID = DB2INST1
Local database alias = SAMPLE

db2inst1@lbdb:~> db2 CREATE WRAPPER DRDA
DB20000I The SQL command completed successfully.
db2inst1@lbdb:~> db2 "CREATE SERVER trans TYPE DB2/UDB VERSION '9.7' WRAPPER DRDA AUTHID "userdb" PASSWORD "possword" OPTIONS( ADD DBNAME 'QA', PASSWORD 'Y' )"
DB20000I The SQL command completed successfully.
db2inst1@lbdb:~> db2 "CREATE USER MAPPING FOR "test" SERVER trans OPTIONS ( ADD REMOTE_AUTHID 'userdb', ADD REMOTE_PASSWORD 'possword') "
DB20000I The SQL command completed successfully.
db2inst1@lbdb:~> db2 CREATE NICKNAME shad.employee FOR trans.shad.employee
DB21034E The command was processed as an SQL statement because it was not a
valid Command Line Processor command. During SQL processing it returned:
SQL1101N Remote database "QA" on node "" could not be accessed with the
specified authorization id and password. SQLSTATE=08004

问题在哪里呢?
用户名及密码都正确,而且这里也不是密码大小写问题

解决方法:
创建nickname时必须由mapping中定义的数据库用户创建,其他用户不可以,实例用户也不行,除非实例用户在mapping中定义。
我们大多数管理员习惯使用实例用户去创建nickname,如果我们定义的mpping用户与管理用户不一致反而会报错。
如上面例子中mapping定义的用户为“test”,则必须进行下面的操作:

db2inst1@lbdb:~> db2 connect to sample user test using possword

Database Connection Information

Database server = DB2/LINUXX8664 9.7.4
SQL authorization ID = TEST
Local database alias = SAMPLE

db2inst1@lbdb:~> db2 CREATE NICKNAME shad.employee FOR trans.shad.employee
DB20000I The SQL command completed successfully.

二 使用nickname(select,insert,delete)

沿用前面的环境
db2inst1@lbdb:~> db2 connect to sample

Database Connection Information

Database server = DB2/LINUXX8664 9.7.4
SQL authorization ID = DB2INST1
Local database alias = SAMPLE

db2inst1@lbdb:~> db2 "select * from shad.employee "

SQL1101N Remote database "QA" on node "" could not be accessed with the
specified authorization id and password. SQLSTATE=08004
同样我们更换数据库用户
db2inst1@lbdb:~> db2 connect to sample user test using possword

Database Connection Information

Database server = DB2/LINUXX8664 9.7.4
SQL authorization ID = TEST
Local database alias = SAMPLE

db2inst1@lbdb:~> db2 "select * from shad.employee "
结果就完全正常

总结:
1 创建和使用nickname必须使用mapping中定义的用户
2 如果希望其他用户也能使用nickname必须增加相应的mapping定义

分享到:
评论

相关推荐

    DB2创建NickName

    DB2创建NickName即联邦数据库SQL,供大家参考

    db2 联邦查询示例

    db2 update dbm cfg using federated yes db2 catalog node (node节点登录) db2 catalog database (database数据库登录) db2 connect to db (连接到...db2 create nickname (创建连接到对方表的nickname)

    nick_name.sql

    MySQL5.7版本,未加密,直接转储即可使用,大约6W条,适用于初始用户建立。游戏随机名称、机器人名称、QQ、微信个性网名大全

    SQL Sever查询语句大全集锦

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 代码:...

    sql-ddl-to-json-schema:SQL DDL到JSON模式转换器

    将SQL DDL语句转换为JSON格式(JSON模式和紧凑格式)。 承诺中 了解内部 手边的脚本Visual Studio程式码 链接 概述 使用以下SQL: CREATE TABLE users ( id INT ( 11 ) NOT NULL AUTO_INCREMENT, nickname ...

    SQL查询语句精华大全

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 SELECT ...

    大全集锦SQL查询语句

    简单的Transact-SQL 查询只包括选择列表、FROM 子句和WHERE 子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable 表中姓名为“张三”的nickname 字段和email 字段。 代码...

    在线视频播客视频管理系统,框架 vs2019 + asp.net webform + sql server

    注意sql server类和access数据库可以使用vs自带的数据库启动,不需要安装庞大的sql安装包。 软件特色,网站使用了ffmpeg.exe作为视频转换方式,把avi,wmv 转换为flv的形式进行播放和图片截取。后期也可以使用...

    在线视频播客视频管理系统,框架 vs2019 + asp.net webform + sql server

    注意sql server类和access数据库可以使用vs自带的数据库启动,不需要安装庞大的sql安装包。 软件特色,网站使用了ffmpeg.exe作为视频转换方式,把avi,wmv 转换为flv的形式进行播放和图片截取。后期也可以使用...

    SQL查询语句精华大全.rar

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 SELECT ...

    DB2_常用命令

    DB2_常用命令DB2_常用命令DB2_常用命令DB2_常用命令

    数据库 SQL查询语句

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 SELECT ...

    MYSQL常用命令大全

    然后使用source命令,后面参数为脚本文件(如这里用到的.sql) mysql>source wcnc_db.sql B:使用mysqldump命令 mysqldump -u username -p dbname < filename.sql C:使用mysql命令 mysql -u username -p -D dbname ...

    SQLServer 常用语句(按功能分)

    一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段...

    SQL查询语句精华文章

    简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。

    SQL语句查询

    收集各类SQL语句,SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三'

    NicknameChanger2_NickNameDlg_

    nickname changer to change nickname nickin

    随机用户昵称,七十几万条,测试使用

    随机用户昵称,七十几万条,测试使用,文件是sql形式导出来的,要会MySQL数据库基本操作,导入需要一定的时间,数据量有七十几万条,表结构如下: CREATE TABLE `random_nickname` ( `id` bigint NOT NULL AUTO_...

    liaotianshi.rar_Java 8_java nickname_liaotianshi

    登录服务器,如果服务器端口号和IP号输入的字符都是"0"则,客户端连接到默认的服务器  2.输入聊天昵称  3.输入"-quit"会自动退出聊天  4.输入"-getList"会得到在线用户的名称  5.输入"-to <用户名称> ...

    SQL查询语句精华使用简要第1/2页

    一、 简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email...

Global site tag (gtag.js) - Google Analytics