Herhangi bir kontrol panel ile yönetmediğiniz kendi haline çalışan MSSQL Veritabanı sunucunuzu MaestroPanel’e aktarmak için aşağıdaki adımları izleyebilirsiniz.

Öncelikle gerekli olanlar;

MaestroPanel API’ye komut gönderebilmek için curl aracını aşağıdaki adresten edinin.

MaestroPanel API’sine ulaşmak için API anahtarına sahip olmamız gerekiyor. API anahtarını nasıl alabileceğinizi anlatan dokümanımızı inceleyip API anahtarı edinin.

1. Mevcut MSSQL sunucunuzda hangi veritabanı hangi domain’e ait bilinmediği için MaestroPanel üzerinde tüm veritabanlarına ulaşabileceğiniz bir domain oluşturmalısınız. Bu senaryomuzda biz MaestroPanel üzerinde MSSQL desteği olan eskidbler.com isminde bir domain oluşturduk ve MSSQL ile ilgili limitlerini sınırsız olarak işaretledik.

2. Aşağıda mevcut MSSQL sunucunuzun veritabanlarını ve kullanıcısını bulup, curl ile API isteğine dönüştüren SQL Scriptini çalıştırın.

Aşağıdaki SQL scripti MSSQL veritabanı ve o veritabanına ait kullanıcıları listeler ve MaestroPanel API’sine “Veritabanı Aç” komutu gönderecek şekilde curl isteği oluşturur. Parolaları bu adım tamamlandıktan sonra eşitleyeceğimiz için bu aşamada sabit olarak tanımlıyoruz.

Not: SQL Scriptlerini master veritabanı üzerinde çalıştırınız.

SELECT 'curl --data "name=eskidbler.com&database='+ default_database_name +'&username='+ name +'&password=DEFAULT_PASSWORD_GIRIN&dbtype=mssql&quota=-1" http://192.168.0.55:9715/Api/v1/Domain/AddDatabase?key=MAESTROPANEL_API_KEY_GIRIN'
from sys.server_principals WHERE type_desc ='SQL_LOGIN' AND default_database_name <> 'master'

4. Veritabanı ve kullanıcıları MaestroPanel üzerinde oluştuktan sonra eski MSSQL sunucunuzdaki kullanıcıların parola listesini aşağıdaki SQL scripti ile listeliyoruz.

SELECT 'ALTER LOGIN '+ QUOTENAME( p.name ) +' WITH PASSWORD =' As A, LOGINPROPERTY(p.name,'PasswordHash') As Pwd, ' HASHED' as Hashe FROM  sys.server_principals p LEFT JOIN sys.syslogins l ON ( l.name = p.name ) WHERE p.type IN ( 'S', 'G', 'U' ) AND (p.name <> 'sa') AND (LOGINPROPERTY(p.name,'PasswordHash') IS NOT NULL)  AND (p.name NOT LIKE '##%')

5. Scriptin çıktısını alıp, yeni MSSQL sunucusunda çalıştırdığınızda mevcut tüm kullanıcıların parolalarını eski parolaları ile değiştirecektir.

Bonus

Veritabanı kullanıcılarını silip, owner olarak tanımlayan script’i çıkartan sql scripti 😉

SELECT 'USE ['+ default_database_name +']; DROP USER ['+ name +'];EXEC sp_changedbowner ['+ name +'];' from sys.server_principals WHERE type_desc ='SQL_LOGIN' AND default_database_name <> 'master'

Yazar