Im Wesentlichen können Sie in SQL Developer nur tun, was Sie sonst in der Datenbank tun können.
Wie Alex gesagt hat, verwendet SQL Developer einen SELECT von SYS.ALL_USERS, um alle Benutzer im System zu sehen. Dies ist kein Problem mit SQL Developer. Ihr Benutzer könnte, wenn er Zugriff auf SQL * Plus hätte, select username from sys.all_users
direkt für die Datenbank ausführen und die gleichen Informationen erhalten.
Das Entfernen dieser Informationen von Ihrem Benutzer folgt demselben Pfad. Man kann nur SELECT aus Tabellen auswählen, denen das SELECT-Privileg erteilt wurde. Die Auswahl aus Katalogtabellen und -sichten (und speziell aus ALL_USERS im SYS-Schema) ist normalerweise eine indirekte Berechtigung: Die PUBLIC-Rolle hat das Recht SELECT aus diesen Tabellen und in den meisten Fällen (vielleicht standardmäßig - abhängig von Ihrem Admin-Tool) neu Benutzer erhalten die Rolle PUBLIC.
Je nach Ihren geschäftlichen Anforderungen können Sie die PUBLIC-Rolle entweder von ausgewählten Benutzern REVOKEN (und dann Bündel von Berechtigungen erstellen, die sie ersetzen möchten, oder die - drastisch und vielleicht auch nicht) etwas, was Sie tun sollten - Sie können einfach revoke select on all_users from public;
(während mit SYSDBA-Berechtigung angemeldet, oder ein anderes Privileg, das ausreicht, um diese Operation auszuführen).
Bearbeiten - Ich habe gerade überprüft, und leider kann man die PUBLIC-Rolle nicht widerrufen; Es wird automatisch allen Benutzern in der Datenbank gewährt, die nicht geändert werden können. Dies lässt nur die weniger wünschenswerte Alternative übrig, sich mit den Privilegien, die PUBLIC selbst besitzt, zu messen. Ende bearbeiten
ich das gerade getestet - ich in as sysdba
angemeldet, widerrufen wählen Sie auf SYS.ALL_USERS von PUBLIC, fahren Sie dann SQL Developer und neu gestartet es. Sicher genug, ich bin nicht mehr in der Lage, "andere Benutzer" von den benutzerdefinierten Benutzern zu sehen, die ich in meiner Datenbank erstellt habe (dh von SQL Developer-Verbindungen, die ich für diese Benutzer erstellt habe).
Ausgezeichnet. Danke für Ihre Hilfe. – ptownbro
@ptownbro - bitte beachten Sie meine ** Bearbeiten ** - leider kann PUBLIC nicht von Benutzern entfernt werden; Die einzige Lösung ist das Widerrufen von SELECT für SYS.ALL_USERS von PUBLIC, was sich auf andere Benutzer (und höchstwahrscheinlich auf Prozesse und Anwendungen, die möglicherweise auf diese Tabelle zugreifen müssen) auswirken könnte. – mathguy