Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Получить список всех ролей установленных на хранимую процедуру  [new]
dubok79
Member

Откуда: Владимирская обл.
Сообщений: 141
Добрый день. Нужно получить список всех ролей установленных на хранимую процедуру не зависимо от того пользователь есть в этих ролях или его там нет. Возможно ли такое?
Ранее я использовал sp_helprotect которая показывала все роли. Сейчас на 2008 R2 она показывает только те роли, к которым пользователь имеет доступ. Можно ли как то получить весь список ролей назначенных процедуре на ее EXECUTE. Спасибо.
18 фев 14, 09:13    [15580361]     Ответить | Цитировать Сообщить модератору
 Re: Получить список всех ролей установленных на хранимую процедуру  [new]
dubok79
Member

Откуда: Владимирская обл.
Сообщений: 141
Пока сделал так:
CREATE PROCEDURE [dbo].[sp_helpprotect]
  @objectname AS varchar(255),
  @dbname AS sysname
AS
SET NOCOUNT ON

	DECLARE @SQL varchar(4000)
	SET @SQL = '
	SELECT dbprcp.name AS Grantee
	FROM '+@dbname+'.sys.all_objects ao
		INNER JOIN '+@dbname+'.sys.database_permissions dbprms ON dbprms.major_id=ao.object_id AND dbprms.minor_id=0 AND dbprms.class=1
		INNER JOIN '+@dbname+'.sys.database_principals dbprcp ON dbprcp.principal_id = dbprms.grantee_principal_id
	WHERE
		(ao.type = ''P'' OR ao.type = ''RF'' OR ao.type=''PC'')
		AND (ao.name='''+@objectname+''' AND SCHEMA_NAME(ao.schema_id)=''dbo'')
		AND dbprms.type = ''EX''
	'
	EXEC(@SQL)
18 фев 14, 09:32    [15580440]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить