sql >> Database >  >> RDS >> Oracle

Gemeenschappelijke gebruiker met SYSBACKUP-privilege

Met de verschuiving van architectuur in Oracle Database 12c is er behoefte ontstaan ​​aan een GEBRUIKER/SCHEMA die toegang heeft tot zowel de containerdatabase (CDB) als de pluggable database (PDB). Met de lancering van Oracle Database 12c introduceerde Oracle een nieuw concept dat de "Common User ".

Elke gewone gebruiker kan verbinding maken en bewerkingen uitvoeren binnen de rootcontainer en binnen elke PDB waar het privileges heeft. Laten we leren hoe u een gemeenschappelijke gebruiker kunt maken. En hoe u SYSBACKUP . toewijst privilege toe.

Door SYSBACKUP . toe te wijzen privilege toe aan een GEWONE GEBRUIKER u kunt een speciaal schema hebben voor het uitvoeren van back-up- en herstelbewerkingen in uw Oracle Database.

Kenmerken van de gewone gebruiker

Hier zijn een paar kenmerken van een gewone gebruiker van Oracle Database

  1. Een gewone gebruiker kan inloggen op elke container (inclusief CDB$ROOT) waarin hij het recht CREATE SESSION heeft.
  2. De naam van elke door een gebruiker gemaakte algemene gebruiker moet beginnen met de tekens c## of C##.
  3. De namen van gewone gebruikers mogen alleen ASCII- of EBCDIC-tekens bevatten.
  4. Elke gewone gebruiker heeft een unieke naam in alle containers.
  5. De schema's voor een gewone gebruiker kunnen per container verschillen.

Laten we nu een algemene gebruiker maken voor het uitvoeren van back-up en herstel van Oracle Database met behulp van Recovery Manager (RMAN).

Hoe maak je een gemeenschappelijke gebruiker aan?

Het creëren van een gemeenschappelijke gebruiker voor back-up en herstel in Oracle Database is een zeer eenvoudig proces van twee stappen. In stap 1 maken we een gemeenschappelijke gebruiker aan en in stap 2 verlenen we deze de nodige privileges.

Laten we beginnen met stap nummer 1

Stap 1:maak de algemene gebruiker

Om de gebruiker aan te maken, gebruiken we het DDL-commando "Maak gebruiker" op deze manier –

C:/> SQLPLUS / as sysdba

maak eerst verbinding met uw rootcontainerdatabase met behulp van SYS-gebruiker. Laten we nu snel het scherm leegmaken en de gebruiker en de container verifiëren.

SQL> cl scr

scherm helder.

SQL> SHOW user;

We zijn verbonden met de database via sys user.

SQL> SHOW con_name

en we zijn ook verbonden met de rootcontainer. Vervolgens maken we geen normaal gebruikersaccount aan, maar maken we een gemeenschappelijke gebruiker

SQL> CREATE USER c##BackupAdmin 
     IDENTIFIED BY pass101
     DEFAULT TABLESPACE users 
     QUOTA 10M ON users 
     TEMPORARY TABLESPACE temp
     ACCOUNT UNLOCK;

Na succesvolle uitvoering van het bovenstaande CREATE USER DDL-statement heeft u uw Common User met de naam c##BackupAdmin gemaakt.

Om deze CREATE USER-verklaring beter te begrijpen, kunt u mijn tutorial raadplegen over CREATE USER DDL – Klik hier.

Stap 2:Privileges verlenen

Vóór Oracle 12c hadden we slechts één privilege dat we aan de gebruiker konden toewijzen voor back-up- en herstelbewerkingen, namelijk SYSDBA .

Aangezien SYSDBA een volledig bevoegd databasebeheerrecht is, is het dus geen goed idee om het willekeurig aan een gebruiker toe te wijzen. Het kan leiden tot catastrofale gebeurtenissen.

Met deze glitch in gedachten heeft Oracle een geheel nieuw privilege geïntroduceerd met de lancering van Oracle Database 12c. En dat was SYSBACKUP .

SYSBACKUP privilege had alle benodigde privileges die nodig waren om back-up en herstel van de Oracle Database uit te voeren. En deze privileges waren toevallig ook een subset van SYSDBA privileges.

Dat betekende de gebruiker die SYSBACKUP . heeft privilege had alle macht om back-up en herstel uit te voeren, maar niet de privileges die hem of haar een potentiële bedreiging voor de database zouden kunnen maken.

Laten we nu leren hoe u SYSBACKUP . toewijst privilege aan de gemeenschappelijke databasegebruiker die we zojuist hebben gemaakt.

SYSBACKUP toewijzen privilege voor een gebruiker in Oracle Database heeft slechts één eenvoudige instructie nodig. Zoals dit –

SQL> GRANT SYSBACKUP TO c##BackupAdmin; 

Dat is alles wat u hoeft te doen –

Als u SYSBACKUP wilt intrekken privilege van de gebruiker, dan kunt u een REVOKE DCL-instructie als deze uitgeven –

SQL> REVOKE sysbackup FROM c##BackupAdmin; 

SYSBACKUP succesvol ingetrokken.

Zo maken we een Gemeenschappelijke Gebruiker en wijs SYSBACKUP . toe voorrecht eraan toe. Je kunt deze live demonstratie bekijken op mijn YouTube-video. En, voor meer van dergelijke informatieve tutorials Abonneer je op mijn YouTube-kanaal.

Bedankt en een fijne dag verder!


  1. Hoe programmeer je een MySQL-trigger om een ​​rij in een andere tabel in te voegen?

  2. Is er een verschil tussen !=en <> in Oracle Sql?

  3. Hoe verander je mysql in mysqli?

  4. Een incrementeel groepsnummer per groep retourneren in SQL