Как определить, является ли пользователь участником нефиксированной роли базы данных SQL - PullRequest
0 голосов
/ 24 марта 2012

Выполнение следующего sql:

USE [WSS_Content]
EXEC sp_helplogins

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

LoginName   DBName              UserName                UserOrAlias
DEMO\SPUser SharePoint_Config   SharePoint_Shell_Access MemberOf

Это как и ожидалось, и то, что я хочу увидеть. Однако, выполняя следующий sql:

EXEC sp_helprole 'SharePoint_Shell_Access'

выдает ошибку: «SharePoint_Shell_Access» - это не роль. Но это так! Я вижу, что это из SQL Server Management Studio и даже показывает мне членов роли прямо здесь.

В идеале я пытаюсь использовать это:

SELECT IS_MEMBER('SharePoint_Shell_Access')

но, конечно, это возвращает ноль, потому что он также думает, что это недопустимая роль, когда это наиболее определенно. Что дает и как мне лучше всего узнать, является ли данный пользователь (или текущий пользователь) членом этой пользовательской роли базы данных?

Я использую SQL Server 2008 R2.

1 Ответ

0 голосов
/ 24 марта 2012

Как оказалось, sp_helplogins возвращает результаты по всем базам данных.Вот почему эта роль появлялась тогда, когда ее не должно было быть, если бы она была ограничена текущим БД, как я раньше думал.WSS_Content.Вместо этого это было из базы данных SharePoint_Config.В конце концов, ошибка была правильной, и в базе данных, где я искал, не было роли с этим именем.Я просто запутался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...