Začátečníci v MS SQL si možná položí otázku: Jak se "tam" vlastně dostat? Možná trochu pomůže dnešní ukázka, kde si pomocí SQL Server Management Studio, vytvoříme nový login a uživatele databáze.

Po přihlášení k serveru jako administrátor se proklikáme přes položky Security/Logins kde zvolíme New login a vyplníme zobrazený formulář. Jako způsob přihlašování zvolíme SQL Server Authentication a můžeme nastavit výchozí databázi a jazyk. V záložce Server Roles můžeme přiřadit jednu z serverových rolí, tedy sady oprávnění, které nově vytvořený přihlašovací účet bude mít. V záložce User Mapping lze rovnou zvolit k jakým databázím bude účet vázán a jaké pro ně bude mít role.

Nové přihlašovací jméno Nové přihlašovací jméno Nové přihlašovací jméno

Pokud nevytvoříme uživatele databáze v předchozím kroku, můžeme tak učinit v menu databáze, v položce Security/Users. Zvolíme ke kterému přihlašovacímu jménu bude uživatel přiřazen a případně zvolíme jednu z výchozích databázových rolí (nebo roli námi vytvořenou). V záložce Securables můžeme zvolit, pro jaké objekty bude mít uživatel jaká práva. Já vybral tabulku lide z mojí pokusné databáze, a vybral jsem práva pro zápis a čtení.

Nový uživatel Nový uživatel

Stejného výsledku, tedy vytvoření přihlašovacího jména a databázového uživatele s právy čtení/zápis nad tabulkou lide, dosáhneme i uvedenými dotazy.

SQL:
-- prepnuti do master databaze serveru
USE master;
GO

-- vytvoreni loginu
CREATE LOGIN testLogin
WITH PASSWORD = 'testlogin',
CHECK_EXPIRATION = OFF,
DEFAULT_DATABASE = [pokus],
DEFAULT_LANGUAGE = Czech;
GO

-- prepnuti do databaze pokus
USE pokus;
GO

-- vytvoreni uzivatele databaze pro nas novy login
CREATE USER testLogin
FOR LOGIN testLogin;
GO

-- přiřazení práv
GRANT SELECT, INSERT ON lide TO testLogin;
GO

Nyní se můžeme pomocí jména testLogin přihlásit k databázi. Například znovu pomocí SQL Server Management Studio

Připojení uživatele

a následně zkusit pár příkazů ..

SQL:
USE pokus;
Command(s) completed successfully.

INSERT INTO lide (jmeno, prijmeni) VALUES ('Jan','Noha');
(1 row(s) affected)

SELECT * FROM lide;
uid jmeno    prijmeni
1   Petr           Kos                 
2   Magda      Nová               
3   Marek       Holý               
4   Jan           Noha               

UPDATE lide SET jmeno='Honza' WHERE uid=4;
Msg 229, Level 14, State 5, Line 1
The UPDATE permission was denied ON the object 'lide', DATABASE 'pokus', schema 'dbo'.

DELETE FROM lide WHERE uid=4;
Msg 229, Level 14, State 5, Line 1
The DELETE permission was denied ON the object 'lide', DATABASE 'pokus', schema 'dbo'.