wtorek, 2 listopada 2010

xp_fixeddrives

Nieudokumentowana procedura xp_fixeddrives jest bardzo przydatna w pracy administratora, tym bardziej że sam cmd nie dostarcza nam sposobu na proste wylistowanie ilości wolnego miejsca na dyskach. Systemy linuksowe mają swoje df –h w windowsach trzeba stosować sztuczki.
Procedura rozszerzona (extended stored) jest częścią biblioteki xpstar90.dll, nie zaleca się stosowania jej w rozwiązaniach produkcyjnych ponieważ może zniknąć w następnych wersjach.
Procedura wywołana bez parametrów zwraca informację o dyskach

EXEC master.dbo.xp_fixeddrives

drive MB free
----- -----------
C     21175
D     69100
E     74389


Można ją wywoływać z parametrem liczbowym,
z 1 nic nie pokaże,
z 2 nic nie pokaże, prawdopodobnie odpowiada ona za dyski wymienne
z 3 nic nie pokaże,
z każdą inną zwróci informacje o dyskach.

We wcześniejszych wersjach sesja z parametrem 2 zawieszała się i nie pozwalała zamknąć.
Według wytycznych bezpieczeństwa powinniśmy odinstalowac ta procedurę lub odebrać prawo do jej uruchamiania, domyślnie ma ją grupa public.
Wywoływanie tej procedury na prawach innych niż sysadmin może zwracać nieoczekiwane rezultaty


CREATE LOGIN slaby WITH PASSWORD=N'test', CHECK_POLICY=OFF
GO
USE tempdb
GO
CREATE USER slaby FOR LOGIN slaby
GO


SET NOCOUNT ON

SELECT SYSTEM_USER,USER_NAME()
go
EXEC master.dbo.xp_fixeddrives
go

EXECUTE AS LOGIN ='sa'
GO

SELECT SYSTEM_USER,USER_NAME()
EXEC master.dbo.xp_fixeddrives
REVERT
GO

EXECUTE AS LOGIN ='slaby'
GO

SELECT SYSTEM_USER,USER_NAME()
EXEC master.dbo.xp_fixeddrives
REVERT
GO

EXECUTE AS LOGIN ='domena\slaby'
GO

SELECT SYSTEM_USER,USER_NAME()
EXEC master.dbo.xp_fixeddrives
REVERT

---------------------- -----------
domena\administrator   dbo

drive MB free
----- -----------
C     21175
D     69100
E     74389


---------------------- -----------
sa                     dbo

drive MB free
----- -----------
C     21175
D     69100
E     74389


---------------------- -----------
slaby                 slaby

drive MB free
----- -----------
C     18215
D     53156
E     71061


---------------------- -----------
domena\slaby          domena\slaby

drive MB free
----- -----------
C     21175
D     69100
E     74389


Login slaby dostał inne wyniki niż np. domena\slaby, nie sądzę żeby przyczyną był brak praw bo wtedy nie dostałby zupełnie wyniku.
Co dziwniejsze sytuacja daje się powtórzyć tylko na niektórych serwerach, niczego dziwnego w ich konfiguracji nie znalazłem.

Wyniki dla pozostałych loginów zgadzają się


22 204 411 904 byte = 21 175,7773 megabyte

Brak komentarzy:

Prześlij komentarz