2012-08-11 16 views
8

मैं ओरेकल 11 जी में उपयोगकर्ता/स्कीमा बनाना चाहता हूं और उपयोगकर्ता को सभी विशेषाधिकार प्रदान करना चाहता हूं। मैं इसे एक साधारण लिपि के साथ कैसे कर सकता हूं। मैंने निम्नलिखित लिंक देखे लेकिन मुझे यकीन नहीं है कि कौन सा उपयोग करना है या यदि ये कथन सबसे अच्छा तरीका है।नए उपयोगकर्ता बनाने और विशेषाधिकार प्रदान करने के लिए ओरेकल 11 जी बयान?

http://ss64.com/ora/grant.html

आप बता सकते हैं कि कैसे मैं सरल संभव तरीके से इस करते हैं और सुरक्षित रूप से कर सकते हैं?

उत्तर

8

एक नया उपयोगकर्ता बनाने के लिए आप "उपयोगकर्ता" कमांड का उपयोग करते हैं। तो एक विशिष्ट बनाने के उपयोगकर्ता कमांड यह होगी:

create user test identified by test default tablespace mytbsp. 

बेशक आप उपयोगकर्ता, पासवर्ड और विभिन्न मूल्यों के साथ टेबल-स्पेस के लिए मूल्यों को बदलने की जरूरत है। हालांकि मैं अनुशंसा करता हूं कि आप ओरेकल के दस्तावेज़ http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_8003.htm पर एक नज़र डालें।

अगला चरण उपयोगकर्ता को संबंधित अधिकार प्रदान करना है। उपयोगकर्ता को सभी अधिकार देने के लिए एक बहुत ही बुरा दृष्टिकोण है क्योंकि आप उसे डीबीए विशेषाधिकार भी देंगे। इसके बजाय आप उसे विशेषाधिकार कनेक्ट करने और अपने डिफ़ॉल्ट टेबल स्पेस को अनुमति देने के लिए क्या चाहते हैं। अधिकारों को सीधे देने के बजाय भूमिकाओं का उपयोग करना बेहतर है। इसलिए यदि आपको अधिकारों को फिर से देना है तो आपको केवल भूमिका निभानी होगी।

GRANT CREATE session, CREATE table, CREATE view, 
     CREATE procedure,CREATE synonym, 
     ALTER table, ALTER view, ALTER procedure,ALTER synonym, 
     DROP table, DROP view, DROP procedure,DROP synonym 
     TO MyRole; 

इस कथन को पूरा नहीं कर रहा है आप अतिरिक्त अधिकार की आवश्यकता हो सकती (उदाहरण के लिए सूचकांक रखरखाव), लेकिन ऑनलाइन ओरेकल प्रलेखन पर एक नजर है: सबसे पहले कदम भूमिका बनाने के लिए है।

इसके बाद आप नव निर्मित उपयोगकर्ता को भूमिका निभाते हैं।

GRANT myrole to test; 
+1

क्या मैं सभी को MyRole पर अनुदान दे सकता हूं? –

+1

जैसा कि मैंने समझाया यह वास्तव में एक बुरा दृष्टिकोण है। आप मूल रूप से सभी को एक डीबीए बनाते हैं, सभी निजीों को अक्षम करते हैं, आपको वास्तव में सुरक्षा – steve

+0

के बारे में सोचना होगा, मैं कैसे तय करूं कि कौन से विशेषाधिकार प्रदान करना है और किसको रद्द करना है? –

4

उपयोगकर्ता बनाएँ:

create user user_name identified by password ; 

विशेषाधिकार प्रदान करें:

select * from system_privilege_map where neme like '%PRIV%'; 

यदि आप चाहते हैं करने के लिए:

grant all privilege to user_name; 

आप विशेषाधिकारों की संख्या को देखना चाहते हैं उपयोगकर्ताओं को सौंपा विशेषाधिकार देखें:

select count (*) , grantee 
from dba_sys_privs 
where grantee in ('user1','user2') 
group by grantee ;