10

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

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

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

4

3 回答 3

13

请尝试以下 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'
于 2012-07-26T09:43:36.847 回答
3

将登录名(或角色)添加到数据库邮件角色后,您需要将登录名(或角色)分配给邮件配置文件。对于下面的脚本,可能需要设置默认值 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 
于 2018-03-15T13:55:11.720 回答
2

在此处输入图像描述

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

于 2017-03-22T20:12:13.867 回答