2012-02-25 15 views
73

क्या कोई मुझे ओरेकल 11 जी में उपयोगकर्ता बनाने के बारे में सलाह दे सकता है और केवल उस उपयोगकर्ता को केवल एक विशेष संग्रहित प्रक्रिया और उस प्रक्रिया में तालिकाओं को निष्पादित करने की क्षमता प्रदान करता है।ओरेकल 11 जी में उपयोगकर्ता कैसे बनाएं और अनुदान अनुमतियां

मुझे सच में यकीन नहीं है कि यह कैसे करें!

उत्तर

80

सिस्टम के रूप में कनेक्ट करें।

GRANT SELECT [, INSERT] [, UPDATE] [, DELETE] on schema.table TO username; 

जो भी टेबल प्रक्रिया का उपयोग करता है:

CREATE USER username IDENTIFIED BY apassword; 

GRANT CONNECT TO username; 

GRANT EXECUTE on schema.procedure TO username; 

तुम भी करना पड़ सकता है।

+6

+1 Oracle संस्करण के आधार पर, हालांकि, 'कनेक्ट' भूमिका के नाम से सुझावों के मुकाबले कई और विशेषाधिकार हैं। मैं इसके बदले 'सत्र बनाएं' प्रदान करूंगा। –

+0

मैं जिस संस्करण का उपयोग कर रहा हूं वह 11 जी – Andy5

+2

है ["कनेक्ट, रिसोर्स, और डीबीए इन भूमिकाओं को पिछले संस्करणों के साथ संगतता के लिए प्रदान किया जाता है ... ओरेकल अनुशंसा करता है कि आप इन भूमिकाओं पर निर्भर होने के बजाय डेटाबेस सुरक्षा के लिए अपनी भूमिकाएं तैयार करें। ये भूमिकाएं हो सकती हैं ओरेकल डेटाबेस के भविष्य के संस्करणों द्वारा स्वचालित रूप से नहीं बनाया जाएगा। "] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm) – danihp

21

ओरेकल दस्तावेज़ व्यापक, ऑनलाइन और नि: शुल्क है। आपको इसका इस्तेमाल करना सीखना चाहिए। आप CREATE USER here के लिए वाक्यविन्यास और GRANT here,

डेटाबेस से कनेक्ट करने के लिए हमें उपयोगकर्ता को the CREATE SESSION privilege प्रदान करने की आवश्यकता है।

संग्रहीत प्रक्रिया पर नए उपयोगकर्ता अधिकारों को अनुमति देने के लिए हमें EXECUTE विशेषाधिकार प्रदान करने की आवश्यकता है। अनुदाता इनमें से एक होना चाहिए:

  • प्रक्रिया मालिक
  • एक उपयोगकर्ता को नियंत्रक विकल्प
  • GRANT के साथ एक उपयोगकर्ता किसी भी वस्तु विशेषाधिकार
  • एक डीबीए या अन्य के साथ साथ उस प्रक्रिया पर अमल सुपर उपयोगकर्ता खाता।

ध्यान दें कि प्रक्रिया को उपयोग करने के लिए हमें सामान्य रूप से संग्रहीत प्रक्रिया द्वारा उपयोग की जाने वाली वस्तुओं पर अधिकार देने की आवश्यकता नहीं होगी। डिफ़ॉल्ट अनुमति यह है कि हम प्रक्रिया के अधिकार के समान प्रक्रिया के साथ प्रक्रिया को निष्पादित करते हैं और, जैसा कि यह था, प्रक्रिया को निष्पादित करते समय उनके अधिकारों का उत्तराधिकारी था। यह AUTHID खंड द्वारा कवर किया गया है। डिफ़ॉल्ट निश्चित है (यानी प्रक्रिया मालिक)। केवल अगर AUTHID CURRENT_USER (आक्रमणकर्ता, यह हमारा नया उपयोगकर्ता है) पर सेट किया गया है, तो हमें प्रक्रिया द्वारा उपयोग की जाने वाली वस्तुओं पर अधिकार प्रदान करने की आवश्यकता है। Find out more

2
CREATE USER USER_NAME IDENTIFIED BY PASSWORD; 
GRANT CONNECT, RESOURCE TO USER_NAME; 
+1

