【问题标题】:How to grant sendmail permission to sql server user?如何向 sql server 用户授予 sendmail 权限?
【发布时间】:2012-07-26 09:26:38
【问题描述】:

我有一个数据库用户,它是数据库的所有者。应用要求是使用sql server的数据库邮件发送邮件。

有什么方法可以添加仅授予该用户发送邮件的权限?

我有一个名为 testuser 的用户,具有 public 的服务器角色,并且是 1 个数据库的 db_owner。请告诉我我不需要向该用户提供系统管理员服务器角色的方式。

【问题讨论】:

    标签: sql sql-server sql-server-2008


    【解决方案1】:

    请尝试以下 2 个选项。

    USE msdb;
    --add our user
    CREATE USER  ClarkKent FOR LOGIN  ClarkKent; 
    --give this user rights to use dbmail
    exec sp_addrolemember 'DatabaseMailUserRole', 'ClarkKent'
    

    现在,如果我们知道 ClarkKent 正在从一个 windows 组获得他的授权,那么您将该 windows 组添加为用户,并将该组添加到相同的角色;

    USE msdb;
    --add our user via a group we know he is in 
    CREATE USER 'mydomain\BusinessGroup' FOR LOGIN   'mydomain\BusinessGroup'; 
    --give this GROUP rights to use dbmail
    exec sp_addrolemember 'DatabaseMailUserRole', 'mydomain\BusinessGroup'
    

    【讨论】:

    • 突出显示文本并使用“代码示例”图标将文本格式化为代码。代码示例图标看起来像 {}
    • 我已经尝试过了,但仍然无法使用数据库邮件服务。
    • 我收到以下消息 对象“sysmail_help_profile_sp”、数据库“msdb”、模式“dbo”的执行权限被拒绝。 (.Net SqlClient 数据提供者)
    【解决方案2】:

    在将登录名(或角色)添加到数据库邮件角色后,您需要将登录名(或角色)分配给邮件配置文件。对于下面的脚本,可能需要设置默认值 1,而不是 0。

    use msdb
    exec sp_addrolemember 'DatabaseMailUserRole', 'sqlUser'
    
    EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
    @principal_name = 'sqlUser',  
    @profile_name = 'sqlMailProfileName',
    @is_default = 0 
    

    【讨论】:

      【解决方案3】:

      您需要将 MSDB 数据库的“DatabasemailUserRole”添加到用户

      【讨论】:

        猜你喜欢
        • 2011-04-29
        • 1970-01-01
        • 2016-01-18
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多