sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar användare i Oracle och tilldelar privilegier

Vi kommer att publicera information om användaråtkomst och säkerhet i Oracle-databasen. Det här inlägget ger bra information om  Skapa användare i Oracle, Systemprivilegier och Oracle Object Privileges, Hur man beviljar privilegier till användare, Hur man visar alla privilegier från en användare i Oracle

CREATE USER-sats

Den används för att skapa en användare (schema).

Standardautentiseringen för en ny användare är databasen. Användaren tilldelas ett lösenord och lösenordet hålls krypterat i databasen. Det finns två andra typer av autentisering möjliga, den första är extern autentisering med användning av operativsystemnivå. Extern autentisering kontrollerar lösenordet på operativsystemnivå.

Den andra är Global autentisering som kontrollerar användarlösenordet i Oracles säkerhetstjänst eller en annan katalogtjänst från tredje part.

Tilldela attribut

Vi kan ändra användarattributen med ALTER USER. Vi kan antingen ändra dem eller tilldela dem

Skapa användaruttryck med vissa attribut som kommer att vara

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 System Behörigheter

Det tillåter bidragstagaren att skapa, ändra, släppa och hantera databasobjekt. Till exempel är privilegierna för att skapa tabellutrymmen och att ta bort raderna i en tabell i en databas systembehörigheter.

Oracle har mer än 100 systembehörigheter (finns i tabellen SYSTEM_PRIVILEGE_MAP).

Det finns 2 speciella privilegier i en Oracle-databas som heter SYSDBA och SYSOPER. Båda privilegierna tillåter databasoperationer som STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG och RECOVER. SYSDBA tillåter kommandot CREATE DATABASE och CHANGE CHARACTER SET.

Systembehörigheterna tillhandahålls av databasadministratören till användarna med hjälp av grant-kommandot och återkallas med hjälp av revoke-kommandot

Om DBA behöver ge systembehörighet till någon så att en annan person också kan bevilja det, måste det ges med adminalternativ

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

Användarsystembehörigheter

När användaren skapas ger vi i allmänhet nedanstående systemprivilegier

  • SKAPA SESSION
  • SKAPA TABELL
  • SKAPA VY
  • SKAPA SEKVENS
  • SKAPA PROCEDUR

Med denna användare kan börja skapa tabellen och andra objekt.

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 Privileges

Dessa beviljas på databasobjekt (såsom en tabell, vy, procedur, etc...)

Ägaren har alla privilegier och en ägare kan ge specifika privilegier på objekten

Ägaren kan ge privilegierna med kommandot nedan

GRANT privileges ON object TO user;

Behörigheterna kan vara att välja, infoga, uppdatera, ta bort eller ALLA

Om ägaren vill ge privilegier till alla användare

GRANT privileges ON object TO public;

Om ägaren vill ge användaren behörighet med ett beviljande alternativ. I grund och botten betyder det att bidragstagaren kan vidare tilldela denna behörighet till andra

GRANT privileges ON object TO user with grant option;

På samma sätt har vi kommandot återkalla för att ta bort privilegierna från objekten

Vad är en orakelroll?

En roll är ett databasobjekt som används för att upprätthålla privilegier. En användare kan tilldelas en roll för att ställa in privilegier på databasobjekt:

GRANT EBS_ADMIN TO SCOTT;

Den kommer att ge EBS_ADMIN-rollen med alla dess privilegier till användaren SCOTT.

Skapa och använda roller

Kommandot CREATE ROLE [IDENTIFIED BY ] skapar en roll. Tilldelning av privilegier till rollen görs med kommandot GRANT. Återkalla privilegier görs med hjälp av REVOKE FROM ROLE.

Vad är skillnaden mellan system- och objektbehörigheter?

Data Dictionary Tabeller och vyer

Oracle har tillhandahållit dataordbokvyer för att få information om privilegier

Det finns tre kategorier av vyer

Kontrollera behörighetsvyer

Användbara frågor om privilegierna

hur man kontrollerar användarrättigheter i Oracle

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;

Fastställ systembehörigheter som ges till användaren

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

Kontrollerar vilka tabellbehörigheter du beviljar andra användare.

SELECT * FROM USER_TAB_PRIVS_MADE

Kontrollera vilka tabellbehörigheter som beviljas dig av andra användare

SELECT * FROM USER_TAB_PRIVS_RECD;

Kontrollera vilka privilegier på kolumnnivå som du beviljar andra användare.

SELECT * FROM USER_COL_PRIVS_MADE;


Kontrollera  vilka privilegier på kolumnnivå som du får av andra användare

SELECT * FROM USER_COL_PRIVS_RECD;


Kontrollera vilka privilegier som ges till roller

SELECT * FROM USER_ROLE_PRIVS;

Så här beviljar och återkallar du behörigheter  i 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;

Relaterade länkar

Hantera användarprivilegier och roller :Oracle-dokumentation för ytterligare referens
Oracle-vyer :Komplett guide om hur man skapar orakelvyer, släpper orakelvyer, ändrar orakelvyer, hur man bestämmer frågan för den redan skapade vyn
skapa tabell i oracle :Tabeller är den grundläggande enheten för datalagring i en Oracle-databas. vi täcker hur man använder Oracle create table-kommandot för att skapa en tabell med en främmande nyckel /primärnyckel
Sekvenser i Oracle :Vad är Sequence i Oracle, Beskrivning av alla alternativ, Hur man skapar dem ,Oracle 12c ny funktion i sekvenser , Hur man släpper och ändrar dem
skapa användare i Oracle 12c :Ta reda på hur man skapar en gemensam användare i Oracle 12c, skapar en gemensam och lokal användare, skapar en gemensam roll och lokal roll och hur man hanterar dem

Hoppas du gillar inlägget. Ge feedback

Rekommenderade kurser

Här är den trevliga Udemy-kursen för Oracle SQL
Oracle-Sql-Steg-för-steg :Den här kursen täcker grundläggande sql, går med, skapar tabeller och ändrar dess struktur, Skapa vy, Union, Union -allt och mycket annat . En bra kurs och måste-kurs för SQL-startare
The Complete Oracle SQL Certification Course :Det här är en bra kurs för alla som vill vara redo för SQL-utvecklare. En trevlig förklarad kurs
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-utvecklarverktyget används av många utvecklare. Den här kursen ger oss tricks och lektioner om hur man effektivt använder den och blir en produktiv SQL-utvecklare
Oracle SQL Performance Tuning Masterclass 2020 :Prestandajustering är en av de kritiska och mest eftertraktade färdigheterna. Det här är en bra kurs för att lära dig om det och börja göra sql-prestandajustering


  1. SQL-datumformat:Hur man hanterar det på ett smart sätt

  2. Val av lagringsmotor:Aria

  3. Använda trådar för att göra databasförfrågningar

  4. Vad är nytt i PostgreSQL 12