SQL 2005 dla poczÄ…tkujÄ…cych: tworzenie loginu dla bazy danych
W SQL Management Studio klikamy na węzeł Databases | Security | Logins. Klikamy prawym przyciskiem myszy i wybieramy New Login.
Na głównej stronie określamy czy będzie to użytkownik Windows (użytkownik Active Directory lub lokalne konto), czy będzie to użytkownik SQL. W celu wybrania autoryzacji Windows – zaznaczamy Windows authentication, w przypadku autoryzacji SQL – SQL Server authentication.
W przypadku wybrania autoryzacji SQL, należy wprowadzić hasło dla loginu oraz poniżej wybrać jedną lub kilka z trzech opcji:
- Enforce password Policy – hasło nie może zawierać w sobie części nazwy loginu i nie może być krótsze niż 7 znków oraz powinno zawierać cyfry, duże i małe litery oraz znaki nie alfanumeryczne. Informacje pobierane są z polityki grupowej.
- Enforce password expiration – hasło wygasa po przekroczeniu wartości określonej w polityce grupowej.
- User must change password at next logon – wymaga zmiany hasła użytkownika przy kolejnym logowaniu.
Sekcje Default Database oraz Default language są widowczne zarówno dla loginu z autoryzacją SQL jak i Windows. W Default Database określamy domyślną bazę danych dla loginu.

Na stronie Server Roles wybieramy role serwerowe, przypisane dla tego loginu
- bulkadmin – zezwala na operację masowego wstawiania danych (BULK INSERT),
- dbcreator – zezwala na tworzenie, usuwanie, modyfikację bazy danych oraz dodawanie do niej nowych członków (CREATE DATABASE),
- diskadmin – zezwala na zarządzanie plikami .mdf i .ldf (ALTER),
- processadmin – zezwala na kontrolę procesów (ALTER ANY CONNECTION oraz ALTER SERVER STATE),
- securityadmin – zezwala na zarządzanie loginami i uprawnieniami (ALTER ANY LOGIN),
- serveradmin – zezwala na konfigurację całego serwera (ALTER SERVER STATE, ALTER SETTINGS, SHUTDOWN),
- setupadmin –zezwala na zarządzanie serwerami połączonymi (ALTER ANY LINKED SERVER),
- sysadmin – zezwala na pełną kontrolę nad bazami danych (CONTROL SERVER with GRANT),

Na stronie User Mapping zaznaczamy do której bazy użytkownik będzie posiadał uprawnienia (Users mapped to this login), a następnie w sekcji Database role membership for : nazwa_bazy zaznaczamy role, które chcemy nadać:
- db_accessadmin – zezwala na dodawanie i usuwanie kont,
- db_backupoperator – zezwala na wykonywanie kopii zapasowych,
- db_datareader – zezwala na odczyt baz danych,
- db_datawriter – zezwala na zapisywanie i modyfikację baz danych,
- db_ddladmin – zezwala na modyfikację i usuwanie obiektów baz danych,
- db_denydatareader – nie zezwala na odczyt baz danych,
- db_dentydatawriter – nie zezwala na zapisywanie i modyfikację baz danych,
- db_owner – zezwala na pełną kontrolę nad bazą danych,
- db_securityadmin – zezwala na zarządzanie uprawnieniami oraz rolami baz danych,
- public – rola domyślna, zapewniająca minimum uprawnień.

Strona Securables służy do przypisywania uprawnień do obiektów zabezpieczanych dla tego loginu.

Strona Status służy do nadawania lub odejmowania uprawnień dla loginu do łączenia się z bazą danych (Permission to connect to Database engine) oraz blokowania konta.

Poniżej znajduje się skrypt wykonanej powyżej operacji:
USE [master]
GO
CREATE LOGIN [monika] WITH PASSWORD=N’Pa$$w0rd’ MUST_CHANGE, DEFAULT_DATABASE=[master], CHECK_EXPIRATION=ON, CHECK_POLICY=ON
GO
EXEC master..sp_addsrvrolemember @loginame = N’monika’, @rolename = N’sysadmin’
GO
USE [moja_baza]
GO
CREATE USER [monika] FOR LOGIN [monika]
GO
USE [moja_baza]
GO
EXEC sp_addrolemember N’db_datareader’, N’monika’
GO
USE [moja_baza]
GO
EXEC sp_addrolemember N’db_datawriter’, N’monika’
GO
USE [moja_baza]
GO
EXEC sp_addrolemember N’db_owner’, N’monika’
GO
W przypadku tworzenia loginu jako użytkownika Windows, skrypt będzie wyglądał następująco:
USE [master]
GO
CREATE LOGIN [FREYA\pyszczek] FROM WINDOWS WITH DEFAULT_DATABASE=[master]
GO
EXEC master..sp_addsrvrolemember @loginame = N’FREYA\pyszczek’, @rolename = N’sysadmin’
GO
USE [baza]
GO
CREATE USER [FREYA\pyszczek] FOR LOGIN [FREYA\pyszczek]
GO
USE [baza]
GO
EXEC sp_addrolemember N’db_datareader’, N’FREYA\pyszczek’
GO
USE [baza]
GO
EXEC sp_addrolemember N’db_datawriter’, N’FREYA\pyszczek’
GO
USE [baza]
GO
EXEC sp_addrolemember N’db_owner’, N’FREYA\pyszczek’
GO

[...] natomiast w Login name wyszukujemy skonfigurowany uprzednio login. O tworzeniu loginu traktował poprzedni wpis. W pozycji Default schema przypisujemy użytkownikowi domyślny schemat, natomiast poniżej w [...]