sql >> Databáze >  >> RDS >> Oracle

Jak vytvořit uživatele v Oracle a přiřadit oprávnění

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 ] vytvoří roli. Přiřazení oprávnění roli se provádí pomocí příkazu GRANT. Odebrání oprávnění se provádí pomocí REVOKE FROM ROLE.

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


  1. Jak zrušit více tabulek v PostgreSQL pomocí zástupného znaku

  2. Jak nainstalovat sqlcmd &bcp na Ubuntu

  3. Existuje nejlepší způsob, jak se v Oracle vyhnout provádění procesu více než jednou?

  4. MariaDB JSON_ARRAY_APPEND() Vysvětleno