[Date Prev][Date Next] [Chronological] [Thread] [Top]

Back-sql problem (Sybase)


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_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_get_db_conn(): first call -- reading 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(): 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 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.



.::.:..: Celui qui appréhende le lendemain mourra idiot .:..:::