Zweiten User zu bestehender Oracle-DB

gerardsa

Grünschnabel
Hallo allerseits,

ich habe eine Oracledatenbank angelegt und das zugehörige Schema hat weitreichende Privilegien (CREATE TABLE, VIEWS etc.)
Nun möchte ich einen zweiten, stark eingeschränkten User für diese DB erstellen.
Dieser zweite User soll nur lesende Rechte auf alle Tabellen haben.

Irgendwie bekomme ich dasnicht hin.
Klingt ja aber gar nicht so schwierig.

Wer kann mir helfen ?
Danke schon mal im voraus !
Ciao
André
 
Hallo!

Was war denn deine bisherige Vorgehensweise zum anlegen eines read only users?

Hast du schon folgendes Versucht:
1) CREATE SESSION Recht gewähren
2) SELECT Privilegien auf die Benötigten Tabellen, Views etc.
3) Keine Create Privilegien vergeben
4) Keine Quotas auf einen Tablespaces
5) ... and last but not least, kein SELECT ANY Table vergeben! Das führt nur zu Seiteneffekten, die du nun noch nciht absehen kannst.

Gruß Tom
 
Die gängige Vorgehensweise in der Praxis ist folgende:

Einen Schemaeigner mit hohen Privilegien anlegen, z.B. DBA.
Die Applikation erstellen.
Eine Rolle z.B. "APP_USER" erstellen.
Der Rolle alle gewünschten Rechte für die User gewähren (SELECT)
Den Account des Schemaeigners sperren.
Als SYS neue User anlegen.
Diesen die Rolle APP_USER und CREATE SESSION granten.

Ein kurzes Beispiel:
Code:
CONNECT sys/oracle AS SYSDBA;
CREATE USER APP_ADMIN
   IDENTIFIED BY appadmin
   DEFAULT TABLESPACE users
   TEMPORARY TABLESPACE temp;

GRANT DBA TO APP_ADMIN;

CONNECT APP_ADMIN/appadmin;

CREATE TABLE test (
  ID NUMBER(3)
);

CREATE ROLE APP_USER NOT IDENTIFIED;
GRANT SELECT ON test TO APP_USER;

CONNECT sys/oracle AS SYSDBA;

ALTER USER APP_ADMIN ACCOUNT LOCK;

CREATE USER app_usr 
   IDENTIFIED BY appuser
   TEMPORARY TABLESPACE temp
   DEFAULT TABLESPACE users;

GRANT CREATE SESSION TO app_usr;
GRANT APP_USER TO app_usr;

CONNECT app_usr/appuser;

SELECT * FROM APP_ADMIN.test;
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück