我创建了一个C#应用程序,它读取一个配置文件,获取连接字符串,并为每个连接字符串读取存储过程列表以供进一步处理。 现在,我正面临一些权限问题。在开发应用程序时,我正在使用具有dbo级别用户的连接字符串。现实生活中的连接字符串是SQL用户只DataReader的和datawriter权限,但是当我执行数据库访问权限问题(sql server 2008)
select user_name(uid) as owner, name from dbo.sysobjects where type='P' order by name asc
获得使用这样的用户特效列表,该查询返回任何记录(虽然它返回的特效,如果我以dbo身份执行)
出于安全原因,我不想为连接字符串中的用户提供额外的权限,所以我的问题是 - 只有具有datareader/datawriter权限的用户如何获取存储的特效列表,或者如果不可能,用户必须拥有访问该信息的最低权限是什么?
我使用SQL Server 2008
作为预留每个存储过程:SQL Server 2005上最多,我会使用'sys.procedures'而不是弃用的“sysobjects”。请参阅sysobjects上的MSDN文档:http://msdn.microsoft.com/en-us/library/ms177596.aspx – 2010-02-05 21:49:08