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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 聊聊LightProbe原理實現以及對LightProbe資料的修改
- NGINX LDAP參考實現中的零日漏洞 - nginxNginxLDA
- uniapp 實現個人資訊的修改APP
- 修改thinkphp的主頁面,連線資料庫,實現增刪改查PHP資料庫
- postgresSQL 實現資料修改後,自動更新updated_date/ts等欄位SQL
- LDAP系列(三)LDAP + Samba 安裝配置LDASamba
- 小白QT tableView實時修改同步到QSqlTableModel MODEL 即時修改資料庫QTViewSQL資料庫
- 27_bbed實戰(1)_修改資料內容
- LDAP 介紹LDA
- 基於LDAP&&Role-based Authorization Strategy實現Jenkins團隊許可權管理LDAJenkins
- SQL server 修改表資料SQLServer
- LDAP落地實戰(三):GitLab整合OpenLDAP認證LDAGitlab
- LDAP落地實戰(二):SVN整合OpenLDAP認證LDA
- LDAP落地實戰(四):Jenkins整合OpenLDAP認證LDAJenkins
- 如何打破資料孤島,實現資料治理
- APP攻防--安卓逆向&資料修改&邏輯修改&檢視修改APP安卓
- MySQL 如何實現資料更新MySql
- MySQL 如何實現資料插入MySql
- ReplacingMergeTree:實現Clickhouse資料更新
- Vuex如何實現資料共享Vue
- 修改軟連結實現提權
- node實現批量修改圖片尺寸
- Console LDAP 配置解密LDA解密
- LDAP 服務部署LDA
- 如何實現雲資料治理中的資料安全?
- 為何打通業務資料,實現資料流通?
- 大資料開發-資料表監控-實現大資料
- 資料管理:業務資料清洗,落地實現方案
- LDAP落地實戰(一):OpenLDAP部署及管理維護LDA
- 織夢修改資料庫字首資料庫
- 修改 Ubuntu 資料夾為英文Ubuntu
- Charles 修改響應(Response)資料
- ***批次修改資料夾名稱
- nid修改資料庫名稱資料庫
- PLC實時資料採集如何實現?
- flashback實現資料快速復原
- java實現“資料平滑升級”Java
- 資料庫連線池實現資料庫
- vue 實現樹形資料 curdVue