2016-08-23 3 views
-2

I Ansichten in Schema A haben, und ich möchte ein Synonym für diese Ansichten in Schema B erstellenPrivilegien vergeben und Erstellen Public Synonym in Oracle

Könnten Sie mir bitte helfen, eine Abfrage für die Gewährung der Rolle zu schreiben und die Schaffung Synonym?

+0

Nicht in der Lage, ein öffentliches Synonym direkt zu erstellen, weil kein privilige – SitGeek

+0

Was bedeutet "rate the role"? Können Sie sich sowohl als A als auch als B einloggen? –

+0

Sie benötigen dafür keine öffentlichen Synonyme. –

Antwort

1

Von Benutzer A, brauchen Sie nur SELECT Privileg des Benutzers A Blick auf Benutzer B

GRANT SELECT ON A.viewname1 TO B; 
GRANT SELECT ON A.viewname2 TO B; 
... 

Von B zu gewähren, ermöglicht Ansichten des Benutzers Ein Referenz Synonyme erstellen, ohne das Schema Präfix („A“) .

CREATE SYNONYM viewname1 FOR A.viewname1; 
CREATE SYNONYM viewname2 FOR A.viewname2; 
... 

Es sollte nun möglich sein, Benutzer B aus diesen Ansichten wie diese zu wählen:

SELECT * FROM viewname1; 

Beachten Sie, dass ein Benutzer nur CREATE SYNONYM verwenden können, wenn sie die CREATE SYNONYM Berechtigung haben.

+0

Ich empfehle nicht, öffentliche Synonyme für diese Art von Sache zu verwenden. Eines Tages wird Schema C eine eigene Version von 'viewname1' haben wollen, und Sie werden mit einem Durcheinander enden. –

+1

@ Jeffrey: Sie haben Recht. Ich habe die Antwort bearbeitet, um dies zu reflektieren. – Gaz