为什么我不能在sysobjects中看到我知道存在的对象的行?

时间:2010-10-06 14:19:22

标签: sql-server sql-server-2005

我只是数据库中db_datareader角色的成员,我无法在sysobjects中看到我知道的存储过程中的行。

此外,在SQL Server Managedemnt Studio中,在对象资源管理器中展开Programmability -> Stored Procedures节点不会显示任何存储过程。

这是由于权限不足吗?如果是这样,我需要具备哪些权限才能查看sysobjects中的所有行,以及查看每个对象上授予的权限?

3 个答案:

答案 0 :(得分:5)

您可能缺少VIEW DEFINITION权限。要获得整个架构的权限,请使用:

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

对于个别程序:

GRANT VIEW DEFINITION ON YourStoredProcedureName TO [UserName]

答案 1 :(得分:1)

您看到的内容与权限问题有关。尝试将自己添加到该数据库的此角色db_ddladmin。

有关db_ddladmin的信息:http://msdn.microsoft.com/en-us/library/ms190667(SQL.90).aspx

答案 2 :(得分:0)

你正在使用数据库吗?正确的吗?

use [db_x]
go
select * from sysobjects
where type = 'P'