- Access 教程
- 关于 Microsoft Access - Access 教程
- Access 创建数据库 - Access 教程
- Access 创建表 - Access 教程
- Access 设计视图 - Access 教程
- Access 添加数据 - Access 教程
- Access 创建表单 - Access 教程
- Access 修改表单 - Access 教程
- Access 创建查询 - Access 教程
- Access 修改查询 - Access 教程
- Access 创建关联关系 - Access 教程
- Access SQL 视图 - Access 教程
- Access 创建宏 - Access 教程
- Access 数据库导出到 excel - Access 教程
- DB2 教程
- DB2 服务器安装 - DB2 教程
- DB2 实例 - DB2 教程
- DB2 数据库 - DB2 教程
- DB2 缓冲池 - DB2 教程
- DB2 表空间 - DB2 教程
- DB2 存储组 - DB2 教程
- DB2 模式 - DB2 教程
- DB2 数据类型 - DB2 教程
- DB2 表 - DB2 教程
- DB2 别名/alias - DB2 教程
- DB2 约束 - DB2 教程
- DB2 索引 - DB2 教程
- DB2 触发器 - DB2 教程
- DB2 序列 - DB2 教程
- DB2 视图 - DB2 教程
- DB2 与 XML - DB2 教程
- DB2 备份和恢复 - DB2 教程
- DB2 数据库安全 - DB2 教程
- DB2 角色 - DB2 教程
- DB2 LDAP - DB2 教程
- Hadoop 教程
- Hadoop 大数据解决方案 - Hadoop 教程
- Hadoop 介绍快速入门 - Hadoop 教程
- Hadoop 安装 - Hadoop 教程
- Hadoop HDFS 入门 - Hadoop 教程
- MapReduce 简介和入门 - Hadoop 教程
- Hadoop 程序入门实践 - Hadoop 教程
- HBase 教程
- HBase 架构 - HBase 教程
- HBase 安装 - HBase 教程
- HBase Shell - HBase 教程
- HBase 常用命令 - HBase 教程
- HBase Admin API - HBase 教程
- HBase 创建表 - HBase 教程
- HBase 列出表 - HBase 教程
- HBase 禁用表 - HBase 教程
- HBase 启用表 - HBase 教程
- HBase 表描述和修改 - HBase 教程
- HBase Exists - HBase 教程
- HBase 删除表 - HBase 教程
- HBase 关闭 - HBase 教程
- HBase 客户端 API - HBase 教程
- HBase 创建数据 - HBase 教程
- HBase 更新数据 - HBase 教程
- HBase 读取数据 - HBase 教程
- HBase 删除数据 - HBase 教程
- HBase 扫描 - HBase 教程
- HBase 计数和截断 - HBase 教程
- HBase 安全 - HBase 教程
- Hive 教程
- Hive 安装 - Hive 教程
- Hive 数据类型 - Hive 教程
- Hive 创建数据库 - Hive 教程
- Hive 删除数据库 - Hive 教程
- Hive 创建表 - Hive 教程
- Hive 修改表 - Hive 教程
- Hive 删除表 - Hive 教程
- Hive 分区 - Hive 教程
- Hive 内置运算符 - Hive 教程
- Hive 内置函数 - Hive 教程
- Hive 视图和索引 - Hive 教程
- HiveQL Select Where - Hive 教程
- HiveQL Select Order By - Hive 教程
- HiveQL Select Group By - Hive 教程
- HiveQL Select Join - Hive 教程
- Memcached 教程
- Memcached 入门
- Memcached 简介
- Memcached 安装
- Memcached 连接
- Memcached 存储命令
- Memcached set 命令
- Memcached add 命令
- Memcached replace 命令
- Memcached append 命令
- Memcached prepend 命令
- Memcached CAS 命令
- Memcached 查找命令
- Memcached get 命令
- Memcached gets 命令
- Memcached delete 命令
- Memcached incr 与 decr 命令
- Memcached 统计命令
- Memcached stats 命令
- Memcached stats items 命令
- Memcached stats slabs 命令
- Memcached stats sizes 命令
- Memcached flush_all 命令
- Memcached 实例
- Java 连接 Memcached 服务
- PHP 连接 Memcached 服务
- MongoDB 教程
- NoSQL 简介
- 什么是 MongoDB ?
- window 平台安装 MongoDB
- Linux 平台安装 MongoDB
- MongoDB 数据库,对象,集合
- MongoDB - 连接
- PHP 安装 MongoDB 扩展驱动
- MongoDB 数据插入
- MongoDB 使用 update() 函数更新数据
- MongoDB 使用- remove() 函数删除数据
- MongoDB 查询
- MongoDB 条件操作符
- MongoDB 条件操作符 - $type
- MongoDB Limit 与 Skip 方法
- MongoDB 排序
- MongoDB 索引
- MongoDB 聚合
- MongoDB 复制(副本集)
- MongoDB 分片
- MongoDB 备份(mongodump) 与恢复(mongorerstore)
- MongoDB 监控
- MongoDB Java
- MongoDB PHP
- MongoDB 关系
- MongoDB 数据库引用
- MongoDB 覆盖索引查询
- MongoDB 查询分析
- MongoDB 原子操作
- MongoDB 高级索引
- MongoDB 索引限制
- MongoDB ObjectId
- MongoDB Map Reduce
- MongoDB 全文检索
- MongoDB 正则表达式
- MongoDB 管理工具: Rockmongo
- MongoDB GridFS
- MongoDB 固定集合(Capped Collections)
- MongoDB 自动增长
- MySQL 教程
- MySQL 教程
- MySQL 安装
- MySQL 管理
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- MySQL 排序
- Mysql Join 的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER 命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- MySQL 元数据
- MySQL 序列使用
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- PL/SQL 教程
- PL/SQL 环境安装设置 - PL/SQL 教程
- PL/SQL 基本语法 - PL/SQL 教程
- PL/SQL 数据类型 - PL/SQL 教程
- PL/SQL 变量 - PL/SQL 教程
- PL/SQL 常量和文字 - PL/SQL 教程
- PL/SQL 运算符 - PL/SQL 教程
- PL/SQL 条件控制 - PL/SQL 教程
- PL/SQL 循环 - PL/SQL 教程
- PL/SQL 字符串 - PL/SQL 教程
- PL/SQL 数组 - PL/SQL 教程
- PL/SQL 过程 - PL/SQL 教程
- PL/SQL 函数 - PL/SQL 教程
- PL/SQL 游标 - PL/SQL 教程
- PL/SQL 记录 - PL/SQL 教程
- PL/SQL 异常 - PL/SQL 教程
- PL/SQL 触发器 - PL/SQL 教程
- PL/SQL 包 - PL/SQL 教程
- PL/SQL 集合 - PL/SQL 教程
- PL/SQL 事务 - PL/SQL 教程
- PL/SQL 日期及时间 - PL/SQL 教程
- PL/SQL DBMS 输出 - PL/SQL 教程
- PL/SQL 面向对象 - PL/SQL 教程
- Redis 教程
- Redis 简介
- Redis 安装
- Redis 配置
- Redis 数据类型
- Redis 命令
- Redis 数据备份与恢复
- Redis 安全
- Redis 性能测试
- Redis 客户端连接
- Redis 管道技术
- Redis 分区
- Java 使用 Redis
- PHP 使用 Redis
- Redis 命令参考
- Key(键)
- DEL
- DUMP
- EXISTS
- EXPIRE
- EXPIREAT
- KEYS
- MIGRATE
- MOVE
- OBJECT
- PERSIST
- PEXPIRE
- PEXPIREAT
- PTTL
- RANDOMKEY
- RENAME
- RENAMENX
- RESTORE
- SORT
- TTL
- TYPE
- SCAN
- String(字符串)
- APPEND
- BITCOUNT
- BITOP
- DECR
- DECRBY
- GET
- GETBIT
- GETRANGE
- GETSET
- INCR
- INCRBY
- INCRBYFLOAT
- MGET
- MSET
- MSETNX
- PSETEX
- SET
- SETBIT
- SETEX
- SETNX
- SETRANGE
- STRLEN
- Hash(哈希表)
- HDEL
- HEXISTS
- HGET
- HGETALL
- HINCRBY
- HINCRBYFLOAT
- HKEYS
- HLEN
- HMGET
- HMSET
- HSET
- HSETNX
- HVALS
- HSCAN
- List(列表)
- BLPOP
- BRPOP
- BRPOPLPUSH
- LINDEX
- LINSERT
- LLEN
- LPOP
- LPUSH
- LRANGE
- LREM
- LSET
- LTRIM
- RPOP
- RPOPLPUSH
- RPUSH
- RPUSHX
- Set(集合)
- SADD
- SCARD
- SDIFF
- SDIFFSTORE
- SINTER
- SINTER
- SINTERSTORE
- SISMEMBER
- SMEMBERS
- SMOVE
- SPOP
- SRANDMEMBER
- SREM
- SUNION
- SUNIONSTORE
- SSCAN
- SortedSet(有序集合)
- ZADD
- ZCARD
- ZCOUNT
- ZINCRBY
- ZRANGE
- ZRANGEBYSCORE
- ZRANK
- ZREM
- ZREMRANGEBYRANK
- ZREMRANGEBYSCORE
- ZREVRANGE
- ZREVRANGEBYSCORE
- ZREVRANK
- ZSCORE
- ZUNIONSTORE
- ZINTERSTORE
- ZSCAN
- Pub/Sub(发布/订阅)
- PSUBSCRIBE
- PUBLISH
- PUBSUB
- PUNSUBSCRIBE
- SUBSCRIBE
- UNSUBSCRIBE
- Transaction(事务)
- DISCARD
- EXEC
- MULTI
- UNWATCH
- WATCH
- Script(脚本)
- EVAL
- EVALSHA
- SCRIPT EXISTS
- SCRIPT FLUSH
- SCRIPT KILL
- SCRIPT LOAD
- Connection(连接)
- AUTH
- ECHO
- PING
- QUIT
- SELECT
- Server(服务器)
- BGREWRITEAOF
- BGSAVE
- CLIENT GETNAME
- CLIENT KILL
- CLIENT LIST
- CLIENT SETNAME
- CONFIG GET
- CONFIG RESETSTAT
- CONFIG REWRITE
- CONFIG SET
- DBSIZE
- DEBUG OBJECT
- DEBUG SEGFAULT
- FLUSHALL
- FLUSHDB
- INFO
- LASTSAVE
- MONITOR
- PSYNC
- SAVE
- SHUTDOWN
- SLAVEOF
- SLOWLOG
- SYNC
- TIME
- SQL 教程
- SQL 基础
- SQL 简介
- SQL 语法
- SQL SELECT 语句
- SQL SELECT DISTINCT 语句
- SQL WHERE 子句
- SQL AND & OR 运算符
- SQL ORDER BY 子句
- SQL INSERT INTO 语句
- SQL UPDATE 语句
- SQL DELETE 语句
- SQL 高级
- SQL TOP 子句
- SQL LIKE 操作符
- SQL 通配符
- SQL IN 操作符
- SQL BETWEEN 操作符
- SQL Alias(别名)
- SQL JOIN
- SQL INNER JOIN 关键字
- SQL LEFT JOIN 关键字
- SQL RIGHT JOIN 关键字
- SQL FULL JOIN 关键字
- SQL UNION 和 UNION ALL 操作符
- SQL SELECT INTO 语句
- SQL CREATE DATABASE 语句
- SQL CREATE TABLE 语句
- SQL 约束 (Constraints)
- SQL NOT NULL 约束
- SQL UNIQUE 约束
- SQL PRIMARY KEY 约束
- SQL FOREIGN KEY 约束
- SQL CHECK 约束
- SQL DEFAULT 约束
- SQL CREATE INDEX 语句
- SQL 撤销索引、表以及数据库
- SQL ALTER TABLE 语句
- SQL AUTO INCREMENT 字段
- SQL VIEW(视图)
- SQL 函数
- SQL Date 函数
- SQL NULL 值
- SQL NULL 函数
- SQL 数据类型
- SQL 服务器 - RDBMS
- SQL 函数
- SQL AVG 函数
- SQL COUNT() 函数
- SQL FIRST() 函数
- SQL LAST() 函数
- SQL MAX() 函数
- SQL MIN() 函数
- SQL SUM() 函数
- SQL GROUP BY 语句
- SQL HAVING 子句
- SQL UCASE() 函数
- SQL LCASE() 函数
- SQL MID() 函数
- SQL LEN() 函数
- SQL ROUND() 函数
- SQL NOW() 函数
- SQL FORMAT() 函数
- SQL 快速参考
- SQLite 教程
- SQLite 基础
- SQLite 简介
- SQLite 安装
- SQLite 命令
- SQLite 语法
- SQLite 数据类型
- SQLite 创建数据库
- SQLite 附加数据库
- SQLite 分离数据库
- SQLite 创建表
- SQLite 删除表
- SQLite Insert 语句
- SQLite Select 语句
- SQLite 运算符
- SQLite 表达式
- SQLite Where 子句
- SQLite AND/OR 运算符
- SQLite Update 语句
- SQLite Delete 语句
- SQLite Like 子句
- SQLite Glob 子句
- SQLite Limit 子句
- SQLite Order By
- SQLite Group By
- SQLite Having 子句
- SQLite Distinct 关键字
- SQLite 高级
- SQLite PRAGMA
- SQLite 约束
- SQLite Joins
- SQLite Unions 子句
- SQLite NULL 值
- SQLite 别名
- SQLite 触发器(Trigger)
- SQLite 索引(Index)
- SQLite Indexed By
- SQLite Alter 命令
- SQLite Truncate Table
- SQLite 视图(View)
- SQLite 事务(Transaction)
- SQLite 子查询
- SQLite Autoincrement(自动递增)
- SQLite 注入
- SQLite Explain(解释)
- SQLite Vacuum
- SQLite 日期 & 时间
- SQLite 常用函数
- SQLite 接口
- SQLite - C/C++
- SQLite - Java
- SQLite - PHP
- SQLite - Perl
- SQLite - Python
- SQL Server 教程
- 关于 Microsoft SQL Server - SQL Server 教程
- SQL Server 2014 版 - SQL Server 教程
- SQL Server 安装 - SQL Server 教程
- Windows2012 R2 上安装.NET3.5 框架 - SQL Server 教程
- SQL Server 管理套件(SSMS) - SQL Server 教程
- SQL Server 创建数据库 - SQL Server 教程
- SQL Server 创建表 - SQL Server 教程
- SQL Server 添加数据 - SQL Server 教程
- SQL Server SQL 脚本 - SQL Server 教程
- SQL Server 查询设计器 - SQL Server 教程
- SQL Server 视图 - SQL Server 教程
- SQL Server 存储过程 - SQL Server 教程
- SQL Server 服务器角色 - SQL Server 教程
- SQL Server 数据库模式 - SQL Server 教程
- SQL Server 链接服务器 - SQL Server 教程
DB2 LDAP - DB2 教程
LDAP 是轻量级目录访问协议。 LDAP 是一个全球性的目录服务,工业标准协议,该协议是基于客户端 - 服务器模型,运行在一个层中 TCP/IP 栈的上方。LDAP 提供了一个工具来连接,访问,修改和搜索互联网目录。
在 LDAP 服务器包含该组织在一个目录树的形式信息。在客户端请求的服务器,以提供信息或在一个特定的信息执行一些操作。服务器对客户机提供所需的信息,如果它有一个,或者它是指客户到另一台服务器上所需的信息操作。然后,客户端获取从另一个服务器所需的信息。
目录树结构保持在所有参与的服务器相同。这是 LDAP 目录服务的一个突出特点。因此,无论哪个的服务器是由客户端的简称,在客户端总是得到在无差错的方式所需的信息。在这里,我们使用 LDAP 验证 IBM DB2 作为替代操作系统认证。
有两种类型的 LDAP:
- 透明度
- 插件
让我们来看看如何配置透明 LDAP。
配置 LDAP
要开始使用 LDAP 配置,需要配置 LDAP 服务器。
LDAP 服务器配置
创建一个 slapd.conf 的文件,它包含所有有关 LDAP 用户和组对象的信息。当安装 LDAP 服务器,默认情况下它被配置在机器上的基本 LDAP 目录树。
下面所示的表表示修改后的文件配置。
文本高亮度显示黄代码框表示为以下几点:
DBA user-id = “db2my1”, group = “db1my1adm”, password= “db2my1” ;管理员 user-id = “my1adm”, group = “dbmy1ctl”.
# base dn: example.com
dn: dc=example,dc=com
dc: example
o: example
objectClass: organization
objectClass: dcObject
# pc box db
dn: dc=db697,dc=example,dc=com
dc: db697
o: db697
objectClass: organization
objectClass: dcObject
#
# Group: db<sid style="box-sizing: border-box;">adm
#
dn: cn=dbmy1adm,dc=db697,dc=example,dc=com
cn: dbmy1adm
objectClass: top
objectClass: posixGroup
gidNumber: 400
objectClass: groupOfNames
member: uid=db2my1,cn=dbmy1adm,dc=db697,dc=example,dc=com
memberUid: db2my1
#
# User: db2 <sid style="box-sizing: border-box;">#
dn: uid=db2my1,cn=dbmy1adm,dc=db697,dc=example,dc=com
cn: db2my1
sn: db2my1
uid: db2my1
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uidNumber: 400
gidNumber: 400
loginShell: /bin/csh
homeDirectory: /db2/db2my1
#
# Group: db<sid style="box-sizing: border-box;">ctl
#
dn: cn=dbmy1ctl,dc=db697,dc=example,dc=com
cn: dbmy1ctl
objectClass: top
objectClass: posixGroup
gidNumber: 404
objectClass: groupOfNames
member: uid=my1adm,cn=dbmy1adm,dc=db697,dc=example,dc=com
memberUid: my1adm
#
# User: <sid style="box-sizing: border-box;">adm
#
dn: uid=my1adm,cn=dbmy1ctl,dc=db697,dc=example,dc=com
cn: my1adm
sn: my1adm
uid: my1adm
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uidNumber: 404
gidNumber: 404
loginShell: /bin/csh
homeDirectory: /home/my1adm</sid> </sid></sid></sid>
保存上面的文件为“/var/lib/slapd.conf',然后通过以下命令将这些值添加到 LDAP 服务器执行此文件。这是一个 linux 命令;不是 DB2 命令。
ldapadd r- -D ‘cn=Manager,dc=example,dc=com” –W –f
/var/lib/slapd.conf
注册 DB2 用户和 DB2 组的 LDAP 服务器后,登录到已安装的实例和数据库的特定用户。需要配置 LDAP 客户端,以确认客户端在服务器的位置,无论是远程或本地。
LDAP 客户端配置
LDAP 客户端的配置保存在文件'ldap.conf'。可用于配置参数两个文件,一个是常见的,另一种是指定的。第一个在“/etc/ldap.conf”,而后者位于“/etc/openldap/ldap.conf”。
下面的数据是常见的 LDAP 客户端提供的配置文件
# File: /etc/ldap.conf
# The file contains lots of more entries and many of them
# are comments. You show only the interesting values for now
host localhost
base dc=example,dc=com
ldap_version 3
pam_password crypt
pam_filter objectclass=posixAccount
nss_map_attribute uniqueMember member
nss_base_passwd dc=example,dc=com
nss_base_shadow dc=example,dc=com
nss_base_group dc=example,dc=com
需要根据 DB2 配置改变服务器和域信息的位置。如果使用相同的系统服务器,提到它作为'localhost'为'host'和'基本',可以配置中提到“slapd.conf”文件 LDAP 服务器。
插入式验证模式(PAM)是用于身份验证服务的 API。这是具有加密的密码和类型的 posixAccount 特殊 LDAP 对象 LDAP 身份验证的通用接口。这种类型的所有 LDAP 对象表示便携式操作系统界面(POSIX)帐户的属性。
网络安全服务(NSS)是一组库,以支持安全功能的客户端和服务器应用程序的跨平台开发。这包括像 SSL,TLS,PKCS S/MIME 等安全标准库。
需要指定基本 DN 这个接口和两个附加属性映射。 OpenLDAP 客户端配置文件中包含如下条目:
host localhost
base dc=example,dc=com
直到这一点,刚才定义的主机 LDAP 的服务和基础 DN。
OpenLDAP 验证环境
当配置 LDAP 服务器和 LDAP 客户端,通信同时验证。
第一步:检查本地 LDAP 服务器正在运行。使用下面的命令:
ps -ef | grep -i ldap
该命令应列出 LDAP 守护进程,表示 LDAP 服务器:
/usr/lib/openldap/slapd -h ldap:/// -u ldap -g ldap -o slp=on
这表示 LDAP 服务器正在运行,正在等待来自客户端的请求。如果没有这样的过程以前的命令就可以启动 LDAP 服务器,使用的“rcldap”命令。
rcldap start
当服务器启动时,可以将文件“‘/var/log/messages/发出以下命令。
tail –f /var/log/messages
测试连接到 LDAP 服务器 ldapsearch
ldapsearch 命令,打开到 LDAP 服务器的连接,结合它并执行它可以通过使用特殊的参数'-x'指定搜索查询使用-x 参数,而不是一个简单的身份验证机制连接到 LDAP 服务器喜欢简单的身份验证和安全层更复杂的机制(SASL)
ldapsearch –x
LDAP 服务器应该具有下面给出的回应答复,包含所有 LDAP 数据交换格式(LDIF)的 LDAP 条目。
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
# example.com
dn: dc=example,
dc=com dc: example
o: example
objectClass: organization
objectClass: dcObject
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
配置 DB2
使 LDAP 服务器和客户机的工作后,需要配置 DB2 数据库使用 LDAP。让我们来讨论如何安装和配置数据库使用 LDAP 环境,为 DB2 用户的认证过程。
配置 DB2 和 LDAP 互动插件
IBM 提供了一个免费的包 LDAP 插件 DB2。 DB2 包包括三个 DB2 安全性插件为每个以下内容:
- 服务器端验证
- 客户端身份验证
- 组查找
根据要求,可以使用任何三个插件或全部。这个插件不支持,其中一些用户在 LDAP 和其他定义的操作系统环境。如果决定使用 LDAP 插件,需要定义与 LDAP 服务器中的数据库相关联的所有用户。同样的原则也适用于组插件。
必须决定哪些插件强制规定系统。在方案中使用的客户端身份验证插件,用户 ID 和密码验证提供一个连接或语句出现在客户端系统上。这样的数据库管理器配置参数 SRVCON_AUTH 或认证需要被设置为值客户端。客户端的认证是难以确保和通常不建议。服务器插件通常建议,因为它执行的用户 ID 和密码的服务器端验证,如果客户端执行 CONNECT 或附加声明,这是安全的方式。服务器插件还提供了一种映射 LDAP 用户 ID DB2 授权 ID。
现在,可以开始安装 DB2 安全性插件和配置,需要考虑 DB2 所需的目录信息树。DB2 使用间接的授权,这意味着一个用户属于一个组,这个组被授予较少的部门。需要定义所有 DB2 用户和 DB2 组的 LDAP 目录。
图片/镜像
LDIF 文件 openldap.ldif 应包含下面的代码:
#
# LDAP root object
# example.com
#
dn: dc=example,
dc=com
dc: example
o: example
objectClass: organization
objectClass: dcObject
#
# db2 groups
#
dn: cn=dasadm1,dc=example,dc=com
cn: dasadm1
objectClass: top
objectClass: posixGroup
gidNumber: 300
objectClass: groupOfNames
member: uid=dasusr1,cn=dasadm1,dc=example,dc=com
memberUid: dasusr1
dn: cn=db2grp1,dc=example,dc=com
cn: db2grp1
objectClass: top
objectClass: posixGroup
gidNumber: 301
objectClass: groupOfNames
member: uid=db2inst2,cn=db2grp1,dc=example,dc=com memberUid: db2inst2
dn: cn=db2fgrp1,dc=example,dc=com
cn: db2fgrp1
objectClass: top
objectClass: posixGroup
gidNumber: 302
objectClass: groupOfNames
member: uid=db2fenc1,cn=db2fgrp1,dc=example,dc=com
memberUid: db2fenc1
#
# db2 users
#
dn: uid=dasusr1,
cn=dasadm1,
dc=example,dc=com
cn: dasusr1
sn: dasusr1
uid: dasusr1
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uidNumber: 300
gidNumber: 300
loginShell: /bin/bash
homeDirectory: /home/dasusr1
dn: uid=db2inst2,cn=db2grp1,dc=example,dc=com
cn: db2inst2
sn: db2inst2
uid: db2inst2
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uidNumber: 301
gidNumber: 301
loginShell: /bin/bash
homeDirectory: /home/db2inst2
dn: uid=db2fenc1,cn=db2fgrp1,dc=example,dc=com
cn: db2fenc1
sn: db2fenc1
uid: db2fenc1
objectClass: top
objectClass: inetOrgPerson
objectClass: posixAccount
uidNumber: 303
gidNumber: 303
loginShell: /bin/bash
homeDirectory: /home/db2fenc1
创建一个名为“db2.ldif”文件,并粘贴上面的例子进去。使用这个文件,添加定义结构 LDAP 目录。
到 DB2 用户和 DB2 组添加到 LDAP 目录中,则需要用户为“rootdn”LDAP 服务器绑定,以得到确切的特权。
执行以下语法,以填补 LDAP 目录中的信息与在 LDIF 文件'db2.ldif“中定义所有的对象
ldapadd –x –D “cn=Manager, dc=example,dc=com” –W –f <path>/db2.ldif
使用多个参数执行搜索结果
ldapsearch –x |more
编写文件系统使用 DB2
创建我们的 LDAP 用户 db2inst2 实例。此用户需要与主目录内的两个空文件的主目录。在创建一个新的实例,需要创建一个用户谁将会是实例的所有者。
创建实例用户后,应该有创建文件“.profile”,并在用户主目录“.login',这将是 DB2 进行修改。在目录中创建这个文件,执行以下命令:
mkdir /home/db2inst2
mkdir /home/db2inst2/.login
mkdir /home/db2inst2/.profile
已经注册了 DB2 的 LDAP 目录相关所有用户和组,现在可以使用名称为“db2inst2”的实例所有者 ID“db2inst2”创建一个实例,并使用受防护用户 ID“db2fenc1',这是需要用户运行定义函数(UDF)或存储过程。
/opt/ibm/db2/V10.1/instance/db2icrt –u db2fenc1 db2inst2
DBI1070I Program db2icrt completed successfully.
现在检查的实例主目录。可以看到新的子目录所谓的“SQLLIB”和.profile 文件和定制 DB2 使用.login 文件。
配置认证公共插件在 DB2 LDAP 支持
所需的 LDAP 插件复制到相应目录 DB2:
cp /<db2_ldap_pakg style="box-sizing: border-box;">/<os style="box-sizing: border-box;">/v10/IBMLDAPauthserver.so
/home/db2inst2/sqllib/security<bit style="box-sizing: border-box;">/plugin/server/.
cp /<db2_ldap_pakg style="box-sizing: border-box;">/<os style="box-sizing: border-box;">/v10/IBMLDAPgroups.so
/home/db2inst2/sqllib/security<bit style="box-sizing: border-box;">/plugin/group/.</bit></os></db2_ldap_pakg></bit></os></db2_ldap_pakg>
一旦插件被复制到指定目录下,登录到 DB2 实例所有者和更改数据库管理器配置使用这些插件。
Su – db2inst2
db2inst2> db2 update dbm cfg using svrcon_pw_plugin
IBMLDAPauthserver
db2inst2> db2 update dbm cfg using group_plugin
IBMLDAPgroups
db2inst2> db2 update dbm cfg using authentication
SERVER_ENCRYPT
db2inst2> db2stop
db2inst2> db2start
这一修改生效启动 DB2 实例之后。重新启动实例后,需要安装和配置名为“IBMLDAPSecurity.ini”,使 DB2 插件工作使用当前 LDAP 配置的主要 DB2 LDAP 配置文件。
IBMLDAPSecurity.ini 文件包含
;-----------------------------------------------------------
; SERVER RELATED VALUES
;-----------------------------------------------------------
; Name of your LDAP server(s).
; This is a space separated list of LDAP server addresses,
; with an optional port number for each one:
; host1[:port] [host2:[port2] ... ]
; The default port number is 389, or 636 if SSL is enabled.
LDAP_HOST = my.ldap.server
;-----------------------------------------------------------
; USER RELATED VALUES
;-----------------------------------------------------------
rs
; LDAP object class used for use USER_OBJECTCLASS = posixAccount
; LDAP user attribute that represents the "userid"
; This attribute is combined with the USER_OBJECTCLASS and
; USER_BASEDN (if specified) to construct an LDAP search
; filter when a user issues a DB2 CONNECT statement with an
; unqualified userid. For example, using the default values
; in this configuration file, (db2 connect to MYDB user bob
; using bobpass) results in the following search filter:
OrgPerson)(uid=bob)
; &(objectClass=inet USERID_ATTRIBUTE = uid
representing the DB2 authorization ID
; LDAP user attribute, AUTHID_ATTRIBUTE = uid
;-----------------------------------------------------------
; GROUP RELATED VALUES
;-----------------------------------------------------------
ps
; LDAP object class used for grou GROUP_OBJECTCLASS = groupOfNames
at represents the name of the group
; LDAP group attribute th GROUPNAME_ATTRIBUTE = cn
; Determines the method used to find the group memberships
; for a user. Possible values are:
; SEARCH_BY_DN - Search for groups that list the user as
; a member. Membership is indicated by the
; group attribute defined as
; GROUP_LOOKUP_ATTRIBUTE.
; USER_ATTRIBUTE - A user's groups are listed as attributes
; of the user object itself. Search for the
; user attribute defined as
TRIBUTE to get the groups.
; GROUP_LOOKUP_AT GROUP_LOOKUP_METHOD = SEARCH_BY_DN
; GROUP_LOOKUP_ATTRIBUTE
; Name of the attribute used to determine group membership,
; as described above.
llGroups
; GROUP_LOOKUP_ATTRIBUTE = ibm-a GROUP_LOOKUP_ATTRIBUTE = member
现在,找到当前实例目录中的 IBMLDAPSecurity.ini 文件。上面的示例内容复制到相同的。
Cp
/<ibm_db_installation_directory style="box-sizing: border-box;">/db2_ldap_pkg/IBMLDAPSecurity.ini
/home/db2inst2/sqllib/cfg/</ibm_db_installation_directory>
现在,需要重新启动 DB2 实例,采用如下两种语法:
db2inst2> db2stop
Db2inst2> db2start
此时,如果尝试'db2start“命令,会得到安全错误消息。因为 DB2 的安全配置还没有正确配置 LDAP 环境。
定制两种配置
保持 LDAP_HOST 名称可修改处理,其配置在 slapd.conf 文件中。
现在编辑 IMBLDAPSecurity.ini 文件,并键入 LDAP_HOST 名称。同时在所述文件中的 LDAP_HOST 名称必须相同。
文件的内容如下所示:
;-----------------------------------------------------------
; SERVER RELATED VALUES
;-----------------------------------------------------------
LDAP_HOST = localhost
;-----------------------------------------------------------
; USER RELATED VALUES
----------------------------
;-------------------------------
USER_OBJECTCLASS = posixAccount
USER_BASEDN = dc=example,dc=com
USERID_ATTRIBUTE = uid
AUTHID_ATTRIBUTE = uid
;-----------------------------------------------------------
; GROUP RELATED VALUES
;-----------------------------------------------------------
GROUP_OBJECTCLASS = groupOfNames
GROUP_BASEDN = dc=example,dc=com
GROUPNAME_ATTRIBUTE = cn
GROUP_LOOKUP_METHOD = SEARCH_BY_DN
GROUP_LOOKUP_ATTRIBUTE = member
改变这些值后,LDAP 立即生效,并与 LDAP DB2 环境完美地工作。
可以注销并重新登录到“db2inst2”的用户。
现在,实例正在使用 LDAP 目录。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论