Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So erstellen Sie Benutzer in Oracle und weisen Berechtigungen zu

Wir werden Informationen zum Benutzerzugriff und zur Sicherheit in der Oracle-Datenbank veröffentlichen. Dieser Beitrag enthält gute Informationen zum Erstellen von Benutzern in Oracle, zu Systemprivilegien und Oracle-Objektprivilegien, zum Gewähren von Privilegien für Benutzer und zum Anzeigen aller Privilegien eines Benutzers in Oracle

CREATE USER-Anweisung

Es wird verwendet, um einen Benutzer (Schema) zu erstellen.

Die Standardauthentifizierung für einen neuen Benutzer ist die Datenbank. Dem Benutzer wird ein Passwort zugewiesen, und das Passwort wird verschlüsselt in der Datenbank gespeichert. Es sind zwei weitere Arten der Authentifizierung möglich, die erste ist die externe Authentifizierung auf Betriebssystemebene. Die externe Authentifizierung prüft das Passwort auf Betriebssystemebene.

Die andere ist die globale Authentifizierung, die das Benutzerkennwort im Oracle-Sicherheitsdienst oder einem anderen Verzeichnisdienst eines Drittanbieters überprüft.

Attribute zuweisen

Wir können die Benutzerattribute mit ALTER USER ändern. Wir können sie entweder ändern oder ihnen zuweisen

Erstellen Sie eine Benutzeranweisung mit einigen festgelegten Attributen

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

Es ermöglicht dem Berechtigten, Datenbankobjekte zu erstellen, zu ändern, zu löschen und zu verwalten. Beispielsweise sind die Privilegien zum Erstellen von Tablespaces und zum Löschen der Zeilen einer beliebigen Tabelle in einer Datenbank Systemprivilegien.

Oracle hat mehr als 100 Systemprivilegien (zu finden in der Tabelle SYSTEM_PRIVILEGE_MAP).

Es gibt zwei spezielle Privilegien in einer Oracle-Datenbank namens SYSDBA und SYSOPER. Beide Privilegien erlauben Datenbankoperationen wie STARTUP, SHUTDOWN, OPEN, MOUNT, BACKUP, ARCHIVELOG und RECOVER. SYSDBA erlaubt den Befehl CREATE DATABASE und die Optionen CHANGE CHARACTER SET.

Die Systemprivilegien werden den Benutzern vom Datenbankadministrator mit dem Befehl grant erteilt und mit dem Befehl revoke entzogen

Wenn der DBA jemandem Systemprivilegien erteilen muss, damit eine andere Person sie ebenfalls gewähren kann, dann muss es mit der Admin-Option gegeben werden

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

Systemberechtigungen des Benutzers

Wenn der Benutzer erstellt wird, gewähren wir im Allgemeinen die folgenden Systemberechtigungen

  • SITZUNG ERSTELLEN
  • TABELLE ERSTELLEN
  • ANSICHT ERSTELLEN
  • SEQUENZ ERSTELLEN
  • VERFAHREN ERSTELLEN

Damit kann der Benutzer mit dem Erstellen der Tabelle und anderer Objekte beginnen.

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

Diese werden für Datenbankobjekte (wie Tabellen, Ansichten, Prozeduren usw.) gewährt

Der Besitzer hat alle Privilegien und ein Besitzer kann bestimmte Privilegien für die Objekte vergeben

Der Eigentümer kann die Berechtigungen mit dem folgenden Befehl erteilen

GRANT privileges ON object TO user;

Die Berechtigungen können Select, Insert, Update, Delete oder ALL sein

Wenn der Besitzer allen Benutzern Privilegien gewähren möchte

GRANT privileges ON object TO public;

Wenn der Eigentümer dem Benutzer eine Berechtigung mit einer Gewährungsoption gewähren möchte. Das heißt im Grunde kann der Stipendiat dieses Privileg weiter an andere weitergeben

GRANT privileges ON object TO user with grant option;

Ebenso haben wir den revoke-Befehl, um die Privilegien von den Objekten zu entfernen

Was ist eine Orakelrolle?

Eine Rolle ist ein Datenbankobjekt, das verwendet wird, um Berechtigungen durchzusetzen. Einem Benutzer kann eine Rolle zugewiesen werden, um Berechtigungen für Datenbankobjekte festzulegen:

