PDA

View Full Version : SCHema für anderen User sichtbar machen



Duriel
14-07-15, 12:56
Ich habe eine Datenbank unter meiner userid (Schema) angelegt, nun möchte ich das auch andere User diese sehen können.
Wisst ihr wie ich das bewerkstellige?

Fuerchau
14-07-15, 14:22
Per Objektberechtigung (SQL-Befehl GRANT).
Wenn ein CREATE SCHEMA per SQL erstellt wird, ist die Public-Berechtigung immer erst mal *EXCLUDE.
Per SQL-GRANT oder "EDTOBJAUT" kann nun die Bibliothek für alle (*PUBLIC), oder bestimmte (max. 50) oder Berechtigungsliste (nicht per SQL) freigegeben werden.

Wichtig ist für die Lib die Berechtigung für die Erstellung neuer Tabellen/Views.
Wenn man da nichts macht, erhält jede neue Tabelle/View auch erst mal wieder *PUBLIC *EXCLUDE.

B.Hauser
14-07-15, 17:25
Ob ein Datenbanken-Objekt mit *PUBLIC *EXCLUDE oder *USE/*CHANGE erstellt wird, hängt von den Namenskonventionen unter denen das Objekt erstellt wird ab.

Werden System-Naming-Conventions *SYS verwendet, wird hängt die Berechtigung für *PUBLIC von dem System-Wert QCRTAUT ab.

Werden SQL-Naming-Conventions *SQL verwendet, so wird ein Datenbanken-Objekt immer mit *PUBLIC *EXCLUDE erstellt. Eigner wird entweder das Benutzer-Profil, das das Objekt erstellt hat, oder sofern es ein Benutzer-Profile mit dem Namen der Bibliothek/Schema in der das Objekt erstellt wird, wird dieses Benutzer-Profil der Eigner.

Birgitta

Fuerchau
15-07-15, 08:46
Allein auf Grund der Fragestellung gehe ich von der Namensgebung *SQL aus, also z.B. über den OpsNav erstellt.

BenderD
15-07-15, 08:56
... das mit dem QCRTAUT stimmt auch nur, wenn der CRTAUT der Lib auf *SYSVAL verweist.
Darüberhinaus würde ich immer empfehlen die Table nur über ein View zugänglich zu machen, das macht schon Sinn, dass eine Tabelle exclude ist; für die View macht man dann die GRANTs (und weil man seine Tables ja nicht mit oops nerv zusammenknipst, sondern per Script...)

D*B