Jak na MS SQL – uživatelé a práva
MS SQL disponuje pokročilou obsluhou uživatelů a jejich přístupových práv. Správu můžete provádět buď pomocí jazyka Transact-SQL nebo v grafickém rozhraní SQL Enterprise Manager.
Přístupová práva uživatelů
Srovnání s operačním systémem: Při použití souborového systému pro ukládání dat lze uživatelům přidělit přístupová práva k jednotlivým souborům, ale vždy pouze k souboru jako celku. Operační systém neumožňuje omezovat přístup k datům podle obsahu, ale jen podle toho, ve kterém souboru jsou data uložena.
Srovnání s desktopovou databází Microsoft Access: Ta nenabízí nějakou striktní diferenciaci přístupu k databázi ani sofistikované způsoby zabezpečení.
Ve víceuživatelských databázových systémech lze definovat pohledy na obsah jednotlivých tabulek pro každého uživatele různě. Také lze určit množinu operací, které může uživatel nad daty vykonávat. Ve vztahu k datům a právům k nim patří každý uživatel do jedné z těchto pomyslných skupin:
– administrátor,
– vlastník databáze,
– běžný uživatel.
Přístupová práva v MS SQL
MS SQL může pracovat ve dvou režimech autentifikace, Integrated Windows Authentication nebo SQL Server Authentication. Pro použití ve webových aplikacích doporučuji jedině SQL Server Authentication. V tomto režimu si MS SQL drží vlastní databázi uživatelů, která je na uživatelích operačního systému nezávislá. Již při instalaci zvolíte, který režim se bude používat.
Po instalaci MS SQL se v systému nalézá jen uživatel sa s heslem, které jste mu určili během instalace. Je třeba přidat uživatele, jejich hesla, a přidělit jim přístupová práva. Během provozu systému můžete vznést také požadavek na změnu práv nebo zrušení uživatele. Systém řízení přístupu v MS SQL respektuje běžné zvyklosti známé třeba z konkurenčních databázových systémů.
SQL Server Enterprise Manager
Je to další z aplikací, které jsou dodávány společně se serverem. Je určena pro správu databází a umožňuje vykonávat administrátorům a správcům základní administrátorské úkony, jako je vytváření nových databází nebo správa uživatelských účtů včetně příslušných přístupových práv. Jednoduše lze také nastavit strategii údržby a zálohování dat nebo třeba pomocí jednoho z mnoha průvodců navrhnout strukturu tabulky.
Všechny akce, které SQL Server Enterprise Manager provádí nad databázovým systémem podle požadavků uživatele v grafickém prostředí, můžete adekvátně řešit příkazy jazyka SQL, respektive jeho rozšíření Transact-SQL.
Zástupce je v nabídce START | Programy | Microsoft SQL Server | Enterprise Manager.
SQL Enterprise Manager
V levém sloupci označeném Console Root (strom konzoly) rozbalte seznam a označte server, který chcete spravovat. V tomto případě to je Console Root | Microsoft SQL Servers | SQL Server Group | (local) (Windows NT). Pro každý SQL Server (na některých počítačích jich může být více) jsou ve stromu konzole položky: Databases, Data Transformation Services, Management, Replication, Security, Support Services a Meta Data Services. Nás zajímá položka Security.
položka Security
SQL Login a Database user
SQL Login je definice uživatele v rámci daného databázového systému. Jedná se buďto o skutečného uživatele v databázi serveru, nebo o povolení přístupu některému uživateli či skupině v rámci operačního systému. Database user je přiřazení oprávnění daného SQL Loginu k určité databázi.
Založení nového SQL Loginu
Ve stromu konzole se nacházíte v položce Security. Klikněte na Logins. V pravé části okna se objeví seznam na serveru již existujících SQL Loginů. S SQL Enterprise Managerem právě pracujete jako uživatel BUILTIN\Administrators, což je vestavěný SQL Login přiznávající veškerá práva na MS SQL serveru pro uživatele operačního systému patřící do NT skupiny Administrators. Autentifikace BUILTIN\Administrators je nastavena na Windows Authentication, proto při spuštení SQL Enterprise Managera se nemusíte k serveru přihlašovat. Stačí jen být do Windows přihlášen jako jeden z uživatelů, který je členem NT skupiny Administrators. Pro přidání dalšího klikněte pravým a zvolte New Login…
dialog „New Login…“
V záložce General určíte jméno nového SQL Loginu, způsob autentifikace, výchozí databázi a jazyk pro komunikaci. V Server Roles přiřadíte nově vznikajícímu SQL Loginu práva vůči celému databázovému systému (viz dále). Poslední záložka Database Access vám dává možnost určit, ke kterým databázím na serveru bude mít nový SQL Login přístup. V každé z nich musíte zadat, jaký Database user se má založit a s jakými přístupovými právy. Přístupová práva nastavíte tak, že přiřadíte jednu nebo více Database Roles, která v příslušné databázi existuje (viz dále).
záložka „Database Access“
Server Roles
Server Roles na MS SQL jsou obdobou skupin uživatelů v operačních systémech s technologií NT. Server Roles přidělují SQL Loginu práva vztahující se na celý databázový systém. Server Roles přidělujte jen těm uživatelům, kteří mají vykonávat nějakou správu nad celým serverem, běžnému uživateli nemusí být přiřazena. Přidělovat můžete pouze předdefinované Server Roles:
sysadmin – superuživatel, přístup k čemukoli, zahrnuje práva všech následujících rolí
serveradmin – konfiguruje nastavení celého serveru
setupadmin – správa Linked servers a s tím související práva
securityadmin – správa uživatelů a práv
processadmin – správa procesů
dbcreator – vytváření a změna databází
diskadmin – správa diskových souborů
bulkadmin – vykonávání SQL dotazu BULK INSERT
Kterýkoli člen může přidělovat svou roli i dalším.
Database Roles
I v tomto případě máte k dispozici předdefinované role. V každé databázi zvlášť si je můžete také vytvářet, měnit a mazat. Existují dva typy rolí, takzvané Standard Roles, které jsou souborem členů, a Application Roles, které vyžadují heslo. Seznam předdefinovaných rolí typu „Standard Roles“:
public – všichni uživatelé dané databáze jsou do ní zařazeni, reprezentuje výchozí práva pro kohokoli
db_owner – superuživatel vůči dané databázi, zahrnuje práva všech níže uvedených rolí
db_accessadmin – správa uživatelů
db_datareader – povoleno čtení všech dat ve všech tabulkách od všech uživatelů
db_datawriter – povolen zápis, změna a mazání dat ve všech tabulkách od všech uživatelů
db_ddladmin – přidání, změna a odstraňování všech objektů v databázi
db_securityadmin – správa rolí, jejich členů a práv
db_backupoperator – práva na zálohování databáze
db_denydatareader – zákaz čtení dat z databáze
db_denydatawriter – zákaz změny dat v databázi
Opět platí, že kterýkoli člen může přidělovat svou roli ostatním členům.
SQL Login a Server Roles
Pro zařazení/vyřazení otevřete Console Root | Microsoft SQL Servers | SQL Server Group | (local) (Windows NT) | Security | Server Roles. V pravé části označte roli, klikněte pravým myšítkem a zvolte Vlastnosti. V dialogu můžete přidávat/odebírat z dané role uživatele. Druhou možností je otevření seznamu uživatelů („Logins“), opět kliknete pravým myšítkem a zvolíte Vlastnosti. Objeví se téměř stejný dialog jako New Login….
Database User a Database Role
Nyní opusťte složku Security a přejděte do Databases. Předpokládám, že jste vytvořili uživatele uzivatel, jak je to uvedeno výše. Zvolte tempdb. Users a Roles, které vidíte ve stromu konzole i v pravém okně, jsou vlastně analogické Security | Logins a Security | Server Roles. Liší se tím, že prvně uvedené se vztahují k dané databázi a druhé k celému MS SQL, respektive jeho instanci.
Změna uživatelů v roli a práv, které role dává
Kliknutím na Roles se v pravém okně vypíše seznam rolí v databázi tempdb. V seznamu na obrázku je vidět, že nejsou vytvořeny žádné nové uživatelské role. Jsou k dispozici jen ty předdefinované. Jediná z předdefinovaných, u které lze měnit práva, je public. Vyvolejte její vlastnosti (třeba kliknutím na ikonu v panelu nástrojů). V dialogu jednoduchým způsobem přiřaďte nebo vyřaďte z role databázové uživatele. Tlačítkem Permissions… vyvoláte dialog nastavení přístupových práv. Doporučuji vždy změnit práva pro roli public podle požadavků bezpečnosti. Tuto roli dostává každý nový uživatel databáze a nelze mu ji odebrat.
seznam rolí v databázi „tempdb“
Uživatelé databáze
Kliknutím na Users se v pravém okně vypíše seznam uživatelů v databázi tempdb. Databázový uživatel (sloupec Name) patří k nějakému SQL Loginu (sloupec Login Name). V každé databázi existuje uživatel dbo, který je analogický uživateli sa vůči celému serveru. Uživatel dbo (zkratka z DataBase Owner) vystupuje jako vlastník databáze a má nastavena veškerá práva (má roli db_owner).
Označte jednoho v seznamu uživatelů a otevřete dialog Vlastnosti. Zde jej můžete zařazovat/vyřazovat z jednotlivých rolí a nebo mu přímo nastavovat privilegia k jednotlivým objektům v databázím v dialogu, který vyvoláte stiskem tlačítka Permissions….
Možností nastavování přístupových práv v SQL Enterprise Manageru je ještě více. Vycházejí však jen z výše popsaných mechanizmů. Zájemce odkazuji na originální dokumentaci.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
AI a internetové podvody
29. října 2024 -
Praktické rady na zabezpečení redakčního systému WordPress
27. února 2023 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024
Niko
Pro 15, 2013 v 9:48Moc mi to nepomohlo
Honda Civik
Kvě 2, 2016 v 14:19Tvůj problém. Měl jsi se víc učit se serverem.
trdel
Čvn 27, 2016 v 7:44odpověď jak prase …. arogantnost čiší až za hrob