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
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