sql >> Database teknologi >  >> RDS >> Oracle

Sådan opretter du bruger i Oracle og tildeler privilegier

Vi vil offentliggøre oplysninger om brugeradgang og sikkerhed i oracle-databasen. Dette indlæg vil give god information om  Opret bruger i Oracle, Systemprivilegier og Oracle Object Privileges, Hvordan man tildeler privilegier til brugere, Hvordan man viser alle privilegier fra en bruger i Oracle

CREATE USER statement

Det bruges til at oprette en bruger (skema).

Standardgodkendelsen for en ny bruger er databasen. Brugeren tildeles en adgangskode, og adgangskoden opbevares krypteret i databasen. Der er to andre typer godkendelse mulige, den første er ekstern godkendelse ved hjælp af operativsystemniveau. Ekstern godkendelse kontrollerer adgangskoden på operativsystemniveau.

Den anden er Global godkendelse, som kontrollerer brugeradgangskoden i Oracle-sikkerhedstjenesten eller en anden tredjeparts katalogtjeneste.

Tildeling af attributter

Vi kan ændre brugerattributterne ved at bruge ALTER USER. Vi kan enten ændre dem eller tildele dem

Opret brugererklæring med nogle attributter indstillet vil være

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

Det giver bevillingsmodtageren mulighed for at oprette, ændre, slippe og administrere databaseobjekter. For eksempel er rettighederne til at oprette tablespaces og til at slette rækkerne i en tabel i en database systemprivilegier.

Oracle har mere end 100 systemrettigheder (findes i tabellen SYSTEM_PRIVILEGE_MAP).

Der er 2 specielle privilegier i en Oracle-database kaldet SYSDBA og SYSOPER. Begge privilegier tillader databaseoperationer såsom STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG og RECOVER. SYSDBA tillader CREATE DATABASE-kommandoen og CHANGE CHARACTER SET muligheder.

Systemrettighederne gives af databaseadministratoren til brugerne ved hjælp af grant-kommandoen og tilbagekaldes ved hjælp af revoke-kommandoen

Hvis DBA har brug for at give systemprivilegier til nogen, så en anden person også kan give det, så skal det gives med admin mulighed

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

Brugersystemrettigheder

Når brugeren er oprettet, giver vi generelt nedenstående systemprivilegier

  • OPRET SESSION
  • OPRET TABEL
  • OPRET VISNING
  • OPRET SEKVENS
  • OPRET PROCEDURE

Med denne kan brugeren begynde at oprette tabellen og andre objekter.

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

Disse tildeles på databaseobjekter (såsom en tabel, visning, procedure osv....)

Ejeren har alle privilegier, og en ejer kan give specifikke privilegier på objekterne

Ejeren kan give privilegierne ved at bruge nedenstående kommando

GRANT privileges ON object TO user;

Rettighederne kunne være at vælge, indsætte, opdatere, slette eller ALLE

Hvis ejeren ønsker at give privilegier til alle brugere

GRANT privileges ON object TO public;

Hvis ejeren ønsker at give privilegium til brugeren med en bevillingsmulighed. Grundlæggende betyder det, at bevillingsmodtageren yderligere kan tildele dette privilegium til andre

GRANT privileges ON object TO user with grant option;

På samme måde har vi revoke-kommandoen til at fjerne privilegierne fra objekterne

Hvad er en orakelrolle?

En rolle er et databaseobjekt, der bruges til at håndhæve privilegier. En bruger kan tildeles en rolle for at indstille privilegier på databaseobjekter:

GRANT EBS_ADMIN TO SCOTT;

Det vil give EBS_ADMIN-rollen med alle dens privilegier til brugeren SCOTT.

Oprettelse og brug af roller

Kommandoen CREATE ROLE [IDENTIFICERET AF ] opretter en rolle. Tildeling af privilegier til rollen udføres ved hjælp af GRANT-kommandoen. Tilbagekaldelse af privilegier udføres ved at bruge REVOKE FRA ROLLE.

Hvad er forskellen mellem system- og objektrettigheder?

Dataordbogstabeller og visninger

Oracle har leveret dataordbogsvisninger for at få oplysninger om privilegier

Der er tre kategorier af visninger

Kontrol af privilegier

Nyttige forespørgsler til privilegierne

hvordan man kontrollerer brugerrettigheder 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;

Bestem de systemrettigheder, der gives til brugeren

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

Tjekker, hvilke tabelrettigheder du tildeler andre brugere.

SELECT * FROM USER_TAB_PRIVS_MADE

Tjekker, hvilke tabelprivilegier der er givet dig af andre brugere

SELECT * FROM USER_TAB_PRIVS_RECD;

Tjekker, hvilke privilegier på kolonneniveau du tildeler andre brugere.

SELECT * FROM USER_COL_PRIVS_MADE;


Tjekker  hvilke privilegier på kolonneniveau der er givet dig af andre brugere

SELECT * FROM USER_COL_PRIVS_RECD;


Tjekker, hvilke privilegier der tildeles roller

SELECT * FROM USER_ROLE_PRIVS;

Sådan tildeler og tilbagekalder du privilegier  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;

Relaterede links

Administration af brugerrettigheder og roller :Oracle-dokumentation til yderligere reference
Oracle-visninger :Komplet vejledning om, hvordan du opretter orakelvisning, dropper orakelvisninger, ændrer orakelvisninger, hvordan du bestemmer forespørgslen for den allerede oprettede visning
opretter tabel i oracle:Tabeller er den grundlæggende enhed for datalagring i en Oracle-database. vi dækker, hvordan man bruger Oracle create table-kommando til at oprette en tabel med en fremmednøgle /primær nøgle
Sequences in oracle :Hvad er sekvens i oracle, beskrivelse af alle muligheder, hvordan man opretter dem ,Oracle 12c ny funktion af sekvenser , Sådan droppes og ændres dem
opret bruger i oracle 12c :Find ud af, hvordan du opretter en fælles bruger i oracle 12c, opretter en fælles og lokal bruger, opretter fælles rolle og lokal rolle, og hvordan du administrerer dem

Håber du kan lide indlægget. Giv venligst feedback

Anbefalede kurser

Her er det fine Udemy-kursus til Oracle SQL
Oracle-Sql-trin-for-trin :Dette kursus dækker grundlæggende sql, joins, oprettelse af tabeller og ændring af strukturen, Create View, Union, Union -alle og meget andet. . Et godt kursus og must-have kursus for SQL starter
The Complete Oracle SQL Certification Course :Dette er et godt kursus for enhver, der ønsker at være jobklar til SQL-udviklerfærdigheder. Et godt forklaret kursus
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-udviklerværktøj bliver brugt af mange udviklere. Dette kursus giver os tricks og lektioner til, hvordan man effektivt bruger det og bliver en produktiv sql-udvikler
Oracle SQL Performance Tuning Masterclass 2020 :Indstilling af ydeevne er en af ​​de kritiske og mest søgte færdigheder. Dette er et godt kursus for at lære om det og begynde at lave sql-ydelsesjustering


  1. Tjek om databasen findes i PostgreSQL ved hjælp af shell

  2. Send tabel som parameter til sql server UDF

  3. Hvordan kan jeg fjerne dublerede rækker?

  4. Sådan formulerer du din værdi som DBA til finansdirektører