Wie gehen Sie mit dem Mangel an Berechtigungen auf Schemaebene in Oracle um? Die Sicherheitsarchitektur von Oracle eignet sich gut für Anwendungen, die nur Berechtigungen auf Objektebene benötigen, und für Datenbankadministratoren, die nur wenige Einschränkungen benötigen. Es scheint jedoch eine große Lücke in der Architektur zu geben, wenn Programmierer mit einer Front-End-Anwendung und PL / SQL in mehreren Schemata entwickeln. Hier sind einige meiner Optionen mit ihren Nachteilen:
Lassen Sie jeden Programmierer in seinem eigenen Schema entwickeln. Der DBA gewährt Programmierern, die sie benötigen, Berechtigungen auf Objektebene. Jede Paketentwicklung muss von einem DBA durchgeführt werden. Der größte Nachteil ist, dass Programmierer die Datenbank wie einen kleinen Eimer zum Nachteil der Datenbankleistung verwenden. Ich möchte, dass sich die Programmierer in der Datenbank entwickeln, aber diese Methode würde sie stark entmutigen.
Geben Sie jedem Programmierer den Benutzernamen / das Kennwort für das etwa ein Dutzend Schemas, in dem er die Entwicklung durchführen muss. Erteilen Sie diesen Anwendungsschemas die Berechtigung zum Erstellen von Prozeduren, Tabellen usw. Einige der Nachteile dieses Ansatzes bestehen darin, dass Programmierer mehrere Anmeldungen verwalten müssen und müssen Selten als sie selbst eingeloggt. Die Entwicklung von Cross-Schemas ist ebenfalls schwierig.
Gewähren Sie den Programmierern Proxy-Authentifizierungsrechte für jedes Schema, für das sie die Entwicklung durchführen müssen. Dadurch bleiben sie als sie selbst angemeldet, ohne ihnen andere Berechtigungen als das Proxy-Privileg erteilen zu müssen. Zu den Nachteilen gehören, dass Programmierer für jedes Schema, für das sie einen Proxy einrichten, separate Verbindungen pflegen müssen, dass die Entwicklung von Cross-Schemas umständlicher ist, da die Verbindungen ständig geändert werden müssen und Pakete, die öffentliche Datenbankverknüpfungen mit übergebener Authentifizierung verwenden, nicht innerhalb von Proxy-Verbindungen kompiliert werden können.
Gewähren Sie jedem Programmierer DBA-Berechtigungen. - Der Nachteil hier ist die Sicherheit. Kein Schema-Programmierer kann von einem Schema ferngehalten werden, und jeder Programmierer kann sich als ein anderer Programmierer (DBA) ausgeben.
Es scheint eine fehlende Option zu geben, um jedem Programmierer SELECT / INSERT / CREATE / etc. Zu gewähren. Berechtigungen für das Schema, in dem sie die Entwicklung durchführen müssen. Sie melden sich als sie selbst an, um ihre Arbeit über eine einzige Verbindung zu erledigen. Neue Objekte im Schema, auf die sie Zugriff haben, sind sofort verfügbar.
Vermisse ich etwas? Wie gehen Sie mit Anwendungsprogrammierern um, die PL / SQL entwickeln?