Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल में मौजूदा खाते के समान विशेषाधिकारों के साथ स्कीमा को कैसे दोहराएं?

Oracle SQL डेवलपर में, DBA, सुरक्षा और उपयोगकर्ता अनुभाग खोलें।

अपना खाता चुनें.

राइट-क्लिक करें।

चुनें, लाइक बनाएं।

'ऑब्जेक्ट प्राइवेट कॉपी करें' पर टॉगल करें

नया उपयोगकर्ता नाम/पासवर्ड प्रदान करें।

वोइला।

हमने आपके लिए डेटा डिक्शनरी से जो कोड निकाला है, उसे देखने के लिए SQL पेज पर जाएं।

इसने कोटा, भूमिकाएं, सिस्टम प्राइवेट और ऑब्जेक्ट प्राइवेट को हथिया लिया है।

संस्करण 18.1 में, आप केवल उपयोगकर्ता को खोल सकते हैं और SQL पृष्ठ पर जा सकते हैं और वहां दिए गए कोड में स्कीमा नाम को कॉपी/पेस्ट/प्रतिस्थापित कर सकते हैं।

काश! (मैंने आपको यह कहते हुए सुना, मुझे ऐसा करने के लिए कोड की आवश्यकता है।)

SQL डेवलपर में लॉग पैनल खोलकर और स्टेटमेंट पेज पर क्लिक करके आप डीबी से यह जानकारी प्राप्त करने के लिए उपयोग किए जा रहे SQL को देख सकते हैं।

यह रहा वह कोड:

select M.NAME,
       decode(
    NVL(
        S.ADMIN_OPTION,
        'NULL'
    ),
    'NO',
    'YES',
    'NULL',
    'NO',
    'YES'
) GRANTED,
       NVL(
    ADMIN_OPTION,
    'NO'
) ADMIN
  from SYSTEM_PRIVILEGE_MAP M,
       (
    select *
      from DBA_SYS_PRIVS
     where (
        GRANTEE   =?
            or ?         = null
    )
) S
 where S.PRIVILEGE (+)   = M.NAME
 order by 1;

select R.ROLE,
       decode(
    S.NAME,
    R.ROLE,
    'YES',
    'NO'
) GRANTED,
       NVL(
    S.ADMIN,
    'NO'
) ADMIN,
       NVL(
    S.DEF,
    'NO'
) DEF
  from DBA_ROLES R,
       (
    select GRANTED_ROLE NAME,
           ADMIN_OPTION ADMIN,
           DEFAULT_ROLE DEF
      from DBA_ROLE_PRIVS
     where GRANTEE   =?
) S
 where S.NAME (+)   = R.ROLE
   and R.AUTHENTICATION_TYPE != 'GLOBAL'
 order by 1;

select OWNER,
       TABLE_NAME,
       PRIVILEGE,
       GRANTABLE
  from DBA_TAB_PRIVS
 where GRANTEE   =?;

select ACCOUNT_STATUS,
       DEFAULT_TABLESPACE DEF,
       TEMPORARY_TABLESPACE TEMP,
       PASSWORD,
       EXTERNAL_NAME,
       EDITIONS_ENABLED,
       ALL_SHARD
  from DBA_USERS
 where USERNAME   =?;

select T.TABLESPACE_NAME,
       NVL(
    Q.UNLIMITED,
    'NO'
) UNLIMITED,
       Q.QUOTA,
       Q.UNIT,
       T.CONTENTS
  from DBA_TABLESPACES T,
       (
    select TABLESPACE_NAME,
           decode(
        MAX_BYTES,
        -1,
        'YES',
        'NO'
    ) UNLIMITED,
           decode(
        MAX_BYTES,
        -1,
        null,
        MAX_BYTES / 1024
    ) QUOTA,
           'K' UNIT
      from DBA_TS_QUOTAS
     where (
        USERNAME   =:1
            or :1         = null
    )
) Q
 where Q.TABLESPACE_NAME (+)   = T.TABLESPACE_NAME
 order by 1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हम 15 मिनट का समय अंतराल कैसे प्राप्त कर सकते हैं

  2. Oracle में लोड डेटा INFILE समतुल्य

  3. ओरेकल में नेस्टेड लेनदेन का उपयोग करना

  4. Oracle में DBTIMEZONE फ़ंक्शन

  5. MySQL COALESCE और NULLIF फ़ंक्शन