niedziela, 12 października 2014

Loginy MSSQL 2012 Server cz.8

Tak jak w każdym programie, tak samo w MS SQL istnieją loginy, które poświadczają tożsamość osób, które próbują się zalogować do instancji.

SQL Server 2012 obsługuje 4 tryby uwierzytelniania instancji:

1) Uwierzytelnianie poprzez login z systemu Windows,
2) Uwierzytelnianie poprzez login MS SQL,
3) Certyfikaty,
4) Klucz asymetryczny

1) Login Windows:

Uwierzytelnianie wykonywane jest jest przy pomocy lokalnego lub domenowego konta.

Uruchamiamy  SQL Server Managment Studio, łączymy się z interesującą nas instancją.
Przechodzimy do węzła Security->klikamy prawym na Security->wybieramy New Login


W oknie tworzenia Loginu, klikamy na Search, następnie wpisujemy lub wybieramy login lokalny lub domenowy.


W ten sposób poprzez wyklikanie mamy stworzony login, dzięki któremu możemy zalogować się do instancji, wykorzystując hasło, którym logujemy się na serwer.



Jeżeli ktoś woli T-SQL poniższe polecenia stworzą nam loginy:

Jeżeli chcemy stworzyć konto na podstawie lokalnego użytkownika:

CREATE LOGIN "lokalny_komputer\login" FROM WINDOWS;
CREATE LOGIN "SQL-A\geekadmin" FROM WINDOWS;

Jeżeli chcemy stworzyć konto na podstawie lokalnej grupy:

CREATE LOGIN "lokalny_komputer\lokalna_grupa" FROM WINDOWS;
CREATE LOGIN "SQL-A\grupa_geekadmin" FROM WINDOWS;

Jeżeli chcemy utworzyć konto na podstawie konta domenowego  lub grupy domenowej:

CREATE LOGIN "komputer_domenowy\login" FROM WINDOWS;
CREATE LOGIN "Domain\geekadmin" FROM WINDOWS;

CREATE LOGIN "komputer_domenowy\grupa" FROM WINDOWS;
CREATE LOGIN "Domain\grupa_geekadmin" FROM WINDOWS;
 




2) Login w MS SQL:

W odróżnieniu od uwierzytelniania poprzez login windows, hasła dla konta uwierzytelnionego poprzez instancję są w niej zapisywane.
Poniżej kroki potrzebne do utworzenia loginu w bazie.



Konto możemy również utworzyć przy pomocy T-SQL:

CREATE LOGIN geekadmin  WITH PASSWORD='Password';

Możemy dodać:
CHECK_EXPIRATION-ustawia po jakim czasie hasło wygaśnie,
CHECK_POLICY-sprawdza złożoność haseł,
MUST_CHANGE-sprawdza czy użytkownik musi zmienić hasło przy następnym logowaniu

CREATE LOGIN geekadmin  WITH PASSWORD='Password', MUST_CHANGE,
DEFAULT_DATABASE=nazwa_instancji,
CHECK_EXPIRATION=ON,
CHECK_POLICY=ON




3) Certyfikaty:

Logowanie za pomocą certyfikatów możemy wdrożyć jeżeli serwer posiada klucz główny.
Poniższe polecenie tworzy taki certyfikat dla użytkownika geekadmin, który będzie wązny do 01.01.2016.

CREATE CERTIFICATE  geekadmin
WITH SUBJECT = 'GeekAdmin certyfikate in master database',
EXPIRY_DATE='01/01/2016'

4) Klucz niesymetryczny:

Klucze asymetryczne składają się zarówno z klucza prywatnego jak i publicznego, przy jego tworzeniu musimy podać hasło. W naszym przykładzie użyjemy algorytmu RSA_2048.

Na początek utworzymy klucz asymetryczny dla geekadmin:

CREATE ASYMMETRIC KEY geekadmin WITH ALGORITHM = RSA_2048;

Następnie utworzymy użytkownika z dostępem do bazy poprzez klucz asymetryczny:

 CREATE LOGIN geekadmin FROM ASYMMETRIC KEY geekadmin;





5) Zarządzanie loginami:

Każdy utworzony login możemy wyłączyć lub włączyć.

ALTER LOGIN geekadmin DISABLE;
ALTER LOGIN geekadmin ENABLE;

Listę wszystkich utworzonych loginów możemy zobaczyć przechodząc w SQL Server Managment Studio do węzła Security\Logins.
Wydając polecenie sys.server_principals otrzymamy w odpowiedzi informację o:
-dacie założenia loginu,
-dacie modyfikacji loginu,
-informację czy login jest włącozny,
-jakiego typu jest loginem(SQL_LOGIN,SERVER_ROLE,WINDOWS_LOGIN,
CERTIFICATE_MAPPED_LOGIN)

Przy pomocy widoku sys.sql_logins zobaczymy loginy,które utworzone są jako uwierzytelniane przez instancję bazy.

Jeżeli chcemy usunąć jakiś login wydajemy polecenie:

DROP LOGIN geekadmin;

Jeżeli chcemy odmówić możliwości logowania się do instancji bazy danych wydajemy poniższe polecenie:

USE [ master ]
GO
DENY CONNECT SQL "nazwadomeny\geekadmin";
GO 





Brak komentarzy:

Prześlij komentarz