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

Oracle डेटाबेस 11g में एक नया स्कीमा/नया उपयोगकर्ता कैसे बनाएं?

आम तौर पर ऑरैकल में एक स्कीमा बोलना उपयोगकर्ता के समान होता है। जब आप उपयोगकर्ता बनाते हैं तो Oracle डेटाबेस स्वचालित रूप से एक स्कीमा बनाता है। DDL फ़ाइल एक्सटेंशन वाली फ़ाइल एक SQL डेटा परिभाषा भाषा फ़ाइल है।

नया उपयोगकर्ता बनाना (एसक्यूएल प्लस का उपयोग करके)

बेसिक SQL प्लस कमांड:

  - connect: connects to a database
  - disconnect: logs off but does not exit
  - exit: exists

SQL प्लस खोलें और लॉग इन करें:

/ as sysdba

Sysdba एक भूमिका है और यूनिक्स पर "रूट" या विंडोज़ पर "व्यवस्थापक" की तरह है। वह सब देखता है, सब कर सकता है। आंतरिक रूप से, यदि आप sysdba के रूप में कनेक्ट होते हैं, तो आपका स्कीमा नाम SYS प्रतीत होगा।

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

SQL> create user johny identified by 1234;

सभी उपयोगकर्ताओं को देखें और जांचें कि क्या उपयोगकर्ता जॉनी है:

SQL> select username from dba_users;

यदि आप अभी जॉनी के रूप में लॉगिन करने का प्रयास करते हैं तो आपको एक त्रुटि मिलेगी:

ERROR:
ORA-01045: user JOHNY lacks CREATE SESSION privilege; logon denied

लॉगिन करने के लिए उपयोगकर्ता को कम से कम सत्र विशेषाधिकार बनाने की आवश्यकता होती है, इसलिए हमें उपयोगकर्ता को यह विशेषाधिकार देना होगा:

SQL> grant create session to johny;

अब आप उपयोगकर्ता जॉनी के रूप में कनेक्ट करने में सक्षम हैं:

username: johny
password: 1234

उपयोगकर्ता से छुटकारा पाने के लिए आप इसे छोड़ सकते हैं:

SQL> drop user johny;

उपयोगकर्ता बनाने का तरीका दिखाने के लिए यह मूल उदाहरण था। यह अधिक जटिल हो सकता है। ऊपर हमने एक उपयोगकर्ता बनाया है जिसका ऑब्जेक्ट डेटाबेस डिफ़ॉल्ट टेबलस्पेस में संग्रहीत है। डेटाबेस को साफ-सुथरा रखने के लिए हमें यूजर्स ऑब्जेक्ट्स को अपने स्पेस में रखना चाहिए (टेबलस्पेस डेटाबेस में स्पेस का आवंटन है जिसमें स्कीमा ऑब्जेक्ट हो सकते हैं)।

पहले से बनाए गए टेबलस्पेस दिखाएं:

SQL> select tablespace_name from dba_tablespaces;

टेबल स्पेस बनाएं:

SQL> create tablespace johny_tabspace
  2  datafile 'johny_tabspace.dat'
  3  size 10M autoextend on;

अस्थायी टेबलस्पेस बनाएं (अस्थायी टेबलस्पेस डेटाबेस में स्थान का आवंटन है जिसमें क्षणिक डेटा हो सकता है जो केवल एक सत्र की अवधि के लिए बना रहता है। यह क्षणिक डेटा प्रक्रिया या आवृत्ति विफलता के बाद पुनर्प्राप्त नहीं किया जा सकता है।):

SQL> create temporary tablespace johny_tabspace_temp
  2  tempfile 'johny_tabspace_temp.dat'
  3  size 5M autoextend on;

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

SQL> create user johny
  2  identified by 1234
  3  default tablespace johny_tabspace
  4  temporary tablespace johny_tabspace_temp;

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

SQL> grant create session to johny;
SQL> grant create table to johny;
SQL> grant unlimited tablespace to johny;

जॉनी के रूप में लॉगिन करें और जांचें कि उसके पास क्या विशेषाधिकार हैं:

SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
UNLIMITED TABLESPACE
CREATE TABLE

तालिका बनाने के विशेषाधिकार के साथ उपयोगकर्ता तालिकाएँ बना सकता है:

SQL> create table johny_table
  2  (
  3     id int not null,
  4     text varchar2(1000),
  5     primary key (id)
  6  );

डेटा डालें:

SQL> insert into johny_table (id, text)
  2  values (1, 'This is some text.');

चुनें:

SQL> select * from johny_table;

ID  TEXT
--------------------------
1   This is some text.

DDL डेटा प्राप्त करने के लिए आप DBMS_METADATA पैकेज का उपयोग कर सकते हैं जो "डेटाबेस डिक्शनरी से XML या निर्माण DDL के रूप में मेटाडेटा को पुनः प्राप्त करने और ऑब्जेक्ट को फिर से बनाने के लिए XML सबमिट करने का एक तरीका प्रदान करता है।"। (http://www.dba-oracle.com/oracle_tips_dbms_metadata.htm )

टेबल के लिए:

SQL> set pagesize 0
SQL> set long 90000
SQL> set feedback off
SQL> set echo off
SQL> SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;

परिणाम:

  CREATE TABLE "JOHNY"."JOHNY_TABLE"
   (    "ID" NUMBER(*,0) NOT NULL ENABLE,
        "TEXT" VARCHAR2(1000),
         PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "JOHNY_TABSPACE"  ENABLE
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "JOHNY_TABSPACE"

इंडेक्स के लिए:

SQL> set pagesize 0
SQL> set long 90000
SQL> set feedback off
SQL> set echo off
SQL> SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;

परिणाम:

  CREATE UNIQUE INDEX "JOHNY"."SYS_C0013353" ON "JOHNY"."JOHNY_TABLE" ("ID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DE
FAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "JOHNY_TABSPACE"

अधिक जानकारी:

डीडीएल

DBMS_METADATA

स्कीमा ऑब्जेक्ट

स्कीमा और उपयोगकर्ता के बीच अंतर

विशेषाधिकार

उपयोगकर्ता/स्कीमा बनाना

टेबलस्पेस बनाना

एसक्यूएल प्लस कमांड्स



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल एसक्यूएल डेवलपर में क्लॉब फील्ड डेटा कैसे निर्यात करें?

  2. Oracle डाटाबेस 20c नई सुविधाएँ

  3. जुलाई 2016 पीएसयू इस्कोरा बनाने में विफल

  4. Oracle में अंतर b/w TIMESTAMP प्रारूप मान कैसे खोजें?

  5. जावा में पैकेज-स्तरीय सहयोगी सरणी बनाना