Uživatelé v MS SQL 2008
- 31. Březen 2009
- Publikováno v MS SQL
- Napište komentář
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.
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í.
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.
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
a následně zkusit pár příkazů ..
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'.
Dosud žádný komentář.