25. 12. 2017
6. 6. 2017
Hromadné přidání práv uživateli na stored procedury
Pouze změňte Název databáze a USER, za vaše údaje.
select 'GRANT EXECUTE ON ['+name+'] TO <USER>'
from sys.objects
where type ='P'
and is_ms_shipped = 0
A následně se vygenerují skripty - tyto spustit
GRANT EXECUTE ON [sp_Lock] TO USER
10. 11. 2016
MSSQL - právo execute na funkce
Tomáš Adl
16:25
databáze, microsoft, mssql, návody, SQL
No comments
Pokud chcete dát některému uživateli právo Execute na funkce, musíte se přihlásit jako admin databáze a teprve potom k dané funkci přiřadit uživatele.
Pokud se totiž přihlásíte jako běžný uživatel, který zatím tato práva nemá, funkce neuvidíte, pouze systémem definované.
Přidat práva můžete ručně anebo příkazem.
Případně pravým tl. myši a vlastnosti. Zde vyberete uživatele, kterému chcete právo přidat a následně u něj zaškrtnete i toto právo.
A kde jsou funkce uloženy?
28. 10. 2016
Tomáš Adl
16:40
databáze, microsoft, SQL
No comments
Přestože s databázemi pracuji denně, jsou některé věci, které stále neznám. Respektive, hodně věcí, které neznám. Tuto první zkoušku si chci udělat, protože si nejen zopakuji to co znám, ale zároveň se musím naučit něco nového. A hlavně je to po dlouhé době po škole první zkouška, na kterou se budu zase učit :)
První problém na který jsem narazil, jsou zdroje, ze kterých bych se mohl učit. Hledáním na google jsem narazil na pár zdrojů - hlavně otázek, které by se mohli ve zkoušce objevit. Toto mi pomohlo se zorientovat, co můžu očekávat. Z těchto otázek jsem si vypsal věci, na které jsem neznal odpovědi a začal hledat co to vlastně znamená.
Student Study Guide přímo od MS - https://goo.gl/cOJT90www.dumps4shared.com - https://goo.gl/0z9UbI
Dále jsem si taky projel kurz od MS na MVA - Database Fundamentals (odkaz dole).
Kurz můžete absolvovat u některého z partnerů MS, já jej budu dělat u Alef Nula - https://goo.gl/mB6e8j
Kurz je v angličtině a probíhá v uzavřené místnosti.
V dalším článku sepíšu seznam věcí, které mi dělali problém a zároveň se na ně pokusím uvést i odpovědi.
Zdroje
Odkaz na zkoušku - https://www.microsoft.com/en-us/learning/exam-98-364.aspx
Microsoft Virtual Academy - Database Fundamentals - https://goo.gl/WyuhQ1
Dříve web sqlproblbce.cz, dnes vladimirklaus.cz - https://goo.gl/90bsGR
Kanál na youtube, kde najdete 135 videí a všechny o SQL - https://goo.gl/ILFTEp
21. 8. 2016
Jak změnit heslo uživateli přes SQLCMD
Níže uvedený příkaz slouží ke změně hesla uživateli, přes kterého se přávě přihlašujete. Jednoduše si zapnětě příkazový řádek a v něm tento příkaz napište. Uvozovky samozřejmě vynechejte. Po napsání budete přihlášeni k serveru již pod novým heslem.
Zdroje:
https://msdn.microsoft.com/en-us/library/ms162773.aspx
27. 7. 2016
Vypnutí a zapnutí automatického doplňování dat do ID sloupce
Tomáš Adl
15:46
databáze, microsoft, návody, SQL
No comments
váš skript
SET IDENTITY_INSERT Název_tabulky OFF
Tuto funkci můžete použít současně pouze u jedné tabulky. Tzn., pokud funkci u tabulky nevypnete, nepůjde jinde použít.
16. 7. 2016
Skript pro namapování rolí uživateli v databázi MS SQL
Tomáš Adl
15:51
databáze, microsoft, mssql, návody, SQL
No comments
Přes studio stačí kliknout pravým tl. myši na uživatele -> User mapping -> a zde uživateli přiřadit různé role pro konkrétní databáze.
Scriptem si ukážeme vytvoření uživatele, stanovení hesla, přiřazení databáze a namapování rolí.
GO
Povolení uživatele
GO
GO
Přidání konkrétních rolí
GO
USE [AleFIT_MAB]
ALTER ROLE [db_datawriter] ADD MEMBER [jmeno_uzivatele]
GO
15. 7. 2016
Instalace MS SQL 2012 pomocí Powershell a SQL CMD
Tomáš Adl
15:54
databáze, microsoft, mssql, návody, SQL, sqlcmd
No comments
Nejprve budete potřebovat ISO soubor s MS SQL server. Je možné, že to funguje i s verzí Express, ale toto nemám odzkoušené.
ConfigurationFile.ini
Spusťte si samotnou instalaci MS SQL a proklikejte ji tak, jak chcete aby vypadala, až do stavu "Ready to Install". Nebojte se, že ji na začátku nevidíte, klikejte dál, ona se objeví. Zde dole uvidíte cestu k ConfigurationFile.ini souboru, který budete potřebovat. Tento si někam uložte a následně z něj udělejte ještě kopii. To proto, že ho budeme upravovat a pokud se budete chtít k původní verzi vrátit, bude lepší, když to budete mít zálohované, než celý proces proklikávání instalace absolvovat znovu.Nyní můžete instalaci nadobro přerušit, pokračovat se bude už jen přes Powershell.
Soubor vypadá nějak takto
V souboru uvidíte spoustu definic, které je možné rozlousknout tady. Ale to důležité je, že tam musíte ještě něco přidat, upravit a taky něco smazat. To proto, aby to nebylo zase tak jednoduché...
Odstraňte
UIMODE="Normal"
Upravte
QUIET="False" => QUIET="True"
FEATURES=SQLENGINE,CONN,SSMS,ADV_SSMS,SNAC_SDK => toto jsou vybrané Features, které chcete nainstalovat. Jestliže jste si vybrali jiné, pak toto ponechte jak máte.
INDICATEPROGRESS="False" => INDICATEPROGRESS="True"
ENABLERANU="True" => ENABLERANU="False"
Přidejte
ASSYSADMINACCOUNTS="Administrator"
SAPWD="Test12345"
Powershell scripty
Povolení spouštění scriptůInstalace SQL ODBC, které můžete stáhnout přímo od Microsoftu zde. Instalace proběhne na pozadí a nainstalují se všechny Features z balíčku.
Instalace SQL CMD, které můžete stáhnout přímo od Microsoftu zde. Instalace proběhne také na pozadí a akceptují se Licenční podmínky (EULA).
Samotná instalace MS SQL probíhá sice přes Powershell, ale je realizována SQL CMD. Je také nutné mít ISO SQL serveru. Do konzole Powershellu vám budou vypisovány logy z instalace. K instalaci potřebujete ConfigurationFile.ini, který vygenerujete pomocí instalačního balíčku SQL.
Zdroje:
https://technet.microsoft.com/en-us/library/ms144259(v=sql.110).aspx
https://msdn.microsoft.com/en-us/library/dd239405.aspx
https://technet.microsoft.com/en-us/library/ms143219(v=sql.110).aspx
https://technet.microsoft.com/cs-cz/library/ms144259(v=sql.110).aspx
8. 7. 2016
SQL skript pro vložení textu, který je na více řádcích
Ať už použijete update nebo insert, důležitá je syntaxe, která souvisí přímo s textem.
text
na
více
řádcích
'
where id = 60299
Všimněte si apostrofů, který začínají a ukončují text, tak jako kdybyste použili klasický skript.
26. 6. 2016
Čím se připojit k MySQL databázi?
Jelikož MySQL patří pod Oracle a tato aplikace je taky od nich, je nutné mít zde účet a před stáhnutím se přihlásit/zaregistrovat.
Nastavení je velice jednoduché a intuitivní. Takto vypadá hlavní okno, kde uvidíte svoje connections k jednotlivých databázím či schématům.
Nastavení připojení k DB je jednoduché. Stačí vyplnit Název, IP adresu, Jméno, Heslo a případně Defaultní schéma. Pokud chcete, můžete použít i konfiguračního průvodce (možnost vlevo dole).
Může se stát, že si připojení sice nastavíte, ale nepřipojíte se. A aplikace vám bude vyhazovat chybu s připojením. Toto se mi stalo, protože jsem měl nainstalovanou starší verzi MySQL serveru a ten neuměl používat novou autentizaci. V tom případě si zaškrtnětě volbu "Use the old authentication protocol" v záložce Advanced a připojení by mělo projít.
14. 6. 2016
SQL chyba
Tomáš Adl
13:38
databáze, microsoft, mssql, návody, SQL
No comments
nebo taky
VIEW SERVER STATE permission was denied on object ‘server’, database ‘master’.
Msg 297, Level 16, State 1, Line 1
The user does not have permission to perform this action.
Problém je v právech uživatele, pod kterým jste připojeni. Abyste toto mohli vyřešit, je nutné se k databázi přihlásit jako uživatel s právy DBA.
Pro vyřešení použijte tento script. Místo "User" napište název svého uživatele.
GO
GRANT VIEW SERVER STATE TO "USER"
8. 5. 2016
Databázové transakce
Tomáš Adl
12:27
databáze, microsoft, mssql, návody, SQL, Windows
No comments
Ta zajistí, že se příkaz provede, ale "nezapíše", dokud vy to neřeknete anebo než se odpojíte od databáze.
Jestliže se rozhodnete transakce využívat, vždy před script zapište Begin transaction. To zajistí, že příkaz nebude zapsán, dokud jej nepotvrdíte nebo neodmítnete.
Pozor ale na jednu věc, dokud neuděláte commit nebo rollback, tak nikdo jiný nemůže provádět další příkazy! Tzn. že si databázi uzamknete pro sebe. Jakmile provedete commit či rollback, ostatní již mohou začít zase využívat tyto prostředky.
Pokud příkaz, chcete prvést, bude vypadat následovně
- - - váš SQL script - - -
Commit transaction
Pokud se ale rozhodnete příkaz nakonec neprovést a změny chcete vrátit, bude vypadat takto
- - - váš SQL script - - -
Rollback transaction
Více se můžete dozvědět i zde v angličtině: https://www.youtube.com/watch?v=shkt9Z5Gz-U
30. 4. 2016
Odinstalace MS SQL serveru
Řešení
Pokud se vám objeví níže uvedená chyba, vyzkoušejte přejmenovat souborkterý se nachází zde:
Je možné, že soubor budete mít v mírně jiném umístění, ale důležité je, abyste jej přejmenovali/smazali, aby ho instalátor nemohl použít a vytvořil si nový.
Odkazy na další řešení (v AJ)
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/ddfce5d2-edce-42fa-b8eb-75e8406ad59f/cant-get-sql-2008-express-installed?forum=sqlexpresshttp://sqlblog.com/blogs/aaron_bertrand/archive/2010/10/25/fun-with-software-uninstalling-sql-server-2008-r2-evaluation-edition.aspx
Chyba
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.************** Exception Text **************
System.Configuration.ConfigurationErrorsException: An error occurred creating the configuration section handler for userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified. (C:\Users\extadm_mbiskox\AppData\Local\Microsoft_Corporation\LandingPage.exe_StrongName_ryspccglaxmt4nhllj5z3thycltsvyyx\11.0.0.0\user.config line 5) ---> System.IO.FileNotFoundException: Could not load file or assembly 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.
File name: 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
at System.Configuration.TypeUtil.GetTypeWithReflectionPermission(IInternalConfigHost host, String typeString, Boolean throwOnError)
at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.Init(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
at System.Configuration.RuntimeConfigurationRecord.RuntimeConfigurationFactory.InitWithRestrictedPermissions(RuntimeConfigurationRecord configRecord, FactoryRecord factoryRecord)
at System.Configuration.RuntimeConfigurationRecord.CreateSectionFactory(FactoryRecord factoryRecord)
at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
--- End of inner exception stack trace ---
at System.Configuration.BaseConfigurationRecord.FindAndEnsureFactoryRecord(String configKey, Boolean& isRootDeclaredHere)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.ClientSettingsStore.ReadSettings(String sectionName, Boolean isUserScoped)
at System.Configuration.LocalFileSettingsProvider.GetPropertyValues(SettingsContext context, SettingsPropertyCollection properties)
at System.Configuration.SettingsBase.GetPropertiesFromProvider(SettingsProvider provider)
at System.Configuration.SettingsBase.GetPropertyValueByName(String propertyName)
at System.Configuration.SettingsBase.get_Item(String propertyName)
at System.Configuration.ApplicationSettingsBase.GetPropertyValue(String propertyName)
at System.Configuration.ApplicationSettingsBase.get_Item(String propertyName)
at Microsoft.SqlServer.Configuration.LandingPage.LandingPageForm.OnLoad(EventArgs e)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.8000 (FX35W81RTMGDR.050727-8000)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
LandingPage
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2100.60 ((SQL11_RTM).120210-1917 )
CodeBase: file:///C:/Program%20Files/Microsoft%20SQL%20Server/110/Setup%20Bootstrap/SQLServer2012/x64/LandingPage.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.7905 (win9rel.050727-7900)
CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.7905 (win9rel.050727-7900)
CodeBase: file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.7905 (win9rel.050727-7900)
CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Microsoft.SqlServer.Configuration.Sco
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2100.60 ((SQL11_RTM).120210-1917 )
CodeBase: file:///C:/Program%20Files/Microsoft%20SQL%20Server/110/Setup%20Bootstrap/SQLServer2012/x64/Microsoft.SqlServer.Configuration.Sco.DLL
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.7905 (win9rel.050727-7900)
CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.SqlServer.Chainer.Infrastructure
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2100.60 ((SQL11_RTM).120210-1917 )
CodeBase: file:///C:/Program%20Files/Microsoft%20SQL%20Server/110/Setup%20Bootstrap/SQLServer2012/x64/Microsoft.SqlServer.Chainer.Infrastructure.DLL
----------------------------------------
Microsoft.SqlServer.Deployment
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2100.60 ((SQL11_RTM).120210-1917 )
CodeBase: file:///C:/Program%20Files/Microsoft%20SQL%20Server/110/Setup%20Bootstrap/SQLServer2012/x64/Microsoft.SqlServer.Deployment.DLL
----------------------------------------
Accessibility
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.7905 (win9rel.050727-7900)
CodeBase: file:///C:/windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Microsoft.SqlServer.Management.Controls
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2100.60 ((SQL11_RTM).120210-1917 )
CodeBase: file:///C:/Program%20Files/Microsoft%20SQL%20Server/110/Setup%20Bootstrap/SQLServer2012/x64/Microsoft.SqlServer.Management.Controls.DLL
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.7905 (win9rel.050727-7900)
CodeBase: file:///C:/windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
2. 4. 2016
Export tabulky včetně dat z MSSQL databáze do scriptu
Tomáš Adl
22:43
databáze, microsoft, mssql, návody, SQL
No comments
Klepněte pravým tl. myši na databázi, ze které chcete data exportovat. Následně vyberte Tasks -> Generate Scripts...
Objeví se průvodce, který vás provede krok po kroku.
Na další obrazovce můžete vybrat, jestli chcete provést export celé databáze včetně všech objektů. Nyní ale vyberte pouze jednu tabulku, v tomto případě "dbo.autori".
Zde vyberte první možnost "Save scripts to a specific location".
Uložit data můžete jako tři typy
- soubor
- do paměti (následně stačí dát to textového editoru CTRL+V)
- script do nového query okna
Nyní vyberte poslední možnost, ale ještě před postupem dále, klepněte na Advanced.
V tomto okně musíte zadat u položky "Types of data to script: Schema and data". Defaultně je totiž nastaven export pouze Schema.
Zobrazí se sumář toho, co a jak se bude provádět a kam ukládat.
Vyčkejte dokud tento script neskončí.
Pokud je vše v pořádku, zobrazí se u každého kroku Success.
Výsledný script pak vypadá následovně. První se vytvoří tabulka a následně se do ní insertují data.
Pokud byste jej chtěli použít v jiné databázi než je název "SeznamKnih", stačí tento název přepsat nebo první dva řádky vymazat.
19. 3. 2016
Co znamená nastavení Collation v MSSQL?
Jednoduše řečeno, určuje abecední řazení objektů a výsledků hledání.
Například tradiční španělský Collation seřadí slova začínající na "ch" až za všechna slova začínající na "c". U nás to máme podobné a slova začínající na "ch" řadíme až za písmeno "h".
Zde je obrázek z nově vytvořených databází, kdy první s názvem "TEST" má Collation "CZECH_CI_AS" a řadí tedy dle české abecedy (všimněte si tabulky chram). Druhá databáze "TEST2" má Collation "SQL_LATIN1_GENERAL_CP1_CI_AS" a řadí dle latinky (všimněte si znovu tabulky chram).
Rozdíl je patrný na první pohled. Ovšem i další znaky nám udávají nějaké nastavení.
Vězměme si jako příklad "SQL_LATIN1_GENERAL_CP1_CI_AS"
LATIN1 = jakou znakovou sadu bude využívat, zde Latin1, což v podstatě znamená ASCI
CP1 = Code Page 1' - technicky toto překládá do kódování 1252
CI = Case Insensitive - což česky znamená, že nebere ohled na malá a velká písmena ("A" je stejné jako "a")
AS = Accent Sensitive, neboli "ü" se nerovná běžnému "u"
Pokud se vám stane jako mě, že si vyberete špatný Collation při vytvoření databáze, existují možnosti, jak jej změnit, aniž byste museli databázi mazat a znovu vytvářet. Zatím se mi ale nepodařilo nějaký prakticky otestovat, tak aby byl jednoduše funkční.
Jestli chcete téma prostudovat více do hloubky, doporučuji tento blog anebo přímo MSDN dokumentaci.
29. 2. 2016
SQL - JOIN
Tomáš Adl
19:45
databáze, mssql, SQL
No comments
INNER JOIN / JOIN
Spojení pouze toho, co mají obě tabulky společné.Příklad
FROM Tabulka1
JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
LEFT OUTER JOIN / LEFT JOIN
Vypíše data, která jsou v levé tabulce + společné.SELECT [názvy sloupců]
FROM Tabulka1
LEFT JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
RIGHT OUTER JOIN / RIGHT JOIN
Vypíše data, která jsou v pravé tabulce + společné.SELECT [názvy sloupců]
FROM Tabulka1
RIGHT JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
FULL OUTER JOIN / FULL JOIN
Vypíše data, která jsou v levé + pravé tabulce + společné.SELECT [názvy sloupců]
FROM Tabulka1
FULL JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
CROSS JOIN
"Vynásobí" data mezi oběma tabulkami. V levé je 5 záznamů a v pravé jsou 3. Výsledkem je celkem 15 záznamů.FROM Tabulka1
CROSS JOIN Tabulka2
LEFT JOIN - s příznakem WHERE
Vypíše data, která jsou pouze v levé tabulce a nejsou společná.FROM Tabulka1
LEFT JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
WHERE Tabulka1.Sloupec IS NULL
RIGHT JOIN - s příznakem WHERE
Vypíše data, která jsou pouze v pravé tabulce a nejsou společná.FROM Tabulka1
RIGHT JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
WHERE Tabulka1.Sloupec IS NULL
FULL JOIN - s příznakem WHERE
Spojení všeho co je v levé a v pravé tabulce. To co mají společné, se nepřidá.FROM Tabulka1
RIGHT JOIN Tabulka2
ON Tabulka1.Sloupec = Tabulka2.Sloupec
WHERE Tabulka1.Sloupec IS NULL
OR Tabulka2.Slupec IS NULL
31. 1. 2016
Jak zjistit velikost MS SQL databáze?
Tomáš Adl
19:31
databáze, návody, SQL
No comments
Ukáže vám, kolik se zrovna alokuje a taky jaká je nastavená maximální velkost.
exec sp_helpdb @dbname= 'Moje_Databaze'
A výsledek...
Ve sloupci filename najdete i cestu k oběma souborům.
Pokud se budeme bavit o databázi, myslí se tím nejen data, ale i log soubor, tzn. transakční log. Jesliže provádíte kompletní zálohu (full backup), tak se zálohuje obojí.
28. 1. 2016
Jak obnovit MS SQL databázi ze zálohy typu *.bak
Jak zazálohovat databázi ručně nebo automaticky jsme si již ukázali. Nyní přišla řada na její obnovu. Díky tomu můžete zjistit, jestli se zálohování provádí správně.
Otevřete si Management Studio, klikněte na Database -> Restore Database.
Vyberte umístění souboru.
Vyberte Add a najděte zálohu.
Rekapitulace a pouze už stačí je kliknout na OK a začne obnova.
Po dokončení doporučuji se ještě zkusit přihlásit uživatelem přímo k této databázi, abyste zjistili, jestli vše funguje správně.
27. 1. 2016
Jak vytvořit uživatele v MS SQL Server 2014
Tomáš Adl
19:24
databáze, microsoft, mssql, návody, SQL
No comments
Vytvoření uživatele v MS SQL 2014 musíte provést v Security -> Login -> New Login. Vytvořit se dá uživatel i přímo v konkrétní databázi, ale ten vám potom nemusí fungovat korektně.
V sekci General vyberte možnost SQL Server authentication, vyplňte Login, Password a pokud už znáte heslo, které uživatel bude mít, tak odškrtněte User must change password... Tím říkáte, že není nutné po první přihlášení heslo měnit. Pokud navíc nechcete, aby heslu někdy skončila platnost, odškrtněte i Enforce passord expiration.
Jako Default database můžete ponechat master, anebo vyberte rovnou tu, do které bude mít přístup.
V Server roles ponechte volbu Public.
V User Mapping vyberte vaši vytvořenou databázi a jako Defauld Schema mu vyberte dbo. Níže pak vyberte db_owner a public.
Nyní se vyzkoušejte s novým uživatelem připojit k Management studiu. File -> Disconnect...
Nyní znovu File -> Connect... a v Authentication vyberte "SQL Server...", zadejte Login a Password.
Občas se může stát, že vám nový uživatel nebude fungovat, prostě se s ním nelze připojit. Přihlaste se tedy pod uživatelem pod kterým vám to šlo a pravým tl. myši vyberte databázi a dejte ji restartovat. Restart trvá pár vteřin a následně můžete připojení s novým uživatelem vyzkoušet znovu.
25. 12. 2015
Automatická záloha MS SQL Express databáze
1. Stáhněte si tento soubor Automate-SQL-Express-Backup.zip a rozbalte si jej přímo na disk C.
Důležité kroky jsou zapsány v textovém souboru Read Me Info.txt, ovšem v angličtině.
2. Vytvořte stored proceduru v master databázi. Celý text je uložen na cestě: c:\Backups-All\Automate\SQL Script\Automate SQL Express backups.rtf
Otevřete si Management studio, klepněte na New Query a jednoduše vezměte vše z výše uvedeného souboru a zkopírujte do MSSQL. Následně klepněte na Execute. Pokud vše prošlo správně, měli byste nyní dole pod příkazem vidět text "Command(s) completed seccessfully."
3. Pokud máte více databází na serveru a chcete zálohovat pouze některé z nich, je nutné ve stored proceduře upravit script, ve kterém řeknete, které databáze se zálohovat nebudou (tzv. exclude - vyloučit). Projděte stromem v Management studiu -> Databases -> System Databases -> Master -> Programmability -> Stored Procedures -> pravým tl. myši na dbo.sp_BackupDatabases a vyberte Modify.
Tímto se script spustí a vy ho již můžete upravovat. Najděte sekci "Filter out databases..." a přidejte zde název DB, kterou chcete vyjmout. Jakmile je hotovo, klepněte zase na Execute.
To by byly hotové věci okolo databáze. Nyní se pustíme do nastavení plánovaných úloh, které nám budou automaticky databáze zálohovat a mazat.
4. Otevřete si vlastnosti tohoto počítače a najděte název počítače, na kterém úloha poběží. Můj se jmenuje "vm14081".
5. Tento název vložte do všech čtyř souborů ve složce c:\Backups-All\Automate\Schedul-Task-xml\ místo názvu TECH.PETERCRYS.COM
- 12AM-backup.xml
- 12PM-backup.xml
- DEL12AM.xml
- DEL12PM.xm
6. Spusťte si Plánovač úloh (Task scheduler) a následně klepněte pravým tl. myši na Knihovnu a vyberte Importovat úlohu.
Najděte XML soubory, které jste před chvílí upravovali a jeden po druhém naimportujte.
Po importu jednotlivých částí si můžete upravit hodinu či den, kdy se má tato záloha nebo odmazání provádět. Aktuálně je to nastaveno na zálohu ve 12 hodin odpoledne a o půlnoci každý den. Následně pak odmazávání je nastaveno takto:
DEL12AM - odmaže zálohy 12AM-backup vždy ve dny 1, 11, 21 a posledního v 11hod.
DEL12PM - odmaže zálohy 12PM-backup vždy ve dny 6, 16, 26 ve 23hod.
Časy záloh a odmazání si upravte taky dle velikosti vašeho disku, aby se nestalo, že sice budete zálohovat, ale už nebudete odmazávat a disk si zaplníte během pár dní.
Mě to prvně přes naplánovanou úlohu nefungovalo a protože se příkazová řádka ihned zavřela, nestihl jsem ani postřehnout v čem je problém. Otevřel jsem si tedy příkazovou řádku a vložil příkaz ručně. Ihned potom se objevila chyba "Cannot open backup device. Operating System error 5". Problém je v zapisování do složky uvedené v .bat souboru.
Napravit se to dá docela jednoduše. Otevřete si Služby (neboli Services).
Zde najděte službu MS SQL a zjistitě přes jakého uživatele se spouští. V mém případě to je MSSQL$SQLEXPRESS.
Tomuto uživateli je nyní nutné přidat možnost zápisu do této složky. Najděte si ji a klepkněte na ni pravým tl. myši a vyberte Vlastnosti, poté záložku Zabezpečení -> Upravit -> Přidat -> Upřesnit -> Najít.
Najděte stejného uživatele, který spouští MS SQL Express službu a potvrďte OK.
Nakonec mu ještě přidejte veškerá práva -> Úplné řízení.
Video návod v angličtině najdete zde. A info od Microsoftu zase zde.
Ještě malé upozornění...
Po změně cesty do jiného adresáře, mi přestalo zálohování fungovat. Nezjistil jsem čím to bylo, ovšem pomohlo vytvořit nový adresář, kam jsem místo pomlčky "-" dal podtržítko "_". Následně pak už vše zase fungovalo jak má.