Zunächst möchte ich eine Datenbank aus IBM DB2 AIX in IBM DB2-Fenster exportieren. Leider kann ich die Befehle BACKUP und RESTORE aufgrund eines unterschiedlichen Betriebssystemproblems nicht verwenden. Also muss ich auf den Befehl db2move zurückgreifen .
Ich hatte mein Schema und alle Tabellen aus der Datenbank dbemp in IBM DB2 AIX mit diesem Befehl exportiert :
db2move dbemp export -sn myschema
Als ich diesen Befehl ausführte , war ich als Benutzer mit dem Namen dbuser1 angemeldet .
Es werden eine Reihe von Dateien im aktuellen Ordner generiert. Ich greife nach den Dateien auf meinem lokalen Computer (Windows), auf dem IBM DB2 LUW installiert ist.
Jetzt habe ich in IBM DB2 meines lokalen Computers das vorhandene Schema myschema zuerst mithilfe von IBM Data Studio gelöscht (ich hatte auch eine lokale dbemp- Datenbank).
Dann habe ich die Dateien mit diesem Befehl importiert:
db2move dbemp import
Das Schema und die Tabellen wurden erfolgreich in die lokale Datenbank dbemp importiert .
Als ich die oben genannten Aktionen ausgeführt habe, habe ich mich als Benutzer winuser1 angemeldet .
Ich habe auch einen lokalen Benutzer namens dbuser1 auf meinem lokalen Computer (Windows). In IBM Data Studio habe ich ein Verbindungsprofil erstellt, das mit dem Benutzer dbuser1 eine Verbindung zum lokalen dbemp herstellt. Ich kann das Myschema- Schema und die Tabellen durchsuchen, aber die Daten der Tabelle nicht durchsuchen (ich habe einen Berechtigungsfehler erhalten). Der Benutzer winuser1 kann die Daten der Tabelle durchsuchen, aber zu Entwicklungszwecken muss ich mit dem Benutzer dbuser1 eine Verbindung zur Datenbank herstellen .
Also habe ich herausgefunden, dass ich einem Benutzer in der Tabelle folgende Berechtigungen gewähren kann:
GRANT ALL ON myschema.table1 TO USER dbuser1
Das Problem ist, dass ich 100 Tabellen habe. Ich möchte diese Zeilen nicht für jede Tabelle eingeben. Und leider gibt es auch keine solche Wildcard-Lösung:
GRANT ALL ON myschema.* TO USER dbuser1 -- this doesn't work
Die Frage ist also, wie einem Benutzer alle Berechtigungen für alle Tabellen in einem Schema gewährt werden können. Oder gibt es eine alternative bessere Lösung? Vielleicht durch Kopieren aller Berechtigungen von winuser1 nach dbuser1 ?
quelle
db2 grant dataaccess
funktioniert. Es macht mir nichts aus, sie allen Schemas zuzuweisen, da ich mich in einer Entwicklungsumgebung befinde.Wenn Sie einen SQL-Editor wie Toad verwenden, kann dieses Skript ebenfalls hilfreich sein. Sie können die Ergebnisse in ein neues Fenster kopieren / einfügen.
quelle
Sie können auch versuchen (mit einem SQL-Editor):
quelle