我创建了一个 C# 应用程序,它读取配置文件、获取连接字符串,并为每个连接字符串读取存储的 proc 列表以进行进一步处理。现在,我面临一些权限问题。在开发应用程序时,我使用的是 dbo 级别用户的连接字符串。现实生活中的连接字符串适用于只有 datareader 和 datawriter 权限的 sql 用户,但是当我执行时
select user_name(uid) as owner, name from dbo.sysobjects where type='P' order by name asc
要使用这样的用户获取 procs 列表,查询不返回任何记录(尽管如果我以 dbo 身份执行,它会返回 procs)
出于安全原因,我不想在连接字符串中为用户提供额外的权限,所以我的问题是 - 只有数据读取器/数据写入器权限的用户如何获得存储过程的列表,或者如果不可能,最小的用户必须拥有访问该信息的权限?
我正在使用 SQL Server 2008