<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>databases &#8211; SQLpowered.com</title>
	<atom:link href="https://sqlpowered.com/tag/databases/feed/" rel="self" type="application/rss+xml" />
	<link>https://sqlpowered.com</link>
	<description>SQL Server + BI</description>
	<lastBuildDate>Fri, 31 Dec 2021 20:41:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://sqlpowered.com/wp-content/uploads/2020/07/FavIcon-e1594067873682-99x100.png</url>
	<title>databases &#8211; SQLpowered.com</title>
	<link>https://sqlpowered.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>IDENTITY_CACHE and gaps in identity values chain</title>
		<link>https://sqlpowered.com/identity-cache-gaps-in-values-chain/</link>
					<comments>https://sqlpowered.com/identity-cache-gaps-in-values-chain/#respond</comments>
		
		<dc:creator><![CDATA[Jan Dvořák]]></dc:creator>
		<pubDate>Sat, 12 Jan 2019 08:26:25 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[databases]]></category>
		<guid isPermaLink="false">https://sqlpowered.com/?p=2872</guid>

					<description><![CDATA[SQL Server 2016 brings a lot of new configuration options at the database level (DATABASE SCOPED CONFIGURATION) instead of at the instance level only. SQL Server 2017 adds to this list another new option. It&#8217;s called IDENTITY_CACHE and allows us to adjust if the IDENTITY values generator will use cache...]]></description>
										<content:encoded><![CDATA[<p>SQL Server 2016 brings a lot of new configuration options at the database level (DATABASE SCOPED CONFIGURATION) instead of at the instance level only. SQL Server 2017 adds to this list another new option. It&#8217;s called IDENTITY_CACHE and allows us to adjust if the IDENTITY values generator will use cache or not. If we will set the option off we will disable IDENTITY values caching and this prevents us from having gaps in the IDENTITY values chain in case of unexpected server restart or failure. It means that new IDENTITY values will be generated a little bit slower but the difference isn&#8217;t much significant and most of the standard applications like CRMs won&#8217;t show any difference.</p>
<p>IDENTITY cache setting isn&#8217;t still available in SQL Server Management Studio version 18.5.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-2874" src="https://sqlpowered.com/wp-content/uploads/2019/01/Missing_IDENTITY_CACHE_Option.png" alt="" width="500" height="414" /></p>
<p>Therefore we must set it manually in  T-SQL.</p>
<p>We will check if IDENTITY_CACHE is available in our SQL Server edition first:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="sql">SELECT * FROM sys.database_scoped_configurations</pre>
<p><img decoding="async" class="alignnone wp-image-2875 " src="https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations.png" alt="" width="588" height="105" srcset="https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations.png 745w, https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations-150x27.png 150w, https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations-300x54.png 300w, https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations-160x29.png 160w, https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations-320x57.png 320w, https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations-520x93.png 520w, https://sqlpowered.com/wp-content/uploads/2019/01/Database_Scoped_Configurations-720x129.png 720w" sizes="(max-width: 588px) 100vw, 588px" /></p>
<p>Then we can switch this function ON|OFF:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="sql">ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF | ON</pre>
<p>A more detailed demonstration can be found at <a href="https://www.mssqltips.com/sqlservertip/5246/sql-server-2017-identitycache-feature/" target="_blank" rel="noopener noreferrer">www.mssqltips.com</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sqlpowered.com/identity-cache-gaps-in-values-chain/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instalace multidimensionální databáze AdwentureWorks 2014</title>
		<link>https://sqlpowered.com/instalace-multidimensionalni-databaze-adwentureworks-2014/</link>
					<comments>https://sqlpowered.com/instalace-multidimensionalni-databaze-adwentureworks-2014/#respond</comments>
		
		<dc:creator><![CDATA[Jan Dvořák]]></dc:creator>
		<pubDate>Wed, 08 Jul 2015 19:14:48 +0000</pubDate>
				<category><![CDATA[BI]]></category>
		<category><![CDATA[databases]]></category>
		<guid isPermaLink="false">https://sqlpowered.com/?p=927</guid>

					<description><![CDATA[Microsoft poskytuje pro testování a výuku svých produktů testovací databáze, které obsahují data společnosti AdwentureWorks, fiktivního prodejce kol a cyklistických doplňků. Databáze jsou publikovány na Codeplexu pro různé verze SQL Serveru. V následujícím tutoriálu si ukážeme, jak stáhnout a nainstalovat relační databázi a nad ní postavený multidimensionální model pro SQL...]]></description>
										<content:encoded><![CDATA[<p>Microsoft poskytuje pro testování a výuku svých produktů testovací databáze, které obsahují data společnosti AdwentureWorks, fiktivního prodejce kol a cyklistických doplňků. Databáze jsou publikovány na <a href="https://msftdbprodsamples.codeplex.com/" target="_blank" rel="noopener noreferrer">Codeplexu</a> pro různé verze SQL Serveru. V následujícím tutoriálu si ukážeme, jak stáhnout a nainstalovat relační databázi a nad ní postavený multidimensionální model pro SQL 2014, provést deploy projektu na instanci analytických služeb a otestovat připojení k datovým kostkám.<span id="more-927"></span></p>
<h2>Výchozí předpoklady</h2>
<p>Minimálním požadavkem je mít nainstalovaný SQL Server 2014 ve Standard nebo Enterprise edici. Je možné si stáhnout <a href="https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2014" target="_blank" rel="noopener noreferrer">zkušební verzi</a>, zpravidla na 180 dnů, nebo uvažovat o zakoupení Developer edice, která obsahuje všechny funkce Enterprise edice, ale je určna pouze pro vývoj a testování, nikoliv pro produkční nasazení.  Cena Developer edice se pohybuje kolem 1.500.- Kč a j e možné ji koupit i v českém <a href="http://www.microsoftstore.com/store/mseea/cs_CZ/pdp/SQL-Server-2014-Developer-Edition/productID.304683400" target="_blank" rel="noopener noreferrer">Microsoft store</a>. Verze Standard nebude stačit pro práci s Tabulárním enginem a express verze vůbec neobsahuje analytické komponenty.</p>
<h2><strong>1. Stažení databází a multidimensionálního projektu</strong></h2>
<p>Ze stránek <a href="https://msftdbprodsamples.codeplex.com/releases/view/125550" target="_blank" rel="noopener noreferrer">msftdbprodsamples.codeplex.com</a> stáhneme následující soubory:</p>
<ul>
<li><a href="https://msftdbprodsamples.codeplex.com/downloads/get/880664" target="_blank" rel="noopener noreferrer">Adventure Works DW 2014 Full Database Backup.zip</a>
<ul>
<li>Plná záloha relační databáze AdwentureWorksDW2014, která obsahuje dimenze a fakta, a je použita jako datový zdroj pro multidimensionální kostky.</li>
</ul>
</li>
<li><a href="https://msftdbprodsamples.codeplex.com/downloads/get/882336" target="_blank" rel="noopener noreferrer">AW Multidimensional Models SQL Server 2014.zip</a>
<ul>
<li>Projekt pro SSDT 2014, obsahující definici dimenzí a kostek.</li>
</ul>
</li>
</ul>
<p>Soubory rozbalíme do adresářů na disku.</p>
<h2>2. Obnovení relační datáze AdventureWorksDW 2014 ze zálohy</h2>
<p>Obnovení databáze lze udělat pomocí grafického rozhraní v Management Studiu, případně pomocí následujícího skriptu, ve kterém je třeba upravit cesty podle kokrétní instalace SQL Serveru:</p>
<pre class="lang:tsql decode:true">USE [master]
GO

RESTORE DATABASE [AdventureWorksDW2014] 
	FROM  DISK = N'E:\SQLDOT\AdventureWorksDW2014.bak' WITH FILE = 1,  
	MOVE N'AdventureWorksDW2014_Data' TO 
		N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLDOT_2014\MSSQL\DATA\AdventureWorksDW2014_Data.mdf',
	MOVE N'AdventureWorksDW2014_Log' TO 
		N'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLDOT_2014\MSSQL\DATA\AdventureWorksDW2014_Log.ldf',
NOUNLOAD,  STATS = 5
GO</pre>
<p>Výsledek by měl vypadat takto:</p>
<p><img decoding="async" class="alignnone size-full wp-image-938" src="https://sqlpowered.com/wp-content/uploads/2015/06/RestoringAdwentureWorks2014Multidimensional1.png" alt="RestoringAdwentureWorks2014Multidimensional1" width="295" height="299" /></p>
<h2><strong>3. Nastavení potřebných oprávnění pro účet služby Analysis Services</strong></h2>
<p>Abychom v následujícím kroku mohli provést nasazení projektu a přepočet kostek, musí mít účet, pod kterým běží analytické služby, přístup k relační databázi AdwentureWorksDW2014, obnovené v předchozím kroku.Pro nastavení impersonace lze sice využít i jiné možnosti (účet uživatele či specifický účet), ale využití účtu analytických služeb může považovat za doporučený postup z pohledu bezpečnosti.</p>
<p>Pod jakým systémovým účtem běží analytické služby lze jednoduše zjistit pomoci nástroje SQL Server 2014 Configuration Manager, který lze spustit pomocí odpovídající ikony ve složce SQL Serveru 2014 v nainstalovaných programech nebo z příkazového řádku (Windows + R) zadáním příkazu <em>SQLServerManager12.msc:</em></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-943" src="https://sqlpowered.com/wp-content/uploads/2015/06/RestoringAdwentureWorks2014Multidimensional2.png" alt="RestoringAdwentureWorks2014Multidimensional2" width="1007" height="309" /></p>
<p>V seznamu služeb SQL Serveru vyhledáme odpovídající instanci <em>SQL Server Analysis Services. </em>V případě, že máme na počítači nainstalováno více různě pojmenovaných instancí, poznáme správnou instanci podle textu v závorkách, v našem případě <em>SQLDOT_2014</em>. Služba běží pod systémovým účtem NT Service\MSOLAP$SQLDOT_2014. To je účet, který hledáme a kterému musíme přidat příslušná oprávnění pro přístup ke zdrojové databázi AdwentureWorksDW2014.</p>
<p>Přidání oprávnění můžeme provést pomocí Management Studia:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-945 size-full" src="https://sqlpowered.com/wp-content/uploads/2015/06/CrateNewLoginForSSAS.png" alt="CrateNewLoginForSSAS" width="296" height="363" /></p>
<p>Vyplníme název loginu:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-952" src="https://sqlpowered.com/wp-content/uploads/2015/06/FillLoginDetailForSSAS1.png" alt="FillLoginDetailForSSAS" width="704" height="632" /></p>
<p>Pro login vytvoříme v databázi AdwentureWorkDW2014 uživatele, kterému přiřadíme roli db_owner:</p>
<p><a href="https://sqlpowered.com/wp-content/uploads/2015/06/CreateUserForSSASLogin.png"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-953" src="https://sqlpowered.com/wp-content/uploads/2015/06/CreateUserForSSASLogin1.png" alt="CreateUserForSSASLogin" width="704" height="632" /></a></p>
<p>Po uložení bychom měli vidět v Management studiu, že v databázi AdwentureWorksDW2014 by vytvořen nový uživatel NT Service\MSOLAP$SQLDOT_2014, který je mapován na login stejného jména:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-955 size-full" src="https://sqlpowered.com/wp-content/uploads/2015/06/Screenshot-28.-6.-2015-21_25_13.png" alt="Screenshot - 28. 6. 2015 , 21_25_13" width="407" height="666" /></p>
<p>Nyní je dokončená konfigurace na straně relační databáze a můžeme pokračovat v analytickému projektu a jeho nasazení.</p>
<h2>4. Nasazení analytického projektu</h2>
<p>Na disku vyhledáme rozbalený soubor <em>AW Multidimensional Models SQL Server 2014.zip</em>, který jsme stáhli v bodě 1 s spustíme soubor <em>AWDW2014Multidimensional-EE.sln</em>, který mám otevře analytický projekt v SQL Server Data Tools. Pokud je naše testovací instance verze Enterprise nebo Developer, otevřeme soubor z adresáře Enterprise, v případě Standard edice ze stejnojmenného adresáře.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-957 size-full" src="https://sqlpowered.com/wp-content/uploads/2015/06/AWDW2014MultidimensionalSolution1.png" alt="AWDW2014MultidimensionalSolution1" width="544" height="121" /></p>
<p>Projekt:</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-959 size-full" src="https://sqlpowered.com/wp-content/uploads/2015/06/AWDW2014MultidimensionalProject.png" alt="AWDW2014MultidimensionalProject" width="272" height="242" /></p>
<p>V otevřeném projektu budeme muset provést změnu dvou nastavení z výchozích hodnot: připojovací řetězec k relační databázi AdwentureWorks2014 a zadání cílové instance analytických služeb, na kterou má být projekt nasazen.</p>
<p>Pro změnu připojovacího řetězce k relační databázi v Solution Exploreru dvakrát poklepeme na datový zdroj AdwentureWorkdDW2014.ds:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-991" src="https://sqlpowered.com/wp-content/uploads/2015/06/ChangingDataSourceConnectionString.png" alt="ChangingDataSourceConnectionString" width="272" height="260" /></p>
<p>Objeví se nám možnosti nastavení datového zdroje:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-993" src="https://sqlpowered.com/wp-content/uploads/2015/06/EditConnectionStringProperties.png" alt="EditConnectionStringProperties" width="666" height="717" /></p>
<p>Klikneme na tlačítko edit a zobrazí se dialog, kde můžeme vyplnit konkrétního název instance SQL Serveru, jméno databáze i případné nastavení zabezpečení:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-996" src="https://sqlpowered.com/wp-content/uploads/2015/06/ChangingConnectionStringProperties.png" alt="ChangingConnectionStringProperties" width="600" height="599" /></p>
<ol>
<li>Do pole <em>Server name</em> zadáme jméno instance, které je stejné jako výše, kdy jsme prováděli obnovu relační databáze AdwentureWorksDW2014.</li>
<li>Zkontrolujeme, že jméno zdrojové databáze je uvedeno správně.</li>
<li>Tlačítkem <em>Test Connection</em> ověříme, že lze s nastavenými parametry provést úspěšné připojení.</li>
</ol>
<p>V nastavení zabezpečení není třeba nic měnit, pokud jsme na našem testovacím počítačí lokální administrátoři. V opačném případě je třeba zadat jiný uživatelský účet nebo SQL Login a heslo.</p>
<p>Po změně nastavení datového zdroje nastavíme na úrovni projektu náš cílový analytický server, na který budeme v závěru provádět nasazení projektu:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-998" src="https://sqlpowered.com/wp-content/uploads/2015/06/EditMultidimensionalProjectProperties.png" alt="EditMultidimensionalProjectProperties" width="269" height="255" /></p>
<p>Na vyznačenou položku klikneme pravým tlačítkem a vybereme možnost <em>Properties</em> úplně dole.</p>
<p>Ve zobrazeném dialogu přejdeme na záložku Deployment a v sekci <em>Target</em> nastavíme do řádku <em>Server</em> jméno instance analytických služeb, které je shodné s názvem relační instance. Jméno databáze ponecháme přednastavené, případně můžeme změnit, ale je toho třeba dbát v navazujících krocích.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-999" src="https://sqlpowered.com/wp-content/uploads/2015/06/DeploymentProperties.png" alt="DeploymentProperties" width="702" height="427" /></p>
<p>Po uložení dialogu klikneme pravým tlačítkem na složku solution a zvolíme možnost Deploy:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1001" src="https://sqlpowered.com/wp-content/uploads/2015/06/DeployMultidimensionalProject.png" alt="DeployMultidimensionalProject" width="565" height="429" /></p>
<p>Pokud jsme vše správně nastavili, dojde nyní k nasazení projektu na analytický server s jeho zprocesování, tedy nahrání relačních dat ze zdrojové databáze do dimenzí a analytických kostek. Celý proces může trvat několik minut a pokud vše proběhlo správně, měli bychom vidět následující dialog:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1002" src="https://sqlpowered.com/wp-content/uploads/2015/06/SuccessfullDeployementScreen.png" alt="SuccessfullDeployementScreen" width="517" height="509" /></p>
<p>Tím jsme úspěšně dokončili nasazení modelového multidimensionálního projektu a v dalším kroku si ukážeme, jak ověřit funkčnost připojením přes Management Studio a z Excelu.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sqlpowered.com/instalace-multidimensionalni-databaze-adwentureworks-2014/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ochrana databáze před smazáním</title>
		<link>https://sqlpowered.com/ochrana-databaze-pred-smazanim/</link>
					<comments>https://sqlpowered.com/ochrana-databaze-pred-smazanim/#respond</comments>
		
		<dc:creator><![CDATA[Jan Dvořák]]></dc:creator>
		<pubDate>Tue, 05 May 2015 05:54:32 +0000</pubDate>
				<category><![CDATA[DBA]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[databases]]></category>
		<guid isPermaLink="false">https://sqlpowered.com/?p=640</guid>

					<description><![CDATA[Občas se zkrátka a dobře nedá vždy zabránit tomu, že přijde seshora příkaz, aby ten a ten dostal admin práva na produkci. Jako správný paranoidní DBA to ale nenecháte jen tak a pojistíte si alespoň ten nejhorší možný scénář: že se vetřelec, ať už omylem nebo úmyslně, pokusí smazat jednu...]]></description>
										<content:encoded><![CDATA[<p>Občas se zkrátka a dobře nedá vždy zabránit tomu, že přijde seshora příkaz, aby ten a ten dostal admin práva na produkci. Jako správný paranoidní DBA to ale nenecháte jen tak a pojistíte si alespoň ten nejhorší možný scénář: že se vetřelec, ať už omylem nebo úmyslně, pokusí smazat jednu nebo více klíčových produkčních databází. <span id="more-640"></span></p>
<p>Jak na to? Jednoduše pomocí DDL <a href="https://docs.microsoft.com/en-us/sql/t-sql/statements/create-trigger-transact-sql?view=sql-server-2017" target="_blank" rel="noopener noreferrer">triggeru</a> na úrovni serveru, ve kterém odchytíme událost DROP_DATABASE a po vypsání informační zprávy provedeme ROLLBACK operace:</p>
<pre class="lang:tsql decode:true">SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TRIGGER [trg_DDL_DropDatabasePreventer]
ON ALL SERVER
FOR DROP_DATABASE
AS
BEGIN

    DECLARE @DbName varchar(128)
    SELECT @DbName = EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]','nvarchar(max)')

    IF @DbName IN ('ProdDB')
    BEGIN
        PRINT 'Production database ' + @DbName + ' cannot be dropped!'
        PRINT 'Run &gt;&gt; DISABLE TRIGGER trg_DDL_DropDatabasePreventer ON ALL SERVER &lt;&lt; first.'
        PRINT 'Reenable!!! the trigger with &gt;&gt; ENABLE TRIGGER trg_DDL_DropDatabasePreventer 
                  ON ALL SERVER &lt;&lt;'
        IF @@TRANCOUNT &gt; 0
            ROLLBACK TRANSACTION
    END

END
GO

ENABLE TRIGGER [trg_DDL_DropDatabasePreventer] ON ALL SERVER
GO</pre>
<p>Záleží jen na Vaší fantazii, jak peprná ona informační zpráva bude a zda tam třeba ještě pro větší zábavu nepřihodíte volání <a href="https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-send-dbmail-transact-sql?view=sql-server-2017" target="_blank" rel="noopener noreferrer">sp_send_dbmail</a> na nadřízeného;)</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sqlpowered.com/ochrana-databaze-pred-smazanim/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
