sql >> Database >  >> RDS >> Oracle

Hoe een gebruiker aan te maken in Oracle en privileges toe te wijzen

We zullen informatie over gebruikerstoegang en -beveiliging in de Oracle-database plaatsen. Dit bericht geeft goede informatie over  Gebruiker maken in Oracle, systeembevoegdheden en Oracle-objectbevoegdheden, hoe de privileges aan gebruikers te verlenen, hoe alle privileges van een gebruiker in oracle te tonen

CREATE USER-instructie

Het wordt gebruikt om een ​​gebruiker (schema) aan te maken.

De standaardverificatie voor een nieuwe gebruiker is de database. De gebruiker krijgt een wachtwoord toegewezen en het wachtwoord wordt versleuteld bewaard in de database. Er zijn twee andere soorten authenticatie mogelijk, de eerste is externe authenticatie op het niveau van het besturingssysteem. Externe authenticatie controleert het wachtwoord op het niveau van het besturingssysteem.

De andere is Globale authenticatie die het gebruikerswachtwoord controleert in de Oracle-beveiligingsservice of een andere directoryservice van derden.

Kenmerken toewijzen

We kunnen de gebruikersattributen wijzigen met behulp van ALTER USER. We kunnen ze wijzigen of ze toewijzen

Gebruikersinstructie maken met enkele attributen ingesteld zal zijn

CREATE USER SCOTT
IDENTIFIED BY TTOC
DEFAULT TABLESPACE USERS
QUOTA 10M ON USERS
TEMPORARY TABLESPACE temp
QUOTA 5M ON system
PROFILE application_user
PASSWORD EXPIRE

Oracle-systeemrechten

Hiermee kan de begunstigde databaseobjecten maken, wijzigen, neerzetten en beheren. De rechten om bijvoorbeeld tabelruimten te maken en de rijen van een tabel in een database te verwijderen, zijn systeemrechten.

Oracle heeft meer dan 100 systeemrechten (te vinden in de tabel SYSTEM_PRIVILEGE_MAP).

Er zijn 2 speciale privileges in een Oracle-database genaamd SYSDBA en SYSOPER. Beide privileges staan ​​databasebewerkingen toe, zoals STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG en RECOVER. SYSDBA staat de CREATE DATABASE-opdracht en CHANGE CHARACTER SET-opties toe.

De systeemrechten worden door de databasebeheerder aan de gebruikers verleend met behulp van de opdracht grant en ingetrokken met de opdracht revoke

Als de DBA iemand systeemrechten moet verlenen zodat een andere persoon het ook kan verlenen, dan moet dit worden gegeven met de beheerdersoptie

GRANT create session TO user;
GRANT create session TO user with admin option;
Revoke create session from user;

Gebruikerssysteemrechten

Wanneer de gebruiker is aangemaakt, verlenen we over het algemeen de onderstaande systeemrechten

  • SESSIE MAKEN
  • TABEL MAKEN
  • BEELD MAKEN
  • REEKS MAKEN
  • PROCEDURE MAKEN

Met deze gebruiker kan beginnen met het maken van de tafel en andere objecten.

Sample
CREATE USER "TEST" IDENTIFIED BY TEST
DEFAULT TABLESPACE "TOOLS"
TEMPORARY TABLESPACE "TEMP";
grant CREATE TRIGGER to TEST;
grant CREATE PROCEDURE to TEST;
grant CREATE SESSION to TEST;
grant CREATE TYPE to TEST;
grant CREATE TABLE to TEST;
grant CREATE VIEW to TEST;
grant ALTER SESSION to TEST;
grant CREATE SEQUENCE to TEST;
grant CREATE SYNONYM to TEST;
grant CREATE ANY SYNONYM to TEST;
grant UNLIMITED TABLESPACE to TEST;

Oracle Object-rechten

Deze worden toegekend aan database-objecten (zoals een tabel, weergave, procedure, enz.…)

De eigenaar heeft alle privileges en een eigenaar kan specifieke privileges geven aan de objecten

De eigenaar kan de privileges geven met het onderstaande commando

GRANT privileges ON object TO user;

De privileges kunnen zijn:selecteren, invoegen, bijwerken, verwijderen of ALLES

Als de eigenaar alle gebruikers privileges wil geven

GRANT privileges ON object TO public;

Als de eigenaar de gebruiker privileges wil geven met een toekenningsoptie. Dat betekent in feite dat de begunstigde dit privilege verder kan toewijzen aan anderen

GRANT privileges ON object TO user with grant option;

Op dezelfde manier hebben we het revoke-commando om de privileges van de objecten te verwijderen

Wat is een orakelrol?

Een rol is een databaseobject dat wordt gebruikt om bevoegdheden af ​​te dwingen. Een gebruiker kan een rol worden toegewezen om privileges op database-objecten in te stellen:

GRANT EBS_ADMIN TO SCOTT;

Het zal de EBS_ADMIN-rol met al zijn rechten toekennen aan gebruiker SCOTT.

Rollen maken en gebruiken

De opdracht CREATE ROLE [IDENTIFIED BY ] maakt een rol aan. Het toewijzen van privileges aan de rol gebeurt met het GRANT-commando. Het intrekken van privileges gebeurt met behulp van de REVOKE FROM ROLE.

