データベースの所有者であるデータベースユーザーがいます。アプリケーションの要件は、SQLサーバーのデータベースメールを使用してメールを送信することです。
そのユーザーにメール送信のみの許可を追加する方法はありますか?
サーバーロールがpublicであるtestuserという名前のユーザーがいて、1つのデータベースのdb_ownerです。そのユーザーにsysadminサーバーロールを与える必要がない方法を教えてください。
データベースの所有者であるデータベースユーザーがいます。アプリケーションの要件は、SQLサーバーのデータベースメールを使用してメールを送信することです。
そのユーザーにメール送信のみの許可を追加する方法はありますか?
サーバーロールがpublicであるtestuserという名前のユーザーがいて、1つのデータベースのdb_ownerです。そのユーザーにsysadminサーバーロールを与える必要がない方法を教えてください。
以下の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を設定する必要がある場合があります。
use msdb
exec sp_addrolemember 'DatabaseMailUserRole', 'sqlUser'
EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
@principal_name = 'sqlUser',
@profile_name = 'sqlMailProfileName',
@is_default = 0