2013-09-20 7 views
4

Мне нужно предоставить пользователю доступ к базе данных для доступа к таблице sys.master_files. Как я могу это сделать?Как предоставить пользователю доступ к sys.master_files в SQL Server?

В настоящее время пользователь имеет эти разрешения:

enter image description here

Вызов SELECT на sys.master_files возвращает пустой результат. Я также проверил тот же запрос с пользователем sa, который работает так, как ожидалось.

+1

[соответствующая документация по технике] (http://technet.microsoft.com/en-us/library/ms186782.aspx) - доступно ** свободно ** любому - четко указывает, какие разрешения необходимы для каталога 'sys.master_files' ** **: минимальные разрешения, необходимые для просмотра соответствующей строки, - это CREATE DATABASE, ALTER ANAT DATABASE или VIEW ANY DEFINITION. * –

+0

Да, я но я не знаю, как применять эти права в графическом интерфейсе. – BetaRide

+3

Это разрешения на уровне сервера, а не разрешения на уровне базы данных, щелкните раздел Securables на экране, в котором вы были, когда вы сняли снимок экрана, и вы увидите их. – steoleary

ответ

0

Эти права доступа на уровне сервера также могут быть добавлены с помощью T-SQL скрипта, такие как:

use master 
grant ALTER ANY DATABASE to [texas_user] 
grant VIEW ANY DEFINITION to [texas_user] 
grant CREATE ANY DATABASE to [texas_user] 

Результат будет тот же: пользователь texas_user будет иметь возможность получать результаты от sys.master_files. Но, возможно, эти способности намного больше, чем вы хотите. Возможно, вы можете получить те же результаты, которые запрашивают sys.database_files в пользовательских базах данных (texas, TexasLog).

+0

Small примечание. Вышеупомянутый код, который вам нужно выполнить с привилегиями 'sa' – Sandr

5

для вас, чтобы успешно запустить

select * from sys.master_files 

минимальные права, которые вам необходимо предоставить следующим образом:

GRANT VIEW ANY DEFINITION TO [texas_user] 
GO 

Я проверил и она отлично работает на SQL Server 2008 r2

regards 
marcelo 
Смежные вопросы