Windows+OpenLDAP+MySQL配置及使用详解(二)——数据库初始化
来源:互联网 发布:淘宝能卖保健品吗 编辑:程序博客网 时间:2024/06/05 13:23
现在我们了解一下数据库端的原理。
如果已经按照上一篇文章:“Windows+OpenLDAP+MySQL配置及使用详解(一)——基础配置”配置成功,在了解本篇文章内容之前,我们先将数据库中的测试数据清除掉:
1、删除原数据库中所有表格;
2、在下载的源码包中找到servers/slapd/back-sql/rdbms_depend/mysql目录,执行脚本backsql_create.sql 。
本文将通过一个例子讲解数据库结构。假设我们的LDAP服务端目录结构如下:
图一
首先给大家看一下,相应数据库结构:
图二
由图二看出,数据库中包括系统表格和自定义表格。系统表格是必须建立的表格,即backsql_create.sql脚本里的内容;自定义表格是根据实际的LDAP entry目录结构建立的相应的对象(Object)表,表格字段对应该对象的属性(Attribute)。
下面开始讲解怎样初始化数据库数据,使其能存储图一中的目录结构。
注:如果更改了系统表格中的数据,需要重启ldap服务才能生效。
1. 新增自定义表格:
自定义表格主要目的是为了存储同一类别的对象(object)数据,表格各个字段定义了对象类(objectClass)的属性。objectClass、object、attribute的概念都来自LDAP,下面都直接用英文表示,大家会比较清晰一些。
本例中,有如下objectClass:
DN
objectClass
dc=wfi,dc=wfiqa,dc=com
organization(组织)
ou=users
organizationalUnit(组织内单元,本例中只有users这一个单元)
uid=admin
uid=user1
inetOrgPerson(组织用户)
一般情况下,每一个objectClass,我们为其创建一个自定义表格,每个字段对应该对象类的一个属性。根据上表,我们新建了organization,org_unit,users三个表,具体表结构参见图一。
2 在系统表ldap_oc_mappings中加入objectClass信息:
此表格中主要存储objectClass和对应的自定义表格的对应关系。
以下是表格各字段的详细介绍:
Column
Desc.
id
objectClass的唯一标识
name
objectClass的名称
keytbl
对应的自定义表格名称
keycol
对应的自定义表格中关键字字段名称
create_proc
新增一个object时使用的SQL语句
delete_proc
删除一个object时使用的SQL语句
expect_return
执行新增或删除object的SQL语句,代表操作成果的SQL CODE值,通常是0。
下面是本例中,往本表添加的数据:
Column
Row1
Row2
Row3
id
1
2
3
Name
organization
organizationalUnit
inetOrgPerson
Keytbl
organization
org_unit
users
Keycol
id
id
id
create_proc
(稍后再讲)
delete_proc
(稍后再讲)
expect_return
0
0
0
3 在系统表ldap_attr_mappings中加入attribute信息:
此表格实际上就是建立LDAP中各attribute和数据库中objectClass的各个属性的关系。
此表格中sel_expr,from_tbls,join_where三个字段主要存储attribute如何通过SQL语句获取。
例如:获得某个attribute的SQL语句为:
SELECT CONCAT(a.column2,b.column2)
FROM a,b
WHERE a.column3=b.column1)
分别将SELECT,FROM,WHERE后面的语句存储到这三个字段里。
另外,param_order字段的含义目前还没搞清楚,官网给出的例子里,这个字段的值都是3,所以这里也都填3.
以下是表格各个字段的详细介绍:
Column
Desc.
id
attribute唯一标识
oc_map_id
所属objectClass的唯一标识
name
Attribute名称
sel_expr
SELECT后面的SQL语句
sel_expr_u
不清楚用途,本例中没有使用
from_tbls
FROM后面的SQL语句
join_where
WHERE后面的SQL语句
add_proc
修改一个attribute值时使用的SQL语句
delete_proc
删除一个attribute值时使用的SQL语句
param_order
不清楚含义,但官网给出的例子中,这个字段的值全是3,所以本例中也将值设为3。
expect_return
执行修改或删除attribute值的SQL语句,代表操作成果的SQL CODE值,通常是0。
以下是本例中,往本表添加的数据:
Column
Row1
Row2
Row3
Row4
Row5
Row6
Row7
id
1
2
3
4
5
6
7
oc_map_id
1
2
3
3
3
3
3
name
dc
ou
uid
sn
cn
userPassword
sel_expr
name
name
code
name_en
name_cn
password
sel_expr_u
from_tbls
organization
org_unit
users
users
users
users
users
join_where
add_proc
(稍后再讲)
delete_proc
(稍后再讲)
param_order
3
3
3
3
3
3
3
expect_return
0
0
0
0
0
0
0
完成上面的操作后,目录结构的初始化工作完成。
下一篇:Windows+OpenLDAP+MySQL配置及使用详解(三)——LDAP数据的维护,将介绍怎样维护LDAP数据。
- Windows+OpenLDAP+MySQL配置及使用详解(二)——数据库初始化
- Windows+OpenLDAP+MySQL配置及使用详解(一)——基础配置
- Windows+OpenLDAP+MySQL配置及使用详解(三)——LDAP数据的维护
- Windows下OpenLDAP的安装及使用(二)
- Windows下OpenLDAP的安装及使用(二)
- openLDAP的数据库初始化
- centos6.5环境openldap实战之ldap配置详解及web管理工具lam(ldap-account-manager)使用详解
- mysql数据库的初始化及相关配置
- mysql数据库的初始化及相关配置
- Windows下OpenLDAP的安装及使用
- openldap 使用mysql作为后端数据库
- Windows配置OpenLDAP(Configure OpenLDAP on Windows)
- OpenLDAP for Windows 配置
- openldap安装及配置
- Windows下安装使用OpenLDAP(转)
- MySQL数据库安装及配置详解
- Windows下OpenLDAP的安装及使用(一)
- Windows下OpenLDAP的安装及使用(一)
- 编译出错"new types may not be defined in a return"
- PHP 操作MySQL类,有过滤函数
- javascript
- centos5.5升级到CentOS 5.6
- bash 资料汇总
- Windows+OpenLDAP+MySQL配置及使用详解(二)——数据库初始化
- maximo 自定义高级数据选择对话框(非表域实现)
- 修改ubuntu的窗口关闭按钮位置
- s标签没法获取request的值
- SVN多用户同时修改一个文件冲突过程分析及解决方法(非用锁方法)
- DLL动态库设置断点,出错:The breakpoint will not currently be hit. No symbols have been loaded for this document
- Eclipse插件安装
- 初探序列化---Serializable
- maximo中直接应用得到数据库联接