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