Udostępnij za pośrednictwem


VIEW ANY uprawnienie bazy danych

VIEW DATABASE bez uprawnień jest nowy, serwer poziom uprawnień.Nazwa logowania, któremu udzielono tego uprawnienia zawiera metadane opisujące wszystkich baz danych, niezależnie od bez względu na to, czy identyfikator logowania jest właścicielem, czy rzeczywiście można użyć określonej bazy danych.

Uprawnienia do bazy danych bez VIEW reguluje narażenie metadane w sys.Databases and sys.sysdatabases widoki a sp_helpdb systemu procedura przechowywana.

Domyślnie jest przyznawane uprawnienie do bazy danych bez VIEW public Rola. Dlatego też domyślnie, każdy użytkownik, który łączy się z wystąpienie SQL Server zawiera wszystkie bazy danych w wystąpieniu. Aby sprawdzić, ten problem, uruchom następującą kwerendę:

SELECT l.name as grantee_name, p.state_desc, p.permission_name 
FROM sys.server_permissions AS p JOIN sys.server_principals AS l 
ON   p.grantee_principal_id = l.principal_id
WHERE permission_name = 'VIEW ANY DATABASE' ;
GO

Aby udzielić uprawnień VIEW bez bazy danych do określonego identyfikatora logowania, uruchom następującą kwerendę:

GRANT VIEW ANY DATABASE TO <login>; 

Metadane opisujące master i tempdb bazy danych jest zawsze widoczny na public.

Członkowie sysadmin stała rola serwera zawsze wyświetlane są wszystkie metadane bazy danych.

Właściciele bazy danych mogą oglądać zawsze wierszy sys.databases w przypadku baz danych, których jest właścicielem.

Udzielanie tworzenie bazy danych i ALTER DATABASE bez uprawnień do identyfikatorów logowania przyznaje dostęp do metadane bazy danych.

Uwaga

Uprawnienie Tworzenie bazy danych jest niejawna do dbcreator stała rola serwera.

Uwaga

Nie odmawiać bazy danych bez VIEW do logowania się podczas udzielania tworzenie bazy danych i ALTER DATABASE bez uprawnień do identyfikatorów logowania, identyfikator logowania widoczne są wszystkie wiersze w sys.databases.

Aby ograniczyć widoczność do bazy danych metadane, odmówić identyfikatora logowania uprawnienia VIEW bez bazy danych.Po odmówiono tego uprawnienia, identyfikator logowania może zobaczyć tylko metadane dla master, tempdbi baz danych, który jest właścicielem identyfikatora logowania. Aby uzyskać więcej informacji zobaczDENY uprawnień serwera (języka Transact-SQL).