2010-07-02 4 views
3

У меня есть только доступ к основной базе данных, но следующий запрос возвращает только подмножество пользователей. Какие разрешения необходимы для возврата остальных пользователей?Какие разрешения необходимы для запроса master..syslogins в SQL Server?

SELECT [name] FROM master.dbo.syslogins 

ответ

3

Какая версия SQL Server вы используете?

syslogins В каталоге syslogins просмотр каталога устарел с SQL Server 2005 - если вы в 2005 году или выше, вместо этого вы должны использовать и sys.sql_logins.

При проверке MSDN Books Online topic для sys.server_principals, вы увидите примечание внизу страницы:

В SQL Server 2005 и более поздних версий, видимость метаданных в каталоге виды ограничены защитными средствами , которые пользователь либо владеет, либо на которых пользователю предоставлено какое-либо разрешение . Для получения дополнительной информации см. Конфигурация видимости метаданных.

Перейдите на страницу Metadata Visibility Configuration, чтобы узнать подробности о том, какие объекты вы сможете увидеть и как получить доступ к другим.

Эта нота является наиболее важной частью, если вы хотите предоставить разрешения:

Чтобы разрешить вызывающим абонентам просматривать метаданные, вы может предоставить позвонившим VIEW DEFINITION разрешение на соответствующий объем: уровень объекта, базы данных уровня или уровня сервера. Следовательно, в предыдущем примере, если , вызывающий абонент имеет VIEW DEFINITION разрешение на myTable, сохраненная процедура возвращает строку.

+0

Большое спасибо за вашу помощь –

4

Добро пожаловать в «MetaData Visibilty»

В этом случае, вы будете видеть только строки, связанные с вами (группы вы являетесь членом, например).

И это также sys.server_principals. syslogins является древняя реликвия наследство вид на SQL Server 7 и более ранних версий (был sysxlogins в SQL Server 2000)

Из MSDN для sys.server_principals ...

В SQL Server 2005 и более поздних версий, Видимость метаданных в Представления в каталоге могут быть защищены только товарами-хранителями , которыми владеет либо пользователь, либо на котором пользователю предоставлено разрешение . Для получения дополнительной информации см. Конфигурация видимости метаданных.

Чтобы просмотреть все строки, вам необходимо будет GRANT прав.

GRANT VIEW ANY DEFINITION TO ... 

или

GRANT VIEW DEFINITION ON LOGIN::xxx TO ... 

Или быть "сисадмин" ...

+2

должно быть GRANT VIEW ANY определение ... (не ОПРЕДЕЛЕНИЯ) –

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