إنتقال للمحتوى

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

كيف يمكن عمل أسكيمة مطابقة لأسكيمة أخرى ؟


7 رد (ردود) على هذا الموضوع

#1 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 29 April 2007 - 07:38 PM

احنا علشان نعمل جدول مطابق لجدول اخر فبنعمل كود ذى كده - على سبيل المثال :-

create table employees2 as select*from employees;


طيب لو احنا عاوزيين نعمل ذى الفكرة اللى فاتت بس على أسكيمة مش جدول ...... يعنى يبقى عندنا أسكيمة hr2 مطابقة تماماً لأسكيمة hr و بها نفس ال objects اللى موجوده فى الاصلية - اللى هى ال hr - فدى تبقى أيه كودها ؟

و شكراً


#2 -=|mOOdY|=-

-=|mOOdY|=-

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,324 مشاركة

تاريخ المشاركة 29 April 2007 - 08:14 PM

rem -----------------------------------------------------------------------

rem Filename:   cr8like.sql

rem Purpose:	Script to create a new user (with privs) like an existing

rem			 database user. User data will not be copied.

rem Date:	   02-Nov-1998

rem Author:	 Frank Naude, Oracle FAQ

rem Updated:	Konstantin Krivosheyev - 7 Dec 2002

rem Updated:	Frank Naude - 18 Dec 2003, 2 Dec 2004

rem -----------------------------------------------------------------------



set pages 0 feed off veri off lines 500



accept oldname prompt "Enter user to model new user to: "

accept newname prompt "Enter new user name: "

-- accept psw	 prompt "Enter new user's password: "



-- Create user...

select 'create user &&newname identified by values '''||password||''''||

-- select 'create user &&newname identified by &psw'||

	   ' default tablespace '||default_tablespace||

	   ' temporary tablespace '||temporary_tablespace||' profile '||

	   profile||';'

from   sys.dba_users 

where  username = upper('&&oldname');



-- Grant Roles...

select 'grant '||granted_role||' to &&newname'||

	   decode(ADMIN_OPTION, 'YES', ' WITH ADMIN OPTION')||';'

from   sys.dba_role_privs

where  grantee = upper('&&oldname');  



-- Grant System Privs...

select 'grant '||privilege||' to &&newname'||

	   decode(ADMIN_OPTION, 'YES', ' WITH ADMIN OPTION')||';'

from   sys.dba_sys_privs

where  grantee = upper('&&oldname');  



-- Grant Table Privs...

select 'grant '||privilege||' on '||owner||'.'||table_name||' to &&newname;'

from   sys.dba_tab_privs

where  grantee = upper('&&oldname');  



-- Grant Column Privs...

select 'grant '||privilege||' on '||owner||'.'||table_name||

	   '('||column_name||') to &&newname;'

from   sys.dba_col_privs

where  grantee = upper('&&oldname');  



-- Tablespace Quotas...

select 'alter user '||username||' quota '||

	   decode(max_bytes, -1, 'UNLIMITED', max_bytes)||

	   ' on '||tablespace_name||';'

from   sys.dba_ts_quotas

where  username = upper('&&oldname'); 



-- Set Default Role...

set serveroutput on

declare

  defroles varchar2(4000);

begin

  for c1 in (select * from sys.dba_role_privs 

			  where grantee = upper('&&oldname')

				and default_role = 'YES'

  ) loop

	  if length(defroles) > 0 then

		 defroles := defroles||','||c1.granted_role;

	  else

		 defroles := defroles||c1.granted_role;

	  end if;

  end loop;

  dbms_output.put_line('alter user &&newname default role '||defroles||';');

end;

/




صورة

!!! كم أنت عبقري !!!


#3 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 29 April 2007 - 09:46 PM

أخى العزيز مودى

أنا مش فاهم انت تقصد ايه بكودك ...... أنا عملت copy و paste لكودك فى اسكيمة ال system و أسكيمة ال hr و بعد كده شوفت كل ال users من خلال :-

select USERNAME,ACCOUNT_STATUS from dba_users;


ولاقيت ان مفيش user مكرر ..... و كل اللى لاحظته الأسكيمة الجديدة اللى اسمها MGMT_VIEW ....... فهل هذه الأسكيمة هى الأسكيمة المنسوخة من الأسكيمة التى قمت بتنفيذ كودك فيها ؟ ..... و أذا كان فما هى الطريقة التى تمكننى من التحكم فى أسم الاسكيمة المنسوخة ؟
فممكن لو سمحت تبقى تكتب توضيح مع الكود اللى كتبته علشان الرؤية عندى توضح أكتر .

و شكراً


#4 Essamshabeeb

Essamshabeeb

    عضو نشط

  • الأعضــاء
  • 479 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 30 April 2007 - 08:09 AM

ممكن بعد انشاء اليوزر الجديد تعمل export لليوزر القديم وبعد كده تعمل import لها فى اليوزر الجديد
imp user/pass@db file=xxx.dmp fromuser=olduser touser=newuser
اللهم اغفر لى ما لا يعلمون و اجعلنى خيرا مما يظنون

#5 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 30 April 2007 - 04:07 PM

أخى العزيز Essamshabeeb
انا لا أعرف كيف أترجم كودك ..... انا قمت بعمل مستخدم جديد بأسم hr2 بكلمة سر pshr2 و أديته الصلاحيات الازمة ..... والأن كيف اكتب كودك واين بالطريقة المناسبة لنقل محتويات المستخدم hr والذى كلمة مروره pshr الى المستخدم الجديد hr2 الذى كلمة مروره pshr2

و شكراً منتظر الرد .......

#6 Essamshabeeb

Essamshabeeb

    عضو نشط

  • الأعضــاء
  • 479 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 May 2007 - 10:23 AM

العزيز هانى من الـ command mode
1- تعمل export للمستخدم القديم hr عن طريق التالى :-
exp system/manager@orcl file=c:\hr.dmp owner=hr log=hr.log
2- تعمل امبورت فى اليوزر الجديد كما يلى
imp system/manager@orcl file=c:\hr.dmp fromuser=hr touser=hr2 log=h2.log
وموفق ان شاء الله
اللهم اغفر لى ما لا يعلمون و اجعلنى خيرا مما يظنون

#7 hanyfreedom

hanyfreedom

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,481 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Chess , Sudoku

تاريخ المشاركة 03 May 2007 - 01:00 PM

أخى الكريم Essamshabeeb
وبارك الله فيك
الطريقة نجحت بالفعل
شكراً جزيلاً لك .

#8 Essamshabeeb

Essamshabeeb

    عضو نشط

  • الأعضــاء
  • 479 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 05 May 2007 - 08:05 AM

وبارك الله فيك اخى هانى ..وفقك الله
اللهم اغفر لى ما لا يعلمون و اجعلنى خيرا مما يظنون