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

Oracle स्कीमा पर उपयोगकर्ता को सभी विशेषाधिकार प्रदान करें

आप इसे एक लूप में कर सकते हैं और गतिशील SQL द्वारा अनुदान दे सकते हैं:

BEGIN
   FOR objects IN
   (
         SELECT 'GRANT ALL ON "'||owner||'"."'||object_name||'" TO MyUser' grantSQL
           FROM all_objects
          WHERE owner = 'MY_SCHEMA'
            AND object_type NOT IN
                (
                   --Ungrantable objects.  Your schema may have more.
                   'SYNONYM', 'INDEX', 'INDEX PARTITION', 'DATABASE LINK',
                   'LOB', 'TABLE PARTITION', 'TRIGGER'
                )
       ORDER BY object_type, object_name
   ) LOOP
      BEGIN
         EXECUTE IMMEDIATE objects.grantSQL;
      EXCEPTION WHEN OTHERS THEN
         --Ignore ORA-04063: view "X.Y" has errors.
         --(You could potentially workaround this by creating an empty view,
         -- granting access to it, and then recreat the original view.) 
         IF SQLCODE IN (-4063) THEN
            NULL;
         --Raise exception along with the statement that failed.
         ELSE
            raise_application_error(-20000, 'Problem with this statement: ' ||
               objects.grantSQL || CHR(10) || SQLERRM);
         END IF;
      END;
   END LOOP;
END;
/


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle क्लाउड प्लेटफ़ॉर्म पर Oracle डेटाबेस 12c के साथ Oracle JDeveloper 12c का उपयोग करना, भाग 3

  2. Oracle संग्रहीत कार्यविधि में varchar2 इनपुट का डिफ़ॉल्ट आकार क्या है, और क्या इसे बदला जा सकता है?

  3. Oracle डेटाबेस में डे लाइट सेविंग को कैसे हैंडल करें

  4. Ant . का उपयोग करके जेएसपी को प्रीकंपाइल करने का सबसे अच्छा तरीका क्या है?

  5. ORA-01438:निर्दिष्ट परिशुद्धता से बड़ा मान इस कॉलम के लिए अनुमति देता है - मैं यह कैसे प्राप्त करूं कि यह किस कॉलम का जिक्र कर रहा है?