如何向sql server用户授予sendmail权限?

时间:2012-07-26 09:26:39

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

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

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

我有一个名为testuser的用户,其服务器角色为 public ,而 db_owner 用于1个数据库。请告诉我我不需要向该用户提供sysadmin serverroles的方式。

3 个答案:

答案 0 :(得分:8)

请尝试使用以下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'

答案 1 :(得分:1)

enter image description here

您需要添加' DatabasemailUserRole'用于MSDB数据库到用户

答案 2 :(得分:1)

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

use msdb
exec sp_addrolemember 'DatabaseMailUserRole', 'sqlUser'

EXECUTE msdb.dbo.sysmail_add_principalprofile_sp  
@principal_name = 'sqlUser',  
@profile_name = 'sqlMailProfileName',
@is_default = 0