'कनेक्ट, रिसोर्स, डीबीए' [* "ये भूमिकाएं पिछले संस्करणों के साथ संगतता के लिए प्रदान की जाती हैं ओरेकल डेटाबेस का ... ओरेकल अनुशंसा करता है कि आप इन भूमिकाओं पर निर्भर होने के बजाय डेटाबेस सुरक्षा के लिए अपनी भूमिकाएं तैयार करें। ये भूमिकाएं ओरेकल डेटाबेस के भविष्य के संस्करणों द्वारा स्वचालित रूप से नहीं बनाई जा सकती हैं। "*] (http://docs.oracle। ओरेकल 11 जी में कॉम/सीडी/बी 28359_01/सर्वर .111/बी 28286/वक्तव्य_9013.htm # r209c1-t47) –

22

ओरेकल में उपयोगकर्ता बनाने के लिए नीचे दिए गए चरणों का पालन करें।
--Connect सिस्टम उपयोगकर्ता के रूप में

CONNECT <USER-NAME>/<PASSWORD>@<DATABASE NAME>; 

--Create उपयोगकर्ता क्वेरी

CREATE USER <USER NAME> IDENTIFIED BY <PASSWORD>; 

--Provide भूमिकाओं

GRANT CONNECT,RESOURCE,DBA TO <USER NAME>; 

--Provide विशेषाधिकार

GRANT CREATE SESSION GRANT ANY PRIVILEGE TO <USER NAME>; 
GRANT UNLIMITED TABLESPACE TO <USER NAME>; 

- टेबल तक पहुंच प्रदान करें।

GRANT SELECT,UPDATE,INSERT ON <TABLE NAME> TO <USER NAME>; 
+0

, क्या यह "अनुदान डीबीए" या "ग्रैंड सिस्बा" है? – jondinham

+2

ओआरए -00 9 0 9: 'अनुदान उत्पन्न करने पर अनुपलब्ध या अमान्य विशेषाधिकार पर किसी भी प्राइवेट को अनुदान दें;' –

+3

सत्र –

-4
  • चरण 1।

    create user raju identified by deshmukh;

  • कदम 2.

    grant connect , resource to raju;

  • कदम 3.

    grant unlimitted tablespace to raju;

  • step4।

    grant select , update , insert , alter to raju;

+1

'कनेक्ट, रिसोर्स, डीबीए' [*" ये भूमिकाएं ओरेकल डेटाबेस के पिछले संस्करणों के साथ संगतता के लिए प्रदान की जाती हैं ... ओरेकल अनुशंसा करता है कि आप डेटाबेस के लिए अपनी भूमिकाएं तैयार करें इन भूमिकाओं पर भरोसा करने के बजाय सुरक्षा। इन भूमिकाओं को ओरेकल डेटाबेस के भविष्य के संस्करणों द्वारा स्वचालित रूप से नहीं बनाया जा सकता है। "*] (http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm# r209c1-t47) –

9

टेस्ट और उत्पादन की तरह महत्वपूर्ण वातावरण में इन दृष्टिकोण का प्रयोग न करें। स्थानीय पर्यावरण के लिए नीचे दिए गए कदम सुझाए गए हैं।

महत्वपूर्ण नोट:: प्रणाली उपयोगकर्ता है जब आप एक ही डाटाबेस पर एक से अधिक अनुप्रयोग चलाने credentials.Otherwise आप समस्या का सामना कर सकते के साथ अपने उपयोगकर्ता बनाएं अपना स्थानीय होस्ट के लिए मैं इन चरणों का के माध्यम से उपयोगकर्ता पैदा करते हैं। आप पासवर्ड भी समाप्त हो गया है के बारे में ओरेकल ओरा-28001 एक समस्या का सामना अगर यह हो सकता है उपयोगी रन

:

CONNECT SYSTEM/<<System_User_Password>>@<<DatabaseName>>; -- connect db with username and password, ignore if you already connected to database. 

फिर स्क्रिप्ट नीचे

CREATE USER <<username>> IDENTIFIED BY <<password>>; -- create user with password 
GRANT CONNECT,RESOURCE,DBA TO <<username>>; -- grant DBA,Connect and Resource permission to this user(not sure this is necessary if you give admin option) 
GRANT CREATE SESSION TO <<username>> WITH ADMIN OPTION; --Give admin option to user 
GRANT UNLIMITED TABLESPACE TO <<username>>; -- give unlimited tablespace grant 

संपादित करें चलाएँ

select * from dba_profiles;-- check PASSWORD_LIFE_TIME ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; -- SET IT TO UNLIMITED 
+2

'कनेक्ट, रिसोर्स, डीबीए' [* "ये भूमिकाएं ओरेकल डेटाबेस के पिछले संस्करणों के साथ संगतता के लिए प्रदान की जाती हैं ... ओरेकल अनुशंसा करता है कि आप इन भूमिकाओं पर निर्भर होने के बजाय डेटाबेस सुरक्षा के लिए अपनी भूमिकाएं तैयार करें। ये भूमिकाएं ओरेकल डेटाबेस के भविष्य के संस्करणों द्वारा स्वचालित रूप से नहीं बनाई जा सकती हैं। "*] (Http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_9013.htm#r209c1-t47) –

4

टिप्पणी में जैसा कि पहले उल्लेख किया है कई बार, CONNECT, RESOURCE और DBA भूमिकाओं के उपयोग ओरेकल द्वारा हतोत्साहित किया जाता है।

आप SYS के रूप में कनेक्ट करने के लिए अपनी भूमिका और प्रयोक्ता (ओं) जो इस भूमिका दी जाती है बनाने के लिए किया है। आप पसंद करते समय एसक्यूएल डेवलपर या एसक्यूएल * प्लस का उपयोग कर सकते हैं। लॉगऑन स्ट्रिंग में SYSDBA भूमिका का उल्लेख करना न भूलें। connect_identifier विभिन्न वाक्यविन्यास का उपयोग करता है।

sqlplus sys/<<password>>@<<connect_identifier>> as sysdba 

मान लें कि "Oracle Technology Network Developer Day" के साथ एक वी एम के रूप में प्रदान सेवाओं की तरह एक 12cR1 करते हैं। कनेक्ट तार (प्रदान की PDB से कनेक्ट करने के लिए) हो सकता है हो सकता है:

sqlplus sys/[email protected]/orcl as sysdba 
sqlplus [email protected]"127.0.0.1/orcl" as sysdba -- to avoid putting the pw in clear 

ध्यान दें कि यूनिक्स के तहत, उद्धरण भाग निकले जा करने के लिए नहीं तो वे खोल से भस्म कर दिया जाएगा। इस प्रकार "\" हो जाता है।

तो फिर तुम भूमिका MYROLE बना सकते हैं और अन्य भूमिकाएं या विशेषाधिकार देते हैं। मैं लगभग न्यूनतम कुछ दिलचस्प करने के लिए कहा:

create role myrole not identified; 
grant create session to myrole; 
grant alter session to myrole; 
grant create table to myrole; 

अगला अपने उपयोगकर्ता MYUSER पैदा करते हैं। identified by के बाद स्ट्रिंग जो पासवर्ड है-केस संवेदनशील है। बाकी नहीं है। तुम भी एसक्यूएल सीमांकित पहचानकर्ता नियमित पहचानकर्ता जो कुछ सीमाओं के tu अपरकेस और विषय बदल रहे हैं के बजाय (उद्धरण " से घिरा हुआ) इस्तेमाल कर सकते हैं।20m के बजाय कोटा unlimited हो सकता है।

create user myuser identified by myuser default tablespace users profile default account unlock; 
alter user myuser quota 20m on users; 
grant myrole to myuser; 

आखिरकार, आप अपने नए उपयोगकर्ता के रूप में कनेक्ट होते हैं।

कृपया ध्यान दें कि आप भी डिफ़ॉल्ट प्रोफ़ाइल में परिवर्तन या पासवर्ड के समयावधि समाप्त होने के रूप में कुछ सेटिंग्स को अनुकूलित करने एक और एक प्रदान कर सकता है, की अनुमति दी विफल लॉगिन प्रयासों की संख्या, आदि

संबंधित मुद्दे