Azure Otomasyonu kullanarak Azure SQL veritabanındaki veritabanlarını yönetme
Bu makalede, Azure Otomasyonu sistem tarafından atanan yönetilen kimliğini kullanarak Azure SQL veritabanındaki veritabanlarını bağlama ve yönetme yordamı açıklanmaktadır. Azure Otomasyonu ile, Azure Az PowerShell'de kullanılabilen en son Az PowerShell cmdlet'lerini kullanarak Azure SQL Veritabanı veritabanlarını yönetebilirsiniz.
Azure Otomasyonu, hizmet içindeki tüm SQL veritabanı yönetim görevlerini gerçekleştirebilmeniz için bu Azure Az PowerShell cmdlet'lerini kullanıma hazır hale getirir. Ayrıca Azure Otomasyonu'daki bu cmdlet'leri diğer Azure hizmetlerinin cmdlet'leriyle eşleştirerek Azure hizmetlerinde ve üçüncü taraf sistemlerde karmaşık görevleri otomatikleştirebilirsiniz.
Azure Otomasyonu, PowerShell kullanarak SQL sunucularında T-SQL (Transact SQL) komutları da verebilir.
Komutları veritabanında çalıştırmak için aşağıdakileri yapmanız gerekir:
- Otomasyon hesabının sistem tarafından atanan yönetilen bir kimliğe sahip olduğundan emin olun.
- Otomasyon yönetilen kimliği için uygun izinleri sağlayın.
- SQL server'ı Microsoft Entra kimlik doğrulamasını kullanacak şekilde yapılandırın.
- SQL sunucusunda Otomasyon hesabı yönetilen kimliğine eşleyen bir kullanıcı oluşturun.
- Bağlanmak ve komutları yürütmek için bir runbook oluşturun.
- (İsteğe bağlı) SQL sunucusu bir güvenlik duvarı tarafından korunuyorsa, bir Karma Runbook Çalışanı (HRW) oluşturun, sql modüllerini bu sunucuya yükleyin ve HRW IP adresini güvenlik duvarındaki izin verilenler listesine ekleyin.
Sistem tarafından atanan Yönetilen kimliği kullanarak Azure SQL veritabanına bağlanma
Otomasyon sistemi yönetilen kimliğinden Azure SQL veritabanına erişime izin vermek için şu adımları izleyin:
Otomasyon sistemi tarafından yönetilen kimlik KAPALI ise aşağıdakileri yapın:
Azure Portal’ında oturum açın.
Otomasyon hesabınıza gidin.
Otomasyon hesabı sayfasındaki Hesap Ayarları'nın altında Kimlik'i seçin.
Sistem tarafından atanan sekmesinin altında Durum olarak ON'ı seçin.
Sistem Tarafından Yönetilen Kimlik ON olduktan sonra, şu adımları kullanarak hesaba gerekli erişimi sağlamanız gerekir:
- Otomasyon hesabında | Kimlik sayfası, Sistem tarafından atanan sekmesi, izinler'in altında Azure rol atamaları'yı seçin.
- Azure rol atamaları sayfasında +Rol ataması ekle (önizleme) öğesini seçin.
- Rol ataması ekle (önizleme)'de Kapsam'ı SQL olarak seçin, açılan listeden Abonelik, Kaynak ve gerekli en düşük izinlere göre Rol'e tıklayın ve ardından Kaydet'i seçin.
Şu adımları kullanarak SQL server'ı Active Directory kimlik doğrulaması için yapılandırın:
- Azure portalı giriş sayfasına gidin ve SQL sunucuları'na tıklayın.
- SQL server sayfasındaki Ayarlar'ın altında Microsoft Entra Id'yi seçin.
- AD kimlik doğrulaması için SQL server'ı yapılandırmak için Yöneticiyi ayarla'yı seçin.
Şu adımları kullanarak SQL tarafına kimlik doğrulaması ekleyin:
- Azure portalı giriş sayfasına gidin ve SQL sunucuları'na tıklayın.
- SQL server sayfasındaki Ayarlar'ın altında SQL Veritabanı'ler'i seçin.
- VERITABANınızı seçerek SQL veritabanı sayfasına gidin ve Sorgu düzenleyicisi (önizleme) seçeneğini belirleyin ve aşağıdaki iki sorguyu yürütür:
# AutomationAccount - replace with your Automation account's name # ObjectID - replace with object (principal) ID for your system managed identity principal from step 1. CREATE USER "AutomationAccount" FROM EXTERNAL PROVIDER WITH OBJECT_ID = `ObjectID` EXEC sp_addrolemember `db_owner`, "AutomationAccount"
Örnek kod
Azure SQL Server bağlantısı
if ($($env:computerName) -eq "Client") {"Runbook running on Azure Client sandbox"} else {"Runbook running on " + $env:computerName}
Disable-AzContextAutosave -Scope Process
Connect-AzAccount -Identity
$Token = (Get-AZAccessToken -ResourceUrl https://database.windows.net).Token
Invoke-Sqlcmd -ServerInstance azuresqlserverxyz.database.windows.net -Database MyDBxyz -AccessToken $token -query 'select * from TableXYZ'
SQL tarafında hesap izinlerini denetleme
SELECT roles.[name] as role_name, members.name as [user_name]
from sys.database_role_members
Join sys.database_principals roles on database_role_members.role_principal_id= roles.principal_id
join sys.database_principals members on database_role_members.member_principal_id=members.principal_id
Order By
roles.[name], members.[name]
Not
Bir SQL sunucusu güvenlik duvarının arkasında çalışırken, Azure Otomasyonu runbook'unu kendi ağınızdaki bir makinede çalıştırmanız gerekir. IP adresinin veya ağın güvenlik duvarı tarafından engellenmemesi için bu makineyi Karma Runbook Çalışanı olarak yapılandırdığınızdan emin olun. Bir makineyi Karma Çalışanı olarak yapılandırma hakkında daha fazla bilgi için bkz . Karma çalışan oluşturma.
Karma çalışanı kullanma
Karma çalışanı kullandığınızda runbook'unuzun kullandığı modüller yükseltilmiş bir PowerShell isteminden yerel olarak yüklenmelidir. Örneğin, - Install-module Az.Accounts and Install-module SqlServer
. Gerekli modül adlarını bulmak için her cmdlet'te bir komut çalıştırın ve ardından kaynağı denetleyin. Örneğin, Az.Account modülünün parçası olan cmdlet'in Connect-AzAccounts
modül adını denetlemek için komutunu çalıştırın: get-command Connect-AzAccount
Not
Karma çalışanı üzerinde çalıştırılması amaçlanan herhangi bir runbook'un üstüne aşağıdaki kodu eklemenizi öneririz: if ($($env:computerName) -eq "CLIENT") {"Runbook running on Azure CLIENT"} else {"Runbook running on " + $env:computerName}
. Kod, üzerinde çalıştığı düğümü görmenize olanak tanır ve karma çalışanı yerine yanlışlıkla Azure bulutunda çalıştırmanız durumunda runbook'un çalışmama nedenini belirlemenize yardımcı olur.
Sonraki adımlar
- Kimlik bilgisi kullanımıyla ilgili ayrıntılar için bkz. Azure Otomasyonu kimlik bilgilerini yönetme.
- Modüller hakkında bilgi için bkz. Azure Otomasyonu'de modülleri yönetme.
- Bir runbook başlatmanız gerekiyorsa bkz. Azure Otomasyonu'de runbook başlatma.
- PowerShell ayrıntıları için bkz . PowerShell Belgeleri.