Klasse DBRootManager

java.lang.Object
de.svws_nrw.db.utils.schema.DBRootManager

public final class DBRootManager extends Object
Diese Klasse dient dem administrativen Zugriff auf eine Datenbank. Der in der DB-Konfiguration übergebene Benutzer muss über entsprechende administrative Rechte (z.B. root-Rechte) in der Datenbank verfügen.
  • Methodendetails

    • create

      public static DBRootManager create(DBEntityManager conn)
      Erstellt für die angebene Datenbank-Verbindung einen DB-Root-Manager.
      Parameter:
      conn - die Datenbank-Verbindung
      Gibt zurück:
      der DB-Root-Manager
    • isConnected

      public boolean isConnected()
      Gibt zurück, ob der DB-Root-Manager eine aktive Datenbankverbindung besitzt.
      Gibt zurück:
      true, wenn die Datenbankverbindung aktiv ist, sonst false
    • isReservedSchemaName

      public static boolean isReservedSchemaName(String name)
      Prüft, ob der übergebene Name ein reservierter oder ungültiger Schema-Name ist.
      Parameter:
      name - der Schema-Name
      Gibt zurück:
      true, falls der Name reserviert oder ungültig ist.
    • isReservedUserName

      public static boolean isReservedUserName(String name)
      Prüft, ob der übergebene Name ein reservierter oder ungültiger DB-Benutzer-Name ist.
      Parameter:
      name - der DB-Benutzer-Name
      Gibt zurück:
      true, falls der Name reserviert oder ungültig ist.
    • createDBAdminUser

      public static boolean createDBAdminUser(DBEntityManager conn, String nameUser, String pwUser, String nameSchema) throws DBException
      Erstellt einen neuen Datenbank-Benutzer mit administrativen Rechten auf dem angebenen Schema.
      Parameter:
      conn - die Datenbank-Verbindung
      nameUser - der Name des zu erstellenden Benutzers
      pwUser - das Benutzerkennwort des zu erstellenden Benutzers
      nameSchema - das Schema, auf dem der neue Benutzer seine Rechte bekommen soll
      Gibt zurück:
      true, wenn der Benutzer erstellt wurde, sonst false
      Löst aus:
      DBException - wenn ein Verbindungsfehler auftritt
    • grantAdminRights

      public static boolean grantAdminRights(DBEntityManager conn, String nameUser, String nameSchema)
      Vergibt administrative Rechte für das angegebene Schema nameSchema an den angegebenen Datenbank-Benutzer nameUser auf der Verbindung, welche durch den angegebenen DBEntityManager conn aufgebaut ist. Diese Verbindung muss durch einen DB-Benutzer mit entsprechenden administrativen Rechten auf dem angebenen Schema aufgebaut sein.
      Parameter:
      conn - die Datenbank-Verbindung
      nameUser - der Name des Benutzers dem die adminstrativen Rechte gewährt werden sollen
      nameSchema - das Schema, auf dem der neue Benutzer seine Rechte bekommen soll
      Gibt zurück:
      true wenn die administrativen Rechte gewährt wurden und ansonsten false
    • createDBSchemaWithAdminUser

      public boolean createDBSchemaWithAdminUser(String nameUser, String pwUser, String nameSchema) throws SVWSKonfigurationException, DBException
      Erstellt ein neues Datenbank-Schema und einem Benutzer mit administrativen Rechten auf diesem Schema. Existiert der Benutzer bereits, so werden lediglich Admin-Rechte auf das neue Schema hinzugefügt.
      Parameter:
      nameUser - der Name des zu erstellenden Benutzers
      pwUser - das Benutzerkennwort des zu erstellenden Benutzers
      nameSchema - das Schema, auf dem der neue Benutzer seine Rechte bekommen soll
      Gibt zurück:
      true, wenn das Schema und der Benutzer erstellt wurden, sonst false
      Löst aus:
      SVWSKonfigurationException - falls ein Fehler beim Erstellen oder Anpassen der SVWS-Konfiguration auftritt
      DBException - wenn ein Verbindungsfehler auftritt
    • dbSchemaExists

      public boolean dbSchemaExists(String nameSchema)
      Prüft, ob das angegebene Datenbank-Schema bereits existiert oder nicht
      Parameter:
      nameSchema - der Name des Datenbank-Schemas
      Gibt zurück:
      true, falls das Schema existiert, sonst false
    • dropDBSchemaIfExists

      public boolean dropDBSchemaIfExists(String nameSchema) throws SVWSKonfigurationException
      Verwirft das Datenbank-Schema mit dem angegebenen Namen, sofern es existiert.
      Parameter:
      nameSchema - der Name des zu verwerfenden Schemas
      Gibt zurück:
      true, falls das Schema erfolgreich entfernt wurde oder nicht existierte, sonst false
      Löst aus:
      SVWSKonfigurationException - falls ein Fehler beim Entfernen der SVWS-Konfiguration auftritt
    • dbUserExists

      public boolean dbUserExists(String nameUser)
      Prüft, ob der angegebene Datenbank-Benutzer breits existiert oder nicht
      Parameter:
      nameUser - der Name des Datenbank-Benutzer
      Gibt zurück:
      true, falls der Datenbank-Benutzer existiert, sonst false
    • dropDBUserIfExists

      public boolean dropDBUserIfExists(String nameUser)
      Verwirft einen Datenbank-Benutzer, sofern dieser existiert.
      Parameter:
      nameUser - der Name des zu verwerfenden Benutzers
      Gibt zurück:
      true, falls der Benutzer erfolgreich entfernt wurde oder der Benutzer nicht vorhanden war, sonst false
    • recreateDB

      public static boolean recreateDB(DBConfig config, String user_root, String pw_root, Logger logger) throws DBException
      Erstelle als root-Benutzer ein neuese Datenbank-Schema bzw. eine neue Datenbankdatei. Ein bereits vorhandenes Schema bzw. eine bereits vorhandene Datei wird zuvor gelöscht.
      Parameter:
      config - die Datenbank-Konfiguration mit den Zugriffs-Informationen für den neuen Admin-Benutzer
      user_root - der Benutzername für den Benutzer der mit den "root"-Rechten auf die Datenbank ausgestattet ist
      pw_root - das Kennwort für den root-Zugriff auf die Datenbank
      logger - ein Logger, welcher die jeweiligen Informationen zu den einzelnen Operationen loggt.
      Gibt zurück:
      true im Erfolgsfall und false, falls ein Fehler aufgetreten ist.
      Löst aus:
      DBException - falls ein Fehler auftritt