Budeme zveřejňovat informace o uživatelském přístupu a zabezpečení v databázi Oracle. Tento příspěvek poskytne dobré informace o Vytvoření uživatele v Oracle, System Privileges a Oracle Object Privileges, Jak udělit oprávnění uživatelům, Jak zobrazit všechna oprávnění od uživatele v oracle
CREATE USER statement
Používá se k vytvoření uživatele (schéma).
Výchozí autentizace pro nového uživatele je databáze. Uživateli je přiděleno heslo a heslo je uchováváno zašifrované v databázi. Existují dva další možné typy autentizace, první je externí autentizace na úrovni operačního systému. Externí ověřování kontroluje heslo na úrovni operačního systému.
Druhým je globální ověřování, které kontroluje heslo uživatele v bezpečnostní službě Oracle nebo jiné adresářové službě třetí strany.
Přiřazení atributů –
Uživatelské atributy můžeme změnit pomocí ALTER USER. Můžeme je buď změnit, nebo je přiřadit
Vytvořte uživatelské prohlášení s některými nastavenými atributy
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
Oprávnění systému Oracle
Umožňuje příjemci grantu vytvářet, měnit, rušit a spravovat databázové objekty. Například oprávnění vytvářet tabulkové prostory a mazat řádky jakékoli tabulky v databázi jsou systémová oprávnění.
Oracle má více než 100 systémových oprávnění (najdete je v tabulce SYSTEM_PRIVILEGE_MAP).
V databázi Oracle s názvem SYSDBA a SYSOPER existují 2 speciální oprávnění. Obě oprávnění umožňují databázové operace jako STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG a RECOVER. SYSDBA umožňuje příkaz CREATE DATABASE a možnosti CHANGE CHARACTER SET.
Systémová oprávnění poskytuje administrátor databáze uživatelům pomocí příkazu grant a odvolává pomocí příkazu revoke
Pokud správce DBA potřebuje někomu poskytnout systémové oprávnění, aby ho mohla udělit i jiná osoba, musí mu to udělit možnost správce
GRANT create session TO user; GRANT create session TO user with admin option; Revoke create session from user;
Uživatelská systémová oprávnění
Když je uživatel vytvořen, obecně udělujeme níže uvedená systémová oprávnění
- VYTVOŘIT RELACI
- VYTVOŘIT TABULKU
- VYTVOŘIT ZOBRAZENÍ
- VYTVOŘTE SEKVENCI
- VYTVOŘIT POSTUP
Pomocí tohoto může uživatel začít vytvářet tabulku a další objekty.
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;
Oprávnění objektů Oracle
Ty jsou uděleny databázovým objektům (jako je tabulka, pohled, procedura atd.…)
Vlastník má všechna oprávnění a vlastník může udělit konkrétní oprávnění k objektům
Vlastník může poskytnout oprávnění pomocí níže uvedeného příkazu
GRANT privileges ON object TO user;
Oprávnění mohou být vybrat, vložit, aktualizovat, odstranit nebo VŠECHNY
Pokud chce vlastník poskytnout oprávnění všem uživatelům
GRANT privileges ON object TO public;
Pokud chce vlastník poskytnout uživateli oprávnění s možností udělení. V podstatě to znamená, že příjemce grantu může toto oprávnění dále přidělit ostatním
GRANT privileges ON object TO user with grant option;
Podobně máme příkaz revoke pro odebrání oprávnění z objektů
Co je to role orákula?
Role je databázový objekt používaný k vynucení oprávnění. Uživateli lze přiřadit roli, aby mohl nastavit oprávnění k databázovým objektům:
GRANT EBS_ADMIN TO SCOTT;
Udělí roli EBS_ADMIN se všemi svými oprávněními uživateli SCOTT.
Vytváření a používání rolí
Příkaz CREATE ROLE [IDENTIFIED BY
Jaký je rozdíl mezi systémovými a objektovými právy?
Tabulky a zobrazení datového slovníku
Společnost Oracle poskytla zobrazení datového slovníku pro získání informací o oprávněních
Existují tři kategorie pohledů
Kontrola zobrazení oprávnění
Užitečné dotazy na oprávnění
jak zkontrolovat uživatelská oprávnění v 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;
Určete systémová oprávnění udělená uživateli
SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'USER';
Kontrola, která oprávnění k tabulce jste udělili ostatním uživatelům.
SELECT * FROM USER_TAB_PRIVS_MADE
Kontrola, která oprávnění k tabulce vám udělili ostatní uživatelé
SELECT * FROM USER_TAB_PRIVS_RECD;
Kontrola, která oprávnění na úrovni sloupců jste udělili ostatním uživatelům.
SELECT * FROM USER_COL_PRIVS_MADE;
Kontrola, která oprávnění na úrovni sloupců vám udělili ostatní uživatelé
SELECT * FROM USER_COL_PRIVS_RECD;
Kontrola, která oprávnění jsou udělena rolím
SELECT * FROM USER_ROLE_PRIVS;
Jak udělovat a odebírat oprávnění v 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;
Související odkazy
Správa uživatelských privilegií a rolí :Dokumentace Oracle pro další referenci
Oracle Views :Kompletní průvodce, jak vytvořit oracle view, zrušit pohledy oracle, změnit pohledy oracle, jak určit dotaz na již vytvořený pohled
vytvořit tabulka v oracle :Tabulky jsou základní jednotkou pro ukládání dat v databázi Oracle. zabýváme se tím, jak používat příkaz Oracle create table k vytvoření tabulky s cizím klíčem /primární klíč
Sekvence v oracle :Co je sekvence v oracle, Popis všech možností, Jak je vytvořit ,Nová funkce sekvencí Oracle 12c , Jak je vypustit a změnit
vytvořit uživatele v oracle 12c :Zjistěte, jak vytvořit běžného uživatele v oracle 12c, vytvořit běžné a místní uživatele, vytvořit společnou roli a místní roli a jak je spravovat
Doufám, že se vám příspěvek líbí. Poskytněte nám prosím zpětnou vazbu
Doporučené kurzy
Zde je pěkný kurz Udemy pro Oracle SQL
Oracle-Sql-Krok za krokem:Tento kurz pokrývá základní sql, spojení, vytváření tabulek a úpravu jejich struktury, vytváření zobrazení, sjednocení, sjednocení – vše a mnoho dalších věcí. . Skvělý kurz a kurz, který musíte mít pro začátečníky SQL
Úplný certifikační kurz Oracle SQL :Toto je dobrý kurz pro každého, kdo chce být Job připravený na vývojářské dovednosti SQL. Pěkně vysvětlený kurz
Oracle SQL Developer:Základy, tipy a triky :Vývojářský nástroj Oracle Sql používá mnoho vývojářů. Tento kurz nám poskytuje triky a lekce, jak jej efektivně používat a stát se produktivním vývojářem sql
Oracle SQL Performance Tuning Masterclass 2020 :Ladění výkonu je jednou z kritických a nejvyhledávanějších dovedností. Toto je dobrý kurz, jak se o tom dozvědět a začít s laděním výkonu SQL