我只是数据库中db_datareader
角色的成员,我无法在sysobjects
中看到我知道的存储过程中的行。
此外,在SQL Server Managedemnt Studio中,在对象资源管理器中展开Programmability -> Stored Procedures
节点不会显示任何存储过程。
这是由于权限不足吗?如果是这样,我需要具备哪些权限才能查看sysobjects
中的所有行,以及查看每个对象上授予的权限?
答案 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'