Ćwiczenia > Procedury składowane w MS SQL Server 2000 > RProcedury rozszerzone

8.3 Procedury rozszerzone



Procedury rozszerzone są procedurami utworzonymi w zewnętrznych językach programowania, jak na przykład język C. Wywołanie procedur rozszerzonych nie różni się niczym od pozostałych typów procedur. Procedury rozszerzone przechowywane są w postaci bibliotek DLL. Procedury te w kodzie programowym korzystają z biblioteki SQL Server Open Data Services API. Po napisaniu i przekonwertowaniu do pliku DLL administrator serwera (członek grupy serwera sysadmin) dołącza procedurę rozszerzoną do serwera i nadaje uprawnienia do jej wykonywania użytkownikom.

Nie będziemy tu opisywać, w jaki sposób można dodać do serwera własną procedurę rozszerzoną (możesz znaleźć taki przykład w Books Online - szukaj opisu procedury xp_hello). Natomiast musisz wiedzieć, że po zainstalowaniu SQL Servera w serwerze już istnieją procedury rozszerzone.

Krok 1 - Zobacz procedurę rozszerzoną w działaniu

1. Uruchom program Query Analyzer.
2. Zaloguj się używając uwierzytelnienia systemu Windows.
3. Wpisz poniższy kod i uruchom go (klawisz F5).


xp_cmdshell 'dir /p'
GO


Wynikiem wykonania powyższego kodu będzie wyświetlenie zawartości katalogu macierzystego systemu Windows. Procedura rozszerzona xp_cmdshell wywołuje tutaj polecenie DOS - dir, które wyświetla zawartość katalogu.

Z uwagi na swoje możliwości wykonywania operacji w systemie operacyjnym, procedura xp_cmdshell nie należy do najbezpieczniejszych. Duża część administratorów blokuje jej używanie, by uchronić się przed ewentualnym zagrożeniem ze strony użytkowników, którzy przy pomocy tej procedury mogliby wykonać nieprzewidziane operacje (np. usuwanie ważnych dokumentów, czy dodanie użytkownika do grupy administratorów).

Krok 2 - Poznaj wybrane procedury rozszerzone

Inne przykłady procedur rozszerzonych to:

xp_deletemail - usuwa wiadomość e-mail ze skrzynki SQL Servera,
xp_grantlogin - odpowiednik procedury systemowej sp_grantlogin,
xp_logevent - zapisuje wiadomość użytkownika w dzienniku SQL Servera i w dzienniku systemowym,
xp_readmail - odczytuje wiadomość e-mail ze skrzynki SQL Servera,
xp_revokelogin - odpowiednik procedury systemowej sp_revokelogin,
xp_sendmail - wysyła wiadomość e-mail wraz załączonym wynikiem zapytania do odbiorcy

Proponujemy, byś raczej nie zajmował się procedurami rozszerzonymi w czasie pracy nad projektem. Aczkolwiek, jeśli zainteresował Cię ten temat i jesteś w miarę biegłym programistą, możesz stworzyć własną procedurę (zainstaluj przykład xp_hello zgodnie z instrukcją w Books Online i zobacz, jak to zrobić).


Przejdź dalej



Ćwiczenia > Procedury składowane w MS SQL Server 2000 > Procedury rozszerzone