Varför är det viktigt att använda SQL Server -vyer som stöds med SCCM -rapportering?

Medan jag var på Midwest Management Summit på Mall of America (MMSMOA) i maj, kom ämnet med stöd för SQL Server -vyer upp. Någon nämnde ett enkelt sätt att konvertera WQL -frågor till SQL -frågor. Detta "tips" skapade dock inte stöd för SQL Server -vyer och alla verkade inte inse att detta var en dålig idé. För att belysa detta ämne ger jag lite bakgrund i det här inlägget om varför du bara måste använda SQL Server -vyer som stöds och, ännu viktigare, vad som händer när du inte använder dem.

Om du vill se vilka SQL Server -vyer och funktioner som stöds av SCCM -produktteamet, ta en titt på detta blogginlägg som jag publicerade strax efter MMSMOA, ”Vilka SQL Server -vyer som stöds ska användas med SCCM -rapportering?

Varför är SQL Server -visningar som stöds viktiga?

Det finns tre stora anledningar till att du alltid vill använda SQL Server -vyer och funktioner som stöds, och du bör undvika de som inte stöds med System Center Configuration Manager (SCCM) -rapportering.

Dom är:

1. Transaktionslåsning

2. Bevilja dbo -behörigheter till användare

3. Ändra behörigheter på en tabell/vy/Etc.

Transaktionslås

SCCM lagrar data i SQL Server -databasen och ett problem som kan uppstå när data nås från SQL Server -databasen kallas "Transaktionslås". Varför är detta viktigt för en SCCM -administratör och särskilt för SCCM -rapportering? Här är det enkla svaret: när en SQL Server -fråga som inte stöds körs för en rapport skapar det ett lås på tabellen som efterfrågas. Detta lås KAN blockera SCCM själv från att uppdatera eller infoga data i databasen, eller så kan det till och med blockera andra frågor.

För mer information, se detta Stack Overflow posta, Förstå SQL Server LOCKS på SELECT -frågor.

Microsoft -dokumenten (se länk nedan) är också bra på att förklara detta problem:

I vilken databas som helst leder felhantering av transaktioner ofta till problem och prestandaproblem i system som har många användare. I takt med att antalet användare som får tillgång till data ökar blir det viktigt att ha applikationer som använder transaktioner effektivt.

Senare, under Grunder för låsning och radversionering, säger läkarna:

Varje transaktion begär lås av olika typer på resurserna, till exempel rader, sidor eller tabeller, som transaktionen är beroende av. Låsen blockerar andra transaktioner från att ändra resurserna på ett sätt som skulle kunna orsaka problem för transaktionen som begär låset. Varje transaktion frigör sina lås när den inte längre är beroende av de låsta resurserna.

I ett förenklat nötskal säger allt detta att inga två frågor kan använda samma objekt samtidigt. Mer information finns i Microsoft SQL Server -dokumenten: Transaktionslåsning och radversionsguide.

Lösning för transaktionslås

För att lösa detta problem (Transaktionslåsning) använder SCCM -teamet (Nolock) frågetipset i SQL Server -vyer som stöds. Frågetipset (Nolock) förhindrar att detta problem uppstår.

Behörigheter

Har detta någonsin hänt dig tidigare? Du skapar en rapport med SQL Server -vyer som inte stöds, testar den och laddar upp den sedan till din SSRS -webbplats. Det fungerar bra för dig, så du ger rapporten till någon annan och "eh-oh", de kör den och får följande meddelande:

  • Ett fel har uppstått under rapportbehandlingen. (rsProcessingAborted)
    • Frågekörning misslyckades för datamängden 'DataSet1'. (rsErrorExecutingCommand)
      • SELECT -behörigheten nekades på objektet 'vSMS_Advertisement', databasen 'CM_CB1', schemat 'dbo'.

När du väl har bestämt att det är ett tillståndsproblem utför du en av två dåliga idéer. Du heller ge dbo -behörigheter till en användare eller ändra behörigheter på en tabell/vy/etc.

Bevilja en användare DBO -behörigheter

Som standard har endast databasägare (DBO) eller systemadministratör (SA) konton i SQL Server tillgång till alla objekt i databasen. Eftersom SQL Server-vyer, funktioner etc. inte har några behörigheter tilldelade kan endast konton som är utsedda som DBO eller SA få åtkomst till data från dessa vyer, tabeller etc. Om du vill att en användare med låg rättighet ska se data i vyer, tabeller etc. ett av dina alternativ är att ge dem SA- eller DBO -rättigheter på databasen.

Uppenbarligen är detta en dålig idé på grund av de inneboende säkerhetsriskerna. Den enda "uppåtsidan" är att denna metod inte har någon effekt när SCCM uppgraderas till en högre version vid ett senare tillfälle.

SQL Server -vyer som stöds - Behörigheter

Ändra behörigheter på en tabell, vy etc.

Ditt andra alternativ är mindre riskabelt, men har fortfarande säkerhetsproblem i samband med det. Du kan helt enkelt justera behörigheterna för "välj" eller "exekvera" på vyer, tabeller etc. Även om denna metod är mindre säkerhetsrisk, kan det hindra dig från att uppgradera till en nyare version av SCCM vid ett senare tillfälle. Varför? Redigering av SCCM -databasen stöds inte. Plus, vill du verkligen ändra behörigheterna för alla vyer, tabeller etc. som du vill använda?

SQL Server -vyer som stöds

Vilka är fördelarna med att använda SQL Server -vyer och funktioner som stöds med SCCM -rapportering? Förutom att undvika ovannämnda transaktionslåsning och tillståndsproblem, här är några ytterligare skäl:

· Rollbaserad Administration (RBA). Du kan utnyttja RBA för frågor. Det betyder att om någon inte skulle se data, med en RBA -rapport, kommer de inte att se den!

· Prestanda Tweaks. Microsoft lägger mycket ansträngningar på att anpassa SQL Server nu för tiden, så prestandan blir snabbare och bättre! I detta avseende uppdaterar de bara stödda SQL Server -vyer. För den delen är RBA -funktioner där de lägger ner det mesta. Du kan se vad jag menar i det här inlägget, "RBA- och icke-RBA-frågor: När går långsammare faktiskt snabbare?

Vilka SQL Server -vyer och funktioner stöds av Microsoft? Det korta svaret är alla SQL Server -objekt med "välj" eller "kör" behörigheter tilldelade rollen smsschm_users. För hela listan, se mitt blogginlägg, “Vilka SQL Server -vyer som stöds ska användas med SCCM -rapportering? ”

Om du har några frågor om stödda SQL Server -visningar och funktioner är du välkommen att kontakta mig på @GarthMJ.

Se hur Right Click Tools förändrar hur system hanteras.

Öka produktiviteten direkt med vår begränsade, kostnadsfria Community Edition.

Kom igång med Right Click Tools idag:

Dela detta:

Support

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.

Kontakt

  • Detta fält används för valideringsändamål och ska lämnas oförändrat.
sv_SESwedish