Wat is het verschil tussen systeem- en objectrechten?

Datawoordenboektabellen en -weergaven

Oracle heeft datadictionary-weergaven geleverd om informatie over privileges te krijgen

Er zijn drie categorieën weergaven

Bevoegdheden bekijken

Nuttige vragen voor de privileges

hoe de gebruikersrechten in orakel te controleren

col role for a16
col pv for a75 hea 'PRIVILEGE OR ROLE'
break on role on type skip 1
define usercheck = 'SH'
select grantee, 'ROL' type, granted_role pv
from dba_role_privs where grantee = '&usercheck' union
select grantee, 'PRV' type, privilege pv
from dba_sys_privs where grantee = '&usercheck' union
select grantee, 'OBJ' type,
max(decode(privilege,'WRITE','WRITE,'))||max(decode(privilege,'READ','READ'))||
max(decode(privilege,'EXECUTE','EXECUTE'))||max(decode
(privilege,'SELECT','SELECT'))||
max(decode(privilege,'DELETE',',DELETE'))||max(decode
(privilege,'UPDATE',',UPDATE'))||
max(decode(privilege,'INSERT',',INSERT'))||' ON '||object_type||'
"'||a.owner||'.'||table_name||'"' pv
from dba_tab_privs a, dba_objects b
where a.owner=b.owner and a.table_name = b.object_name and
a.grantee='&usercheck'
group by a.owner,table_name,object_type,grantee union
select username grantee, '---' type, 'empty user ---' pv from dba_users
where not username in (select distinct grantee from dba_role_privs) and
not username in (select distinct grantee from dba_sys_privs) and
not username in (select distinct grantee from dba_tab_privs) and username like
'%&usercheck%'
group by username
order by grantee, type, pv;

Bepaal de systeemrechten die aan de gebruiker worden gegeven

SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS  
WHERE GRANTEE = 'USER';

Controleren welke tafelrechten u aan andere gebruikers hebt verleend.

SELECT * FROM USER_TAB_PRIVS_MADE

Controleren welke tafelrechten aan u zijn verleend door andere gebruikers

SELECT * FROM USER_TAB_PRIVS_RECD;

Controleren welke rechten op kolomniveau door u aan andere gebruikers zijn verleend.

SELECT * FROM USER_COL_PRIVS_MADE;


Controleren  welke rechten op kolomniveau aan u zijn verleend door andere gebruikers

SELECT * FROM USER_COL_PRIVS_RECD;


Controleren welke privileges aan rollen zijn toegekend

SELECT * FROM USER_ROLE_PRIVS;

Bevoegdheden verlenen en intrekken  in Oracle

Objects grant/revoke from user  
grant select on dept to public;
revoke select  on dept  from public;
Objects grant/revoke from Role
grant delete on dept to dept_role;
revoke update on dept from dept_role;

Verwante links

Gebruikersrechten en rollen beheren:Oracle-documentatie voor verdere referentie
Oracle-weergaven:complete gids over het maken van een Oracle-weergave, het verwijderen van Oracle-weergaven, het wijzigen van Oracle-weergaven, het bepalen van de query van de reeds gemaakte weergave
create tabel in orakel:tabellen zijn de basiseenheid voor gegevensopslag in een Oracle-database. we bespreken hoe u de opdracht Oracle Create Table kunt gebruiken om een ​​tabel te maken met een externe sleutel /primaire sleutel
Sequences in Oracle:Wat is Sequence in Oracle, Beschrijving van alle opties, Hoe u ze kunt maken, Oracle 12c nieuwe functie van reeksen , Hoe u ze kunt verwijderen en wijzigen
gebruiker maken in oracle 12c :ontdek hoe u een gemeenschappelijke gebruiker kunt maken in orakel 12c, een gemeenschappelijke en lokale gebruiker kunt maken, een gemeenschappelijke rol en een lokale rol kunt maken en hoe u deze kunt beheren

Ik hoop dat je het bericht leuk vindt. Geef alsjeblieft feedback

Aanbevolen cursussen

Hier is de mooie Udemy-cursus voor Oracle SQL
Oracle-Sql-Step-voor-stap:deze cursus behandelt basis-sql, joins, tabellen maken en de structuur wijzigen, weergave maken, Union, Union -alles en nog veel meer . Een geweldige cursus en een must-have cursus voor SQL-starters
De complete Oracle SQL-certificeringscursus :Dit is een goede cursus voor iedereen die Job-klaar wil zijn voor SQL-ontwikkelaarsvaardigheden. Een mooi uitgelegde cursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-ontwikkelaarstool wordt door veel ontwikkelaars gebruikt. Deze cursus geeft ons trucs en lessen om het effectief te gebruiken en een productieve sql-ontwikkelaar te worden
Oracle SQL Performance Tuning Masterclass 2020 :Het afstemmen van prestaties is een van de belangrijkste en meest gezochte vaardigheden. Dit is een goede cursus om erover te leren en te beginnen met het afstemmen van sql-prestaties


  1. Een reeks SQL-query's uitvoeren met behulp van een batchbestand?

  2. Slony-I 2.0.x upgraden naar de nieuwste versie 2.1.x

  3. Wat zijn triggers in SQL en hoe implementeer je ze?

  4. Hoe UNHEX() werkt in MariaDB