Ich muss eine Kopie einer SQL Server-Datenbank erstellen. Die Datenbank hat ca. 40 Ansichten, die mit anderen Datenbanken verknüpft sind, und ich benötige auch Beispieldaten aus diesen Ansichten. Außerdem sind die Ansichten verschlüsselt. Wenn ich also versuche, ein Skript aus einer der Ansichten zu generieren, ist dies der Fehler:
Property TextHeader is not available for View '[dbo].[TABLE1]'. This property may not
exist for this object, or may not be retrievable due to insufficient access rights. The
text is encrypted. (Microsoft.SqlServer.Smo)
Was wäre der beste Weg, um eine Kopie dieser Datenbank mit Daten aus den Ansichten zu erhalten? Ich habe darüber nachgedacht, zusätzliche Tabellen zu erstellen und mit Beispieldaten zu füllen, aber das scheint langwierig zu sein. Gibt es also einen besseren Weg?
sql-server
usert09856345
quelle
quelle
Antworten:
Verschlüsselte gespeicherte Prozesse und Ansichten können ziemlich einfach entschlüsselt werden:
http://www.mssqltips.com/tip.asp?tip=1046
Dadurch erhalten Sie den unverschlüsselten Text der gespeicherten Prozeduren und Ansichten. Ändern Sie einfach die CREATE-Anweisung in ALTER, und die verschlüsselten Versionen werden mit entschlüsselten überschrieben.
Tun Sie dies nicht in der Produktion, sondern in einer wiederhergestellten Sicherung der Datenbank. Auf diese Weise werden Sie in der Produktion weiterhin unterstützt, wenn es sich um eine Drittanbieter-App handelt.
quelle
Eine Ansicht ist nur eine Metadatendefinition (wenn es sich natürlich nicht um eine indizierte Ansicht handelt). Wenn Sie also die Datenbank kopieren, erhalten Sie nur die verschlüsselte Definition dieser Ansicht.
Ich denke, dass Sie am besten neue Tabellen mit aktuellen Daten aus diesen Ansichten erstellen, damit Sie Ihr Datenbeispiel haben.
quelle
Hier ist eine weitere Lösung, die unter SQL Server 2012 funktioniert. Sie erhalten den Hauptteil der Ansicht in den Ergebnissen.
Verschlüsseln und Entschlüsseln von gespeicherten Prozeduren, Ansichten und benutzerdefinierten Funktionen von SQL Server
HTH
quelle