dbms_ldap實現ldap資料修改
另一個儲存過程,實現ldap資料的修改,具體各步驟含義已經在前面一篇中說明了,這裡跟前面不同之處主要就是呼叫的函式不同了:前面是add_s(),這裡是modify_s():
create or replace procedure w_proc_ldapmodify(ldap_host varchar2,
ldap_port varchar2 default '389',
ldap_user varchar2 default 'cn=manager',
ldap_passwd varchar2 default '123456',
ldap_userdn varchar2, --指定要修改的節點
mod_attr varchar2, --指定要修改的屬性
mod_values varchar2 --指定修改後的值
) as
l_ldap_host varchar2(256) := ldap_host; --'218.108.243.40';
l_ldap_port varchar2(256) := ldap_port; --'389';
l_ldap_user varchar2(256) := ldap_user; --'cn=manager';
l_ldap_passwd varchar2(256) := ldap_passwd; --'onewaveinc';
l_retval pls_integer;
l_session dbms_ldap.session;
l_message dbms_ldap.message;
l_mod_vals dbms_ldap.string_collection;
l_array dbms_ldap.MOD_ARRAY;
v_mod_attr VARCHAR(256) := mod_attr;
begin
dbms_ldap.use_exception := true;
l_mod_vals(1) := mod_values;
if ldap_host in('218.108.236.24','218.108.236.27', '218.108.236.29', '218.108.236.30') then
dbms_output.put_line('Slave LDAP could not be midified!'); --
return;
end if;
begin-- connect to the ldap server.
l_session := dbms_ldap.init(l_ldap_host, l_ldap_port);
l_retval := dbms_ldap.simple_bind_s(l_session, l_ldap_user, l_ldap_passwd);
exception when others then
dbms_output.put_line('coerr');
return;
end;
--修改資料
l_array := dbms_ldap.create_mod_array(1);
dbms_ldap.populate_mod_array(l_array,
dbms_ldap.mod_replace,
v_mod_attr,
l_mod_vals);
l_retval := dbms_ldap.modify_s(l_session, ldap_userdn, l_array);
dbms_ldap.free_mod_array(l_array);
-- 斷開與ldap的連線
l_retval := dbms_ldap.unbind_s(ld => l_session);
end w_proc_ldapmodify;
/*關於以上引數的說明
修改節點 "cn=tigger,cn=users,dc=acme,dc=o "的userpassword和newmail屬性.
DBMS_LDAP.populate_mod_array(my_mod, DBMS_LDAP.MOD_REPLACE, 'mail ', my_values);
my_mod儲存的對ldap的操作,如上面這句話的意思是 "對mail屬性使用my_values的值做替換操作 ",因為ldap的屬性值可以是陣列,所以是DBMS_LDAP.STRING_COLLECTION型別,然後同樣對userpassword屬性也是類似操作,最後
retval := DBMS_LDAP.modify_s(my_session, userDN, my_mod);
在節點userDN上執行my_mod中的操作
*/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12932950/viewspace-566585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用DBMS_LDAP實現LDAP與ORACLE的資料同步LDAOracle
- 實現Oracle對ldap資料的各類操作OracleLDA
- 從資料庫中修改zabbix的驗證方式 0 內建 1 LDAP 2 HTTP資料庫LDAHTTP
- 修改profile實現資源限制
- CoreData實踐(五)——修改資料
- 聊聊LightProbe原理實現以及對LightProbe資料的修改
- NGINX LDAP參考實現中的零日漏洞 - nginxNginxLDA
- 使用 LDAP 目錄協議實現 Domino 郵件路由LDA協議路由
- 資料庫修改資料資料庫
- 修改資料庫資料庫
- postgresSQL 實現資料修改後,自動更新updated_date/ts等欄位SQL
- 修改thinkphp的主頁面,連線資料庫,實現增刪改查PHP資料庫
- LDAP系列(三)LDAP + Samba 安裝配置LDASamba
- ldap搭建LDA
- 在做會員資料修改時,實現下拉選單的預設項定位 (轉)
- 27_bbed實戰(1)_修改資料內容
- 小白QT tableView實時修改同步到QSqlTableModel MODEL 即時修改資料庫QTViewSQL資料庫
- ldap安裝LDA
- 【實驗】修改資料檔名字的三種途徑
- 資料管理:業務資料清洗,落地實現方案
- 為何打通業務資料,實現資料流通?
- 如何打破資料孤島,實現資料治理
- Vuex如何實現資料共享Vue
- MySQL 如何實現資料插入MySql
- MySQL 如何實現資料更新MySql
- 資料庫工具類實現資料庫
- jstree實現資料同步JS
- Ext實現資料拖拽功能
- 資料快取的實現快取
- asp實現批次錄入資料的實現 (轉)
- APP攻防--安卓逆向&資料修改&邏輯修改&檢視修改APP安卓
- LDAP落地實戰(二):SVN整合OpenLDAP認證LDA
- SQL server 修改表資料SQLServer
- 修改MySQL中的資料MySql
- 修改資料庫路徑資料庫
- 修改資料庫名稱資料庫
- 6,修改資料(筆記)筆記
- 修改資料檔案地址