GRANT EBS_ADMIN TO SCOTT;

Es wird dem Benutzer SCOTT die Rolle EBS_ADMIN mit all ihren Privilegien gewähren.

Erstellen und Verwenden von Rollen

Der Befehl CREATE ROLE [IDENTIFIED BY ] erstellt eine Rolle. Das Zuweisen von Berechtigungen zu der Rolle erfolgt mit dem GRANT-Befehl. Das Widerrufen von Privilegien erfolgt mit REVOKE FROM ROLE.

Was ist der Unterschied zwischen System- und Objektberechtigungen?

Data Dictionary-Tabellen und -Ansichten

Oracle hat Data-Dictionary-Ansichten bereitgestellt, um Informationen über Berechtigungen zu erhalten

Es gibt drei Kategorien von Ansichten

Berechtigungsansichten prüfen

Nützliche Abfragen für die Privilegien

Wie man Benutzerrechte in Oracle überprüft

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;

Bestimmen Sie die dem Benutzer erteilten Systemprivilegien

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

Überprüfen, welche Tabellenrechte Sie anderen Benutzern gewähren.

SELECT * FROM USER_TAB_PRIVS_MADE

Überprüfen, welche Tabellenrechte Ihnen von anderen Benutzern gewährt werden

SELECT * FROM USER_TAB_PRIVS_RECD;

Überprüfen, welche Berechtigungen auf Spaltenebene von Ihnen anderen Benutzern gewährt werden.

SELECT * FROM USER_COL_PRIVS_MADE;


Überprüfen, welche Berechtigungen auf Spaltenebene Ihnen von anderen Benutzern gewährt werden

SELECT * FROM USER_COL_PRIVS_RECD;


Überprüfen, welche Berechtigungen Rollen gewährt werden

SELECT * FROM USER_ROLE_PRIVS;

Erteilen und Widerrufen von Berechtigungen in 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;

Verwandte Links

Benutzerrechte und -rollen verwalten:Oracle-Dokumentation für weitere Referenzen
Oracle-Ansichten:Vollständige Anleitung zum Erstellen einer Oracle-Ansicht, zum Löschen von Oracle-Ansichten, zum Ändern von Oracle-Ansichten, zum Bestimmen der Abfrage einer bereits erstellten Ansicht
erstellen Tabelle in Oracle:Tabellen sind die Grundeinheit der Datenspeicherung in einer Oracle-Datenbank. Wir behandeln, wie man den Befehl Oracle create table verwendet, um eine Tabelle mit einem Fremdschlüssel /Primärschlüssel zu erstellen , Wie man sie löscht und ändert
Benutzer in Oracle 12c erstellen :Finden Sie heraus, wie Sie einen gemeinsamen Benutzer in Oracle 12c erstellen, einen gemeinsamen und einen lokalen Benutzer erstellen, eine gemeinsame Rolle und eine lokale Rolle erstellen und wie Sie sie verwalten

Ich hoffe, Ihnen gefällt der Beitrag. Bitte geben Sie uns Feedback

Empfohlene Kurse

Hier ist der nette Udemy-Kurs für Oracle SQL
Oracle-Sql-Schritt-für-Schritt :Dieser Kurs behandelt grundlegendes SQL, Joins, Erstellen von Tabellen und Ändern ihrer Struktur, Erstellen von Ansichten, Union, Union -all und vieles mehr . Ein großartiger Kurs und ein Muss für SQL-Einsteiger
Der vollständige Oracle SQL-Zertifizierungskurs :Dies ist ein guter Kurs für alle, die für SQL-Entwicklerfähigkeiten einsatzbereit werden möchten. Ein gut erklärter Kurs
Oracle SQL Developer:Grundlagen, Tipps und Tricks :Das Oracle Sql-Entwicklertool wird von vielen Entwicklern verwendet. Dieser Kurs gibt uns Tricks und Lektionen, wie man es effektiv nutzt und ein produktiver SQL-Entwickler wird
Oracle SQL Performance Tuning Masterclass 2020 :Leistungsoptimierung ist eine der kritischsten und gefragtesten Fähigkeiten. Dies ist ein guter Kurs, um mehr darüber zu erfahren und mit der Optimierung der SQL-Leistung zu beginnen