[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Back-sql problem (Sybase)
Hello,
I browsed the archives without finding any answer to my problem, so I
post here:
I did setup OpenLDAP to use an existing sybase server as a backend.
ODBC wasn't a problem, and sldap.conf seem to be fine but I got this
when I do slapd -d 1:
... a lot of log that seem to be fine, if you really need them just ask.
==>backsql_get_db_conn()
==>backsql_open_db_conn()
backsql_open_db_conn: SQLConnect() to database 'GAddress' as user
'GMaster' succeeded with info:
Return code: 1
Native error code: 5704
SQL engine state:
Message: [unixODBC][FreeTDS][SQL Server]Changed client character set
setting to 'utf8'.
Native error code: 5701
SQL engine state:
Message: [unixODBC][FreeTDS][SQL Server]Changed database context to
'GMaster'.
Native error code: 5701
SQL engine state:
Message: [unixODBC][FreeTDS][SQL Server]Changed database context to
'GAddress'.
backsql_open_db_conn(): connected, adding to tree
<==backsql_open_db_conn()
backsql_get_db_conn(): first call -- reading schema map
==>load_schema_map()
load_schema_map(): at_query 'SELECT
name,sel_expr,from_tbls,join_where,add_proc,delete_proc,param_order,expe
ct_return,sel_expr_u FROM ldap_attr_mappings WHERE oc_map_id=?'
load_schema_map(): objectClass 'inetOrgPerson': keytbl='Address'
keycol='id'
create_proc=' '
delete_proc=' '
expect_return: add=0, del=0; attributes:
load_schema_map(): autoadding 'objectClass' and 'ref' mappings
load_schema_map(): error executing at_query:
Return code: -1
==>backsql_free_db_conn()
backsql_free_db_conn(): closing db connection
... the rest of the log until slapd stopped.
What I did to configure that:
Setting up odbc, this part seem to work.
Configuring slapd.conf:
# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.23.2.8 2003/05/24
23:19:14 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /opt/OpenLDAP/etc/openldap/schema/core.schema
include /opt/OpenLDAP/etc/openldap/schema/cosine.schema
include /opt/OpenLDAP/etc/openldap/schema/inetorgperson.schema
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /opt/OpenLDAP/var/slapd.pid
argsfile /opt/OpenLDAP/var/slapd.args
defaultsearchbase dc=goyman,dc=com
threads 32
allow bind_v2
# Load dynamic backend modules:
# modulepath /opt/OpenLDAP/libexec/openldap
# moduleload back_bdb.la
# moduleload back_ldap.la
# moduleload back_ldbm.la
# moduleload back_passwd.la
# moduleload back_shell.la
# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64
# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
# access to dn.base="" by * read
# access to dn.base="cn=Subschema" by * read
# access to *
# by self write
# by users read
# by anonymous auth
#
# if no access controls are present, the default policy is:
# Allow read by all
#
# rootdn can always write!
# sql database def
database sql
suffix "dc=goyman,dc=com"
rootdn "cn=root,dc=goyman,dc=com"
rootpw {SSHA}xxxx
dbname GAddress
dbuser GMaster
dbpasswd XXXXXX
lastmod off
insentry_query "insert into ldap_entries
(id,dn,oc_map_id,parent,keyval) values ((select max(id)+1 from
ldap_entries),?,?,?,?)"
concat_pattern "?+?"
upper_func "UPPER"
has_ldapinfo_dn_ru no
### END
In sybase db I did create mappings table and I did add one test
ocMappings with one test attrMapping:
1> select * from ldap_oc_mappings
2> go
id name keytbl keycol create_proc delete_proc
expect_return
1 inetOrgPerson Address id 0
1> select * from ldap_attr_mappings
2> go
id oc_map_id name sel_expr from_tbls
join_where add_proc modify_proc delete_proc
param_order expect_return sel_expr_u
1 1 cn (Address.firstName + Address.lastName) Address
NULL NULL NULL delete from Address where id = ? 3
0 NULL
4 1 sn Address.lastName Address NULL update
Address set lastName=? where id=? NULL NULL 3 0
NULL
Other table has been created as well but they are empty.
This is intended to be a readOnly server as all write operation are
made directly to the db.
Regards
Goyman
.::.:..: Celui qui appréhende le lendemain mourra idiot .:..:::
goyman