بتاريخ: 30 يونيو 200916 سنة comment_161825 بسم الله الرحمن الرحيم الأمن في نظم إدارة قواعد البيانات معقد، و القليل من مدراء قواعد البيانات، مدراء النظم، المدراء، و مطوري البرامج يفهمون كيفية تطبيق الأمن في نظم قواعد البيانات.من خلال Oracle security يمكن عمل التالي:- التحكم في الوصول إلى عناصر قاعدة البيانات ( Tables, Views, Rows, Columns, … ).- إنشاء User profiles, Roles, Privileges.- مراقبة العمليات التي تتم على قاعدة البيانات.هذا الموضوع يتضمن شرح لكيفية تطبيق الأمن في البرامج المصممة باستخدام Oracle Developerوالتي تقوم علي أساس إنشاء حساب فعلي في قاعدة البيانات لكل مستخدم ومنحه الصلاحيات اللازمة التي تتوافق مع طبيعة عمله في قاعدة البيانات .الخطوات التي ستتبع في بناء هذا التطبيق - Create users. - Create tables.- Create roles.- Assign privileges to roles and users through the GRANT command.- Build main form.- Build menu.- Assign roles to menu and sub-menus.- Create forms that control the user creation and gave them privileges needed. ملاحظة: سيتم استخدام Oracle8i، Developer6i لبناء هذا النظام.العرضإنشاء مستخدم و إعطاءه صلاحيات الاتصال بقاعدة البيانات:لإنشاء مستخدم لا بد لك من تشغيل برنامج SQL Plus و الذي من خلاله يمكن التعامل مع الـ Oracle.Start Button – All programs – OraHome81 – Application Development – SQL Plus.- بعد تشغيل SQL Plus ادخل اسم المستخدم و كلمة المرور system/manager- نقوم بإنشاء مستخدم و الذي سيكون مالك للـ Objects التي سيتم انشاؤها مثل الـ Tables. و ذلك بكتابة جملة الـ DDL التالية: Create User username Identified By password; و ليكن: Create user sv identified by sv; - بعد انشاء المستخدم لا بد من منحه بعض صلاحيات النظام، مثل: Oracle Default Roles Role Name Type of PrivilegesCONNECT Allows login and ability to create tables, views, synonyms, and database links.RESOURCE Adds cluster, procedure, and trigger privileges.DBA Complete authority to manage database and users. Can create users.SYSOPER Ability to start up and shut down the database.SYSDBA All privileges available to the DBA role with the ability to create, start up, shut down, and recover a database. عن طريق كتابة جملة الـ DDL التالية: Grant role_name/privilege_name To username; و ليكن: Grant connect, resource to sv; - بعد اعطاء المستخدم الصلاحية للاتصال بقاعدة البيانات، نقوم بالاتصال بقاعدة البيانات عن طريق المستخدم الجديد الذي تم انشاؤه باستخدام جملة الـ SQL Plus: Conn sv/sv; - صلاحيات استخدام الـ Rolesمن خلال الـ SQL Plus نستدعي الملفين: SQL> @path\FRM60GRT.SQL يستدعى في كل مرة يتم فيها إنشاء مستخدم SQL> @path\FRM60SEC.SQL يستدعى مرة واحدة بعد تثبيت الاوراكل إنشاء الجداول- سنقوم بإنشاء جدولين لهذا المستخدم و ذلك لاختبار إدخال و تحرير البيانات و هما DEPT و EMP، باستخدام جملة الـ DDL التالية: Create table table_name ( field1 data type(length), field2 data type(length)); و ليكن: Create table dept ( deptno number primary key, dept_name varchar2(40) not null, loc varchar2(100) not null); Create table emp ( empno number primary key, ename varchar2(60) not null, job varchar2(60), hiredate date not null, sal number, deptno number references dept(deptno)); إنشاء شريط قوائم Menu Bar- لانشاء Menu Bar لا بد لك من تشغيل الـ Form Builder:Start Button – All Programs – Oracle Forms6i – Form Builder.- ننشيء شريط قوائم جديد و نسميه MAIN_MENU مثلاً.- ثم بالضغط المزدوج على اسم الـ MENU ننتقل الى نافذة MENU EDITOR.- و هناك نقوم بانشاء القوائم باستخدام الخيارات المتاحة.- و في كل SUBMENU ندخل الى الـ PL-SQL EDITOR و نكتب الامر التالي: NULL; - بعد ذلك نقوم بعمل BUILD للقائمة:FILE – ADMINISTRATION – COMPILE FILE ( CTRL + T )- عند عمل BUIL للـ MENU يتم انشاء ملف تنفيذي MAIN_MENU . MMX.- نقوم بحفظ الملف ( SOURCE FILE ) – MAIN_MENU . FMB.- بعد ذلك سنقوم بإنشاء الـ FORMS التي سيتم ربطها مع الـ MENU.إنشاء النماذج FORMS- سنتطرق هنا إلى إنشاء مجموعة من النماذج و التي تختص بالتعامل مع المستخدم ( كيفية الإنشاء و الجمل البرمجية المكتوبة ). و هي:NEW_USER.DROP_USER.CHANGE_PW.PRIVILEGES.- ملاحظة: جميع الـ FIELDS في هذا النموذج هي NON DATABASE ITEMS.NEW_USER FORM:- هذه النافذة تستخدم لإنشاء مستخدم جديد و إعطاءه الصلاحيات اللازمة للاتصال بقاعدة البيانات.- بعد تصميم النموذج أعلاه نقوم بكتابة الجمل البرمجية اللازمة لإنشاء المستخدم. كما يلي:CREATE BUTTONWHEN-NEW-FORM-INSTANCE TRIGGERهذا الحدث ينطلق عند تشغيل النموذج. و يقوم بتسجيل الخروج من المستخدم الحالي، و من ثم يعمل تسجيل دخول للمستخدم System. declare un varchar2(10) := 'system'; pw varchar2(10) := 'manager'; begin logout; logon(un,pw); end; WHEN-BUTTON-PRESSED TRIGGERينطلق هذا الحدث عند الضغط على مفتاح " إنشاء " ، حيث يتم التأكد من ادخال اسم المستخدم، كلمة المرور، و التأكيد على كلمة المرور، و التأكد من تطابق كلمة المرور مع التأكيد. و من ثم انشاء المستخدم حسب الاسم و كلمة المرور المدخلتين. declare alertnuser number; begin if :un is null then set_alert_property('alert_nu',alert_message_text,' Enter a user name'); alertnuser := show_alert('alert_nu'); go_item('un'); raise form_trigger_failure; end if; if :Pw is null then set_alert_property('alert_nu',alert_message_text,' Enter a password'); alertnuser := show_alert('alert_nu'); go_item('pw'); raise form_trigger_failure; end if; if :confirm is null then set_alert_property('alert_nu',alert_message_text,' Confirm the password'); alertnuser := show_alert('alert_nu'); go_item('confirm'); raise form_trigger_failure; end if; if :Pw != :confirm then set_alert_property('alert_nu',alert_message_text,' The password doesn''t match the confirm password'); alertnuser := show_alert('alert_nu'); raise form_trigger_failure; end if; forms_ddl('create user '||:un||' identified by '||:Pw); forms_ddl('grant connect,resource to '||:un); forms_ddl('grant select on FRM50_ENABLED_ROLES to '||:un); if not form_success then set_alert_property('alert_nu',alert_message_text,' User name '''||upper(:un)||''' conflicts with another user or role name'); alertnuser := show_alert('alert_nu'); else set_alert_property('alert_nu',alert_message_text,' User created'); alertnuser := show_alert('alert_nu'); logout; logon(:global.un,:global.pw); end if; end; PRIVS BUTTONWHEN-BUTTON-PRESSED TRIGGERينطلق هذا الحدث عند الضغط على مفتاح " صلاحيات النظام " ، حيث يقوم بإنشاء Parameter يحمل اسم المستخدم، و يستدعي نموذج " الصلاحيات " حيث يتم تحديد الصلاحيات التي سيتعامل معها المستخدم. declare p_username paramlist; begin p_username := create_parameter_list('pl'); add_parameter(p_username,'p_un',text_parameter,:un ); new_form('d:\test\privs.fmx',no_rollback,no_query_ only,p_username); end; EXIT BUTTONWHEN-BUTTON-PRESSED TRIGGERينطلق هذا الحدث عند الضغط على مفتاح " خروج " ، حيث يقوم بتسجيل الخروج من المستخدم الحالي، و من ثم تسجيل الدخول للمستخدم السابق. logout; logon(:global.un,:global.pw); exit_form; DROP_USER FORM:- تستخدم هذه النافذة لحذف مستخدم.DROP BUTTONWHEN-BUTTON-PRESSED TRIGGERينطلق هذا الحدث عند الضغط على مفتاح " حذف "، حيث يقوم بحذف المستخدم الذي تم إدخاله في حقل " اسم المستخدم ". ويقوم بحذف الصلاحيات المخزنه في جدول Privs الذي سنتطرق إليه فيما بعد. declare alertnuser number; begin if :un is null then set_alert_property('alert_du',alert_message_text,' Enter a user name'); alertnuser := show_alert('alert_du'); raise form_trigger_failure; end if; forms_ddl('drop user '||:un); if not form_success then set_alert_property('alert_du',alert_message_text,' User '''||upper(:un)||''' does not exist'); alertnuser := show_alert('alert_du'); else set_alert_property('alert_du',alert_message_text,' User dropped'); alertnuser := show_alert('alert_du'); delete from scott.privs where un = :un; commit; clear_form; end if; end; CHANGE_PW FORM- تستخدم هذه النافذة حتى يغير المستخدم كلمة مروره كل فترة.CHANGE BUTTONWHEN-BUTTON-PRESSED TRIGGERينطلق هذا الحدث عند الضغط على مفتاح " تغيير " ، حيث يقوم بالتأكد من ادخال كلمة المرور الحالية و الكلمة الجديدة و التأكيد، و من ثم يغير كلمة المرور حسب الكلمة المدخلة. declare alertcpw number; begin if :un is null then set_alert_property('alert_cpw',alert_message_text, 'Enter a user name'); alertcpw := show_alert('alert_cpw'); go_item('un'); raise form_trigger_failure; end if; if :current_pw is null then set_alert_property('alert_cpw',alert_message_text, 'Enter a current password'); alertcpw := show_alert('alert_cpw'); go_item('current_pw'); raise form_trigger_failure; end if; if :new_pw is null then set_alert_property('alert_cpw',alert_message_text, 'Enter a new password'); alertcpw := show_alert('alert_cpw'); go_item('new_pw'); raise form_trigger_failure; end if; if :confirm is null then set_alert_property('alert_cpw',alert_message_text, 'Confirm the password'); alertcpw := show_alert('alert_cpw'); go_item('confirm'); raise form_trigger_failure; end if; if :new_pw != :confirm then set_alert_property('alert_cpw',alert_message_text, 'The password doesn''t match the confirm password'); alertcpw := show_alert('alert_cpw'); raise form_trigger_failure; end if; forms_ddl('alter user '||:un||' identified by '||:new_pw); if not form_success then set_alert_property('alert_cpw',alert_message_text, 'User name '''||upper(:un)||''' does not exist'); alertcpw := show_alert('alert_cpw'); else set_alert_property('alert_cpw',alert_message_text, 'User altered'); alertcpw := show_alert('alert_cpw'); :global.pw := :new_pw; clear_form; logout; logon(:global.un,:global.pw); end if; end; PRIVILEGES FORM- تستخدم هذه النافذة لمنح مستخدم جديد صلاحيات استخدام النظام من قِبل مدير النظام.- هذه النافذة تحتوي على DATABASE BLOCK ، حيث يتم حفظ الصلاحيات في جدول تم إنشاؤه. ( هذا الجدول ننشئه تحت المستخدم SV الذي تم انشاؤه مسبقاً )جملة انشاء الجدول الخاص بنافذة PRIVILEGES : create table privs ( un varchar2(50), log_out number(1), change_pw number(1), new_user number(1), drop_user number(1), privs number(1), employ number(1), department number(1), calc number(1)); WHEN-BUTTON-PRESSED TRIGGERينطلق هذا الحدث عند تشغيل النموذج، و يقوم بتأكد من وجود قيمة للـ Parameter الذي تم تمريره من النموذج New User، اذا كان الـ Parameter لا يحمل قيمة اجعل حالة النموذج " ادخال استعلام " اذا أردت الاستعلام عن صلاحيات مستخدم مخزن مسبقاً، أما اذا كان الـ Parameter يحمل قيمة يتم اسناد قيمة الـ Parameter الى اسم المستخدم لكي لا يتم كتابته مرة اخرى، و من ثم يتم تحديد الصلاحيات. if :parameter.p_un is null then enter_query; else :un := :parameter.p_un; end if; LOG_OUT CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على تسجيل خروج، ويقوم بمنح صلاحية تشغيل نافذة " تسجيل الدخول " أو سحبها. check_user; if checkbox_checked('log_out') then forms_ddl('grant log_out to '||:un); else forms_ddl('revoke log_out from '||:un); end if; CHANGE_PW CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على تغيير كلمة المرور، ويقوم بمنح صلاحية تشغيل نافذة " تغيير كلمة المرور " أو سحبها. check_user; if checkbox_checked('change_pw') then forms_ddl('grant change_pw to '||:un); else forms_ddl('revoke change_pw from '||:un); end if; NEW_USER CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على انشاء مستخدم جديد، ويقوم بمنح صلاحية تشغيل نافذة " مستخدم جديد " أو سحبها. check_user; if checkbox_checked('new_user') then forms_ddl('grant new_user to '||:un); else forms_ddl('revoke new_user from '||:un); end if; DROP_USER CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على حذف المستخدم، ويقوم بمنح صلاحية تشغيل نافذة " حذف مستخدم " أو سحبها. check_user; if checkbox_checked('drop_user') then forms_ddl('grant drop_user to '||:un); else forms_ddl('revoke drop_user from '||:un); end if; PRIVS CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على منح الصلاحيات، ويقوم بمنح صلاحية تشغيل نافذة " صلاحيات النظام " أو سحبها. check_user; if checkbox_checked('privs') then forms_ddl('grant privs to '||:un); else forms_ddl('revoke privs from '||:un); end if; EMPLOY CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على الموظفين، ويقوم بمنح صلاحية تشغيل نافذة " الموظفين " و صلاحية كاملة على الجدول Emp أو سحبها. check_user; if checkbox_checked('employ') then forms_ddl('grant employ to '||:un); forms_ddl('grant all on scott.emp to '||:un); else forms_ddl('revoke employ from '||:un); forms_ddl('revoke all on scott.emp from '||:un); end if; DEPARTMENT CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على الاقسام، ويقوم بمنح صلاحية تشغيل نافذة " الاقسام " و صلاحية كاملة على الجدول Deptأو سحبها. check_user; if checkbox_checked('departmnt') then forms_ddl('grant departmnt to '||:un); forms_ddl('grant all on scott.dept to '||:un); else forms_ddl('revoke departmnt from '||:un); forms_ddl('revoke all on scott.dept from '||:un); end if; CALC CHECKBOXWHEN-CHECKBOX_CHECKED TRIGGERينطلق هذا الحدث عند عمل Check أو Uncheck على الآلة الحاسبة، ويقوم بمنح صلاحية تشغيل نافذة " الآلة الحاسبة " أو سحبها. check_user; if checkbox_checked('calc') then forms_ddl('grant calc to '||:un); else forms_ddl('revoke calc from '||:un); end if; SAVE BUTTONWHEN-BUTTON-PRESSED TRIGGERيقوم بعمل حفظ للنموذج. Commit; - سبق و تم انشاء Two tables و هما Emp, Dept ، و للتعامل مع هذه الجداول بشكل أسهل نقوم بإنشاء نموذجين بالاعتماد على الجدولين المذكورين.انشاء الـ Roles- A role : A role is a named collection of privileges. A role may be assigned to a user, but a user cannot be assigned to a role. For example, users can log into the database; roles cannot. A user can own objects while a role cannot. The function of a role is to group logically associated privileges and allow those privileges to be passed to a user by referencing the role.هي عبارة عن مجموعة من الصلاحيات، يمكن إسنادها للمستخدم.- لإنشاء Role يجب أن يملك المستخدم ( SV ) صلاحية لعمل ذلك أو يمكن الاتصال عن طريق المستخدم system/manager و من هناك يمكن عمل ذلك.- لإعطاء الصلاحية للمستخدم ( SV ) بإنشاء Roles :Conn system/manager ( SQL Plus بداخل نافذة ) Grant dba to sv; ( DBA is a ROLE ) - الآن سنقوم بإنشاء الـ Roles حسب الـ Menu Module الذي أنشأناه سابقاً.- يوجد في الـ Menu أعلاه قائمتين، مجموع الأوامر أو الخيارات في القائمتين يساوي 8.إذاً يمكننا إنشاء 8 Roles. و لتكن أسماء الـ Roles كالتالي: - Log_out. - New_user.- Drop_user.- Change_pw.- Privs.- Employ.- Departmnt.- Calc. - كما ذكرنا سالفاً يمكن إنشاء الـ Roles من خلال الاتصال بالنظام عن طريق system/manager أو منح المستخدم SV الـ DBA Role و إنشاءها من هناك.- جملة انشاء الـ Role: Create role role_name; - Create role Log_out; - Create role New_user; - Create role Drop_user; - Create role Change_pw; - Create role Privs; - Create role Employ; - Create role Departmnt; - Create role Calc; - الـ ( Employ, Departmnt Roles ) يتم منحهم للمستخدم الذي سيتصل بقاعدة البيانات لادخال، تعديل الجدولين Emp, Dept لذلك سنقوم بمنح Employ, Departmnt Roles صلاحيات عمل كل شيء على هذين الجدولينو بالتالي يتم منحهم للمستخدم: Conn sv/sv; Grant all on emp to employ; Grant all on dept to department; ربط الـ Menu مع الـ Form- نقوم بفتح الـ Main_form الذي تم إنشاؤه مسبقاً.- من نافذة الـ Object Navigator ندخل الى خصائص ( Property Palette ) الخاصة بالـ Form Module .- في خاصية Menu Module نضع إسم الـ Menu مع مسارها.- هكذا نكون قد ربطنا الـ Menu مع الـ Form.إسناد الـ Roles الى الـ Menu- نقوم بتشغيل الـ Form builder و نستدعي الملف Main_Menu .- من خصائص الـ Main_Menu، نجعل الخاصية USE SECURITY = YES،و نُدخل في الخاصية MODULE ROLES أسماء الـ Roles التي أنشأناها مسبقاً و هي: Log_out. New_user. Drop_user. Change_pw.Privs. Employ.Departmnt. Calc. - كما نعلم أن الـ Menu يوجد بها Submenus و لا بد من توزيع الـ Roles عليها.- Exit القائمة الفرعية الاولى:بما أن الامر Exit يستخدم من جميع المستخدمين، نقوم بإسناد جميع الـ Roles لها. و ذلك بالدخول الى خصائصها ( Property Palette ):الخاصية Item Roles : نختار منها جميع الـ Roles.- System القائمة الفرعية الثانية:نُسند إليها الـ Roles المعنية بها و هي:Log_out. New_user.Drop_user. Change_pw.Privs.- Windows القائمة الفرعية الثالثة:نُسند إليها الـ Roles المعنية بها و هي:Employ. Departmnt. Calc.ربط الـ Forms مع الـ Menu- من نافذة الـ Object Navigator في الـ Form Builder نقوم بإستدعاء الملف Main_Menu.mmb.- النماذج التي سنربطها مع القائمة:New_User Drop_User Change_PwPrivs Employee Department- لنأخذ مثلاً الـ Menu Item New User ، ندخل الى الـ PL/SQL Editor و نكتب ما يلي: open_form('d:\test\new_user.fmx'); open_form : اجراء يستخدم لاستدعاء نموذج مع كتابة مسار الملفالمراد استدعاءه.- و نكرر العملية مع كل الـ Menu Items مع تغيير اسم الملف.- بالنسبة للـ Log_out Menu Item ، تستخدم لعمل تسجيل خروج من النظام. declare un varchar2(40); pw varchar2(40); begin logout; logon_screen; un := get_application_property(username); pw := get_application_property(password); logon(un,pw); :global.un := un; :global.pw := pw; copy(upper(un),'main_blk.u'); replace_menu('d:\test\main_menu.mmx'); end; - بالنسبة للـ Calc Menu Item ، عند اختيارها تفتح نافذة الآلة الحاسبة التابعة لنظام التشغيل windows. Host('c:\windows\system32\calc.exe’); Host : Executes an indicated operating system command. بعض المفاهيم منقولة للامانة العليمة.واخيرا وليس آخرا....اتمنى الاستفادة للجميع...بالتوفيق تم تعديل 30 يونيو 200916 سنة بواسطة PALI.ORACLE تقديم بلاغ
بتاريخ: 1 يوليو 200916 سنة comment_161856 ماشاء اللهمجهود يستحق الإشادةبارك الله فيك وفتح لك أبواب علمه تقديم بلاغ
بتاريخ: 1 يوليو 200916 سنة comment_161906 السلام عليكم شرح جميل ووافى بارك الله فيك وزادك من علمك ونفعك بما علمك تقديم بلاغ
بتاريخ: 1 يوليو 200916 سنة كاتب الموضوع comment_161907 بالتوفيق اخواني...اي اسئلة نحن جاهزون.... تقديم بلاغ
بتاريخ: 1 نوفمبر 200916 سنة كاتب الموضوع comment_175138 أشكرك أخي الجبالي على مرورك الكريم..تحياتي تقديم بلاغ
بتاريخ: 1 نوفمبر 200916 سنة comment_175194 الاخوة المشرفين والادارة الكرامنشكر المهندس احمد على جهوده الجبارة كما البقية سعيا للعلم والتواصل وايصال المعلومة لكي تعم الفائدة على الجميعسؤال واحد فقط على هذا الموضوع موجه للمشرفين والادارة واتمنى فعلا ان يتم تنفيذه:تثبيت هذه المشاركة لما فيها من معلومات قيمة جدا وتفيدنا في عملنا.وشكرا تقديم بلاغ
بتاريخ: 1 نوفمبر 200916 سنة comment_175196 السلام عليكم ورحمة الله الأخ / احمد شكرا لك على التألق والجهد المتميز بالمنتديات ... وجزاك الله خيرا الأخ / rose_4_prettyشكرا لك على المداخلة وعلى الاقتراح الجدير بالتنفيذسيتم التثبيت تقبل تحياتى تقديم بلاغ
بتاريخ: 2 نوفمبر 200916 سنة كاتب الموضوع comment_175213 الاخوة المشرفين والادارة الكرامنشكر المهندس احمد على جهوده الجبارة كما البقية سعيا للعلم والتواصل وايصال المعلومة لكي تعم الفائدة على الجميعسؤال واحد فقط على هذا الموضوع موجه للمشرفين والادارة واتمنى فعلا ان يتم تنفيذه:تثبيت هذه المشاركة لما فيها من معلومات قيمة جدا وتفيدنا في عملنا.وشكرا العفو أخي معتز..وأشكرك على مرورك الكريم..تحياتيالسلام عليكم ورحمة الله الأخ / احمد شكرا لك على التألق والجهد المتميز بالمنتديات ... وجزاك الله خيرا الأخ / rose_4_prettyشكرا لك على المداخلة وعلى الاقتراح الجدير بالتنفيذسيتم التثبيت تقبل تحياتى أشكرك أخي أمجد...تحياتي.. تقديم بلاغ
بتاريخ: 3 نوفمبر 200916 سنة comment_175426 FRM-10256 : المستخدم غير معتمد لتشغيل قائمة FORM BUILDER حاولت أطبق مثال صغير ...ظهرت لي هذه المشكلة .... شو السبب تقديم بلاغ
بتاريخ: 4 نوفمبر 200916 سنة comment_175465 [وسط] ممكن توضيح ماذا فعلت ؟؟ نعم أخي ,,, قمت بإنشاء رول وقمت بمنح هذه الرول لمستخدم , وقمت بإضافة الرول فى المنيو سكيرتي وعند التنفيذ ظهرت هذه الرسالة. [/وسط] تقديم بلاغ
بتاريخ: 5 نوفمبر 200916 سنة comment_175509 الصحيح انه حاجه متعوب عليها شكرا على الشرحمهندس احمد تقديم بلاغ
بتاريخ: 5 نوفمبر 200916 سنة comment_175512 مشكور يا احمد شرح رائع وجميل وبتمكن عالي ومبروك التثبيت بتستاهل الاشراف بكل جدارة تقديم بلاغ
بتاريخ: 6 نوفمبر 200916 سنة comment_175639 موضوع جميل جدا أخي أحمديسلموا الأياديهذا ما أ ريده بالضبط في مشروعي وكنت بصدد نشر موضوع بخصوصه ..أرحتني كثيرا شكرا تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة كاتب الموضوع comment_176165 مشكور يا احمد شرح رائع وجميل وبتمكن عالي ومبروك التثبيت بتستاهل الاشراف بكل جدارة أشكرك حبيبي ماهر...موضوع جميل جدا أخي أحمديسلموا الأياديهذا ما أ ريده بالضبط في مشروعي وكنت بصدد نشر موضوع بخصوصه ..أرحتني كثيرا شكرا لا شكر على واجب أخي العزيز..تحياتي تم تعديل 10 نوفمبر 200916 سنة بواسطة PALI.ORACLE تقديم بلاغ
بتاريخ: 10 نوفمبر 200916 سنة comment_176168 عااااااااااااااااشت ايييييييييدك يا وردة على الشرح تقديم بلاغ
بتاريخ: 24 نوفمبر 200916 سنة comment_177469 مشكور على الشرح المفصل بس عندي المشكله الاتيه عند ادخال يوزر جديد ادخل اسم اليوزر وكلمه السر والتاكيد وبعدين اضغط على ادخال الصلاحيات واختار واخزن بس ماهو الكود الي يرجعني لفورم ادخال اليوزر حتى اضغط creat userولو انت شغلك وشرحك لا يعلى عليه بس عندي ملاحضه وهو عندالجملهlog in يجب ادخال اسم الداتا بيس الموجود بيها اليوزر وبارك الله بيك افدتنا كثيرا تقديم بلاغ
بتاريخ: 24 نوفمبر 200916 سنة كاتب الموضوع comment_177508 مشكور على الشرح المفصل بس عندي المشكله الاتيه عند ادخال يوزر جديد ادخل اسم اليوزر وكلمه السر والتاكيد وبعدين اضغط على ادخال الصلاحيات واختار واخزن بس ماهو الكود الي يرجعني لفورم ادخال اليوزر حتى اضغط creat userولو انت شغلك وشرحك لا يعلى عليه بس عندي ملاحضه وهو عندالجملهlog in يجب ادخال اسم الداتا بيس الموجود بيها اليوزر وبارك الله بيك افدتنا كثيرا السلام عليكمبالنسبه للسؤال الاول ممكن توضيح اكتر ؟؟والملاحظة صحيحة..اشكرك.. تقديم بلاغ
بتاريخ: 14 ديسمبر 200916 سنة comment_179206 يعني اكتب اليوزر احمد واكتب كلمه السر وبعدين اظغط على دكمه خلق يوزر او دكمه اعطاء الصلاحياتالمهم اريد الكود الي يرجعني الى الفورم الي كنت بيها قبل ظغط دكمه اعطاء الصلاحيات وهي فورم خلق يوزر تقديم بلاغ
بتاريخ: 27 مارس 201015 سنة comment_188440 الف شكر لك أخي ,,,موضوع ثري متكامل في خاصية مهمة لأي نظام ,,,,أنا لي فترة أقوم بناء نظام متكامل لأدارة المشتشفيات الخاصة ,,, قطعت مرحلة منه ,,,,و كنت في حاجة لموضوع الأمن في هذا النظام ,, فوجدت موضوع الرائع .. الله يجزاك خير ,,,,..سيتم الرجوع له ,, قريبا , و الأستفاده منه..تحيتي تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.