【问题标题】:Database access permissions issue (sql server 2008)数据库访问权限问题(sql server 2008)
【发布时间】:2010-02-10 03:44:53
【问题描述】:

我创建了一个 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

【问题讨论】:

标签: sql-server-2008 database-permissions


【解决方案1】:

我将创建一个附加到我的应用程序拥有的凭据的存储过程,该过程将接收用户参数并查询 sysobjects 以返回可用的过程。这些过程的后续执行可以通过您提到的特定连接字符串来完成。

【讨论】:

    【解决方案2】:

    使用这个脚本:

    select user_name(schema_id) as owner, name from sys.procedures
    

    【讨论】:

      【解决方案3】:

      其实我已经想通了——用户需要被授予我们想要列出的每个存储过程的权限

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-24
        • 1970-01-01
        相关资源
        最近更新 更多