SQL Server 使用数据库邮件时,如何在包含的数据库中向用户发送邮件?
我尝试使用msdb.dbo.sp_send_dbmail
,但由于所包含数据库的任何本地用户都看不到 msdb,因此msdb.dbo.sp_send_dbmail
也无法访问。然后我尝试创建证书和签名程序,首先直接进入msdb
然后通过master
数据库重新路由整个东西(我知道,这不是一个“非常好的主意”)但即使这样也行不通(我想它会破坏遏制,因此不允许)。
有没有办法做到这一点?
SQL Server 使用数据库邮件时,如何在包含的数据库中向用户发送邮件?
我尝试使用msdb.dbo.sp_send_dbmail
,但由于所包含数据库的任何本地用户都看不到 msdb,因此msdb.dbo.sp_send_dbmail
也无法访问。然后我尝试创建证书和签名程序,首先直接进入msdb
然后通过master
数据库重新路由整个东西(我知道,这不是一个“非常好的主意”)但即使这样也行不通(我想它会破坏遏制,因此不允许)。
有没有办法做到这一点?
最近我一直在使用 EXECUTE AS LOGIN 来检查某个人是否可以或不能在我们的一个数据库中使用表函数。测试表明他可以,但他一再报告失败。
该人使用登录“WEB”连接到数据库,并且该数据库中的用户“WEB”与登录“WEB”相关联,因此我尝试了以下脚本:
-- part 1
EXECUTE AS USER = 'WEB'
GO
SELECT
USER_NAME() AS 'user_name'
,SUSER_NAME() AS 'suser_name'
,SUSER_SNAME() AS 'suser_sname'
,SYSTEM_USER AS 'system_user'
GO
REVERT
GO
和
-- part 2
EXECUTE AS LOGIN = 'WEB'
GO
SELECT
USER_NAME() AS 'user_name'
,SUSER_NAME() AS 'suser_name'
,SUSER_SNAME() AS 'suser_sname'
,SYSTEM_USER AS 'system_user'
GO
REVERT
GO
第一部分很好,结果如下:
网站 | 网站 | 网站 | 网络
但第二个结果有点令人困惑:
德博 | 网站 | 网站 | 网络
EXECUTE AS USER 和 EXECUTE AS LOGIN 有什么区别导致第二个失败?此外,当然,第一个是数据库级别的,第二个是服务器级别的模拟,这是我所知道的,这里没有解释情况。
我已经根据 BO 建立了一个数据仓库和数据收集。在服务器上运行的 Management Studio 中运行报告时会正确生成报告,但在另一台计算机上从 Management Studio 运行报告时会失败(该计算机使用 VPN 连接到 SQL Server 所在的网络)。错误信息是:
无法连接到服务器 xxxx --> 登录失败。登录来自不受信任的域,不能用于 Windows 身份验证。
服务器使用混合模式身份验证。数据收集配置为使用 SQL 登录,并且尝试生成报告的登录也是 SQL 登录。它们与域无关。为什么我会收到此错误?