Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Ισχύει για:✅βάση δεδομένων SQL σε Microsoft Fabric
Μπορείτε να χρησιμοποιήσετε το Fabric REST API για να προβάλετε και να ρυθμίσετε τις παραμέτρους ελέγχου βάσης δεδομένων SQL μέσω προγραμματισμού. Το API ρυθμίσεων ελέγχου SQL είναι ένα API σε επίπεδο βάσης δεδομένων που λειτουργεί σε μεμονωμένες βάσεις δεδομένων SQL. Συνδυάζοντας το API με δέσμες ενεργειών PowerShell, μπορείτε να διαχειριστείτε τον έλεγχο με συνέπεια σε όλες τις βάσεις δεδομένων σε έναν χώρο εργασίας.
Αυτό το άρθρο παρουσιάζει τον τρόπο χρήσης του PowerShell και των ρυθμίσεων ελέγχου SQL σε επίπεδο βάσης δεδομένων REST API για την ανάκτηση και ενημέρωση ρυθμίσεων ελέγχου για βάσεις δεδομένων SQL σε έναν χώρο εργασίας Fabric.
Προϋποθέσεις
- Χρειάζεστε ένα υπάρχον σύνολο εκχωρημένων πόρων Fabric. Εάν δεν το κάνετε, ξεκινήστε μια δοκιμαστική έκδοση Fabric.
- Μπορείτε να χρησιμοποιήσετε έναν υπάρχοντα χώρο εργασίας ή να δημιουργήσετε έναν νέο χώρο εργασίας Fabric με μία ή περισσότερες βάσεις δεδομένων SQL.
- Πρέπει να είστε μέλος των ρόλων Διαχειριστής, Μέλος ή Συμβάλλων για να διαχειριστεί ο χώρος εργασίας τις ρυθμίσεις ελέγχου.
- PowerShell 5.1 ή PowerShell 7.4 και νεότερη έκδοση.
- Η λειτουργική μονάδα Az PowerShell. Εκτελέστε το
Install-Module azστο PowerShell για εγκατάσταση.
Έλεγχος τελικών σημείων REST API
Το API ρυθμίσεων ελέγχου SQL παρέχει δύο λειτουργίες για τη διαχείριση του ελέγχου σε μεμονωμένες βάσεις δεδομένων SQL:
| Λειτουργία | Μέθοδος | URI |
|---|---|---|
| Λήψη ρυθμίσεων ελέγχου SQL | GET |
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/sqlDatabases/{sqlDatabaseId}/settings/sqlAudit |
| Ενημέρωση ρυθμίσεων ελέγχου SQL | PATCH |
https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/sqlDatabases/{sqlDatabaseId}/settings/sqlAudit |
Η λειτουργία Λήψη απαιτεί SQLDatabase.Read.All, SQLDatabase.ReadWrite.All, Item.Read.Allή Item.ReadWrite.All πεδίο ανάθεσης.
Η λειτουργία Ενημέρωση απαιτεί SQLDatabase.ReadWrite.All ή Item.ReadWrite.All έχει ανατεθεί εμβέλεια. Και οι δύο λειτουργίες υποστηρίζουν ταυτότητες χρηστών, αρχές υπηρεσιών και διαχειριζόμενες ταυτότητες.
Ιδιότητες ρυθμίσεων ελέγχου
Το αντικείμενο ρυθμίσεων ελέγχου περιλαμβάνει τις ακόλουθες ιδιότητες:
| Ιδιοκτησία | Τύπος | Περιγραφή |
|---|---|---|
auditActionsAndGroups |
string[] | Ενέργειες και ομάδες ελέγχου που πρέπει να καταγραφούν. Προεπιλογή: BATCH_COMPLETED_GROUP, FAILED_DATABASE_AUTHENTICATION_GROUP, SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP. |
predicateExpression |
συμβολοσειρά | Μια παράσταση κατηγορήματος T-SQL που χρησιμοποιείται για το φιλτράρισμα συμβάντων ελέγχου. Για παράδειγμα, statement not like '[select ]%' εξαιρεί τις προτάσεις SELECT. |
retentionDays |
ακέραιος | Αριθμός ημερών για τη διατήρηση των αρχείων καταγραφής ελέγχου.
0 υποδηλώνει επ' αόριστον διατήρηση. |
state |
συμβολοσειρά | Κατάσταση ελέγχου: Enabled ή Disabled. Όταν ενεργοποιείτε τον έλεγχο για πρώτη φορά χωρίς να καθορίσετε άλλες ιδιότητες, το σύστημα χρησιμοποιεί προεπιλεγμένες τιμές. |
storageEndpoint |
συμβολοσειρά | (Μόνο για ανάγνωση) Το τελικό σημείο αποθήκευσης OneLake που αποθηκεύει αρχεία καταγραφής ελέγχου. |
Προβολή ρυθμίσεων ελέγχου για όλες τις βάσεις δεδομένων σε έναν χώρο εργασίας
Η ακόλουθη δέσμη ενεργειών PowerShell παραθέτει όλες τις βάσεις δεδομένων SQL σε έναν χώρο εργασίας και ανακτά τη ρύθμιση παραμέτρων ελέγχου για κάθε βάση δεδομένων.
Στην ακόλουθη δέσμη ενεργειών, αντικαταστήστε <your workspace id> το με το αναγνωριστικό χώρου εργασίας Fabric σας. Μπορείτε να βρείτε το αναγνωριστικό ενός χώρου εργασίας στη διεύθυνση URL, είναι η μοναδική συμβολοσειρά μέσα σε δύο / χαρακτήρες μετά /groups/ στο παράθυρο του προγράμματος περιήγησής σας. Για παράδειγμα, 00001111-aaaa-2222-bbbb-3333cccc4444 στο https://fabric.microsoft.com/groups/00001111-aaaa-2222-bbbb-3333cccc4444/.
Import-Module Az.Accounts
Connect-AzAccount
$workspaceId = '<your workspace id>'
$baseUri = "https://api.fabric.microsoft.com"
# Obtain an access token
$token = (Get-AzAccessToken -ResourceUrl "https://api.fabric.microsoft.com")
$secureToken = $token.Token | ConvertFrom-SecureString -AsPlainText
$headers = @{
"Authorization" = "Bearer $secureToken"
"Content-Type" = "application/json"
}
# List all SQL databases in the workspace
$databasesUri = "$baseUri/v1/workspaces/$workspaceId/sqlDatabases"
$databases = @()
$continuationToken = $null
do {
$url = $databasesUri
if ($continuationToken) {
$encoded = [System.Web.HttpUtility]::UrlEncode($continuationToken)
$url = "$url`?continuationToken=$encoded"
}
$response = Invoke-RestMethod -Method GET -Uri $url -Headers $headers
if ($response.value) { $databases += $response.value }
$continuationToken = $response.continuationToken
} while ($continuationToken)
Write-Host "Found $($databases.Count) SQL databases."
# Retrieve audit settings for each database
$results = @()
foreach ($db in $databases) {
try {
$auditUri = "$baseUri/v1/workspaces/$workspaceId/sqlDatabases/$($db.id)/settings/sqlAudit"
$audit = Invoke-RestMethod -Method GET -Uri $auditUri -Headers $headers
$results += [PSCustomObject]@{
DatabaseName = $db.displayName
DatabaseId = $db.id
State = $audit.state
RetentionDays = $audit.retentionDays
AuditActionsAndGroups = ($audit.auditActionsAndGroups -join "; ")
PredicateExpression = $audit.predicateExpression
}
}
catch {
$results += [PSCustomObject]@{
DatabaseName = $db.displayName
DatabaseId = $db.id
State = "ERROR"
RetentionDays = ""
AuditActionsAndGroups = ""
PredicateExpression = $_.Exception.Message
}
}
}
$results | Format-Table -AutoSize
Ρύθμιση παραμέτρων ελέγχου για όλες τις βάσεις δεδομένων σε έναν χώρο εργασίας
Αφού εξετάσετε την τρέχουσα κατάσταση ελέγχου, χρησιμοποιήστε την ακόλουθη δέσμη ενεργειών για να ρυθμίσετε τις παραμέτρους του ελέγχου με συνέπεια σε όλες τις βάσεις δεδομένων σε έναν χώρο εργασίας.
Αντικαταστήστε <your workspace id> το με το αναγνωριστικό χώρου εργασίας Fabric. Τροποποιήστε το αντικείμενο ώστε να ταιριάζει με την $auditPayload επιθυμητή ρύθμιση παραμέτρων ελέγχου.
Import-Module Az.Accounts
Connect-AzAccount
$workspaceId = '<your workspace id>'
$baseUri = "https://api.fabric.microsoft.com"
# Obtain an access token
$token = (Get-AzAccessToken -ResourceUrl "https://api.fabric.microsoft.com")
$secureToken = $token.Token | ConvertFrom-SecureString -AsPlainText
$headers = @{
"Authorization" = "Bearer $secureToken"
"Content-Type" = "application/json"
}
# Define the audit configuration to apply
$auditPayload = @{
state = "Enabled"
auditActionsAndGroups = @(
"BATCH_COMPLETED_GROUP",
"FAILED_DATABASE_AUTHENTICATION_GROUP",
"SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP"
)
retentionDays = 10
predicateExpression = "statement not like '[select ]%'"
} | ConvertTo-Json -Depth 5
# List all SQL databases in the workspace
$databasesUri = "$baseUri/v1/workspaces/$workspaceId/sqlDatabases"
$databases = @()
$continuationToken = $null
do {
$url = $databasesUri
if ($continuationToken) {
$encoded = [System.Web.HttpUtility]::UrlEncode($continuationToken)
$url = "$url`?continuationToken=$encoded"
}
$response = Invoke-RestMethod -Method GET -Uri $url -Headers $headers
if ($response.value) { $databases += $response.value }
$continuationToken = $response.continuationToken
} while ($continuationToken)
Write-Host "Configuring auditing for $($databases.Count) SQL databases..."
foreach ($db in $databases) {
try {
$auditUri = "$baseUri/v1/workspaces/$workspaceId/sqlDatabases/$($db.id)/settings/sqlAudit"
Invoke-RestMethod -Method PATCH -Uri $auditUri -Headers $headers -Body $auditPayload | Out-Null
Write-Host "[OK] Updated auditing for: $($db.displayName)"
}
catch {
Write-Host "[FAIL] $($db.displayName): $($_.Exception.Message)"
}
}
Βέλτιστες πρακτικές
- Πάντα να ανακτάτε τις τρέχουσες ρυθμίσεις ελέγχου με μια
GETαίτηση πριν από την ενημέρωση μεPATCH, για να κατανοήσετε την υπάρχουσα ρύθμιση παραμέτρων. - Χειρισμός αστοχιών ανά βάση δεδομένων. Εάν αποτύχει μία ενημέρωση βάσης δεδομένων, συνεχίστε την επεξεργασία των υπόλοιπων βάσεων δεδομένων.
- Δοκιμάστε ξανά τις παροδικές αποτυχίες μεμονωμένα αντί να εκτελέσετε ξανά ολόκληρο το σενάριο μαζικής ενημέρωσης.
- Χρησιμοποιήστε μια κύρια υπηρεσία ή μια διαχειριζόμενη ταυτότητα για αυτοματοποιημένη ή προγραμματισμένη ρύθμιση παραμέτρων ελέγχου σε περιβάλλοντα παραγωγής.