Почему я не вижу строки в системных объектах для объектов, которые, как я знаю, существуют? - PullRequest
2 голосов
/ 06 октября 2010

Я являюсь членом только роли db_datareader в базе данных, и я не могу видеть строки в sysobjects для хранимых процедур, которые, как я знаю, существуют.

Кроме того, в SQL Server Managedemnt Studio при развертывании узла Programmability -> Stored Procedures в обозревателе объектов не отображаются хранимые процедуры.

Это из-за недостаточных разрешений? Если да, какие разрешения мне нужны, чтобы иметь возможность видеть все строки в sysobjects, а также видеть, какие разрешения были предоставлены для каждого объекта?

Ответы [ 3 ]

5 голосов
/ 06 октября 2010

Возможно, вам не хватает ПРОСМОТРА ОПРЕДЕЛЕНИЯ разрешения.Чтобы получить разрешение для всей схемы, используйте:

GRANT VIEW DEFINITION ON SCHEMA::dbo TO [UserName]

Для отдельной процедуры:

GRANT VIEW DEFINITION ON YourStoredProcedureName TO [UserName]
1 голос
/ 06 октября 2010

То, что вы видите, связано с проблемой разрешений. Попробуйте добавить себя к этой роли db_ddladmin для этой базы данных.

Информация о db_ddladmin: http://msdn.microsoft.com/en-us/library/ms190667(SQL.90).aspx

0 голосов
/ 06 октября 2010

вы используете базу данных? правильный?

use [db_x]
go
select * from sysobjects
where type = 'P'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...