1
使用跨数据库证书时触发器中的权限
我使用跨数据库证书(如Erland Sommarskog所述)来控制对环境(SQL Server 2008 R2)中某个数据库的访问。 我已经在数据库A中存储了更新数据库B中表的存储过程。到目前为止,这一直适用于db A中的各种存储过程以及db B中的表。我正在尝试更新数据库B中的表,但是该表上有一个触发器。此触发器正在将附加数据插入db B中的另一个表中。 消息916,级别14,状态1,过程table_trigger,第11行在当前安全性上下文下,服务器主体“ sql \ login”无法访问数据库“ B”。 我尝试授予与证书绑定的数据库B用户的插入权限,以将其插入到该其他表中,但是它无法解决该错误。除了更改触发器以便使用之外,我还有其他选择WITH EXECUTE AS OWNER吗? 这是DDL复制问题: CREATE LOGIN [GuggTest] WITH PASSWORD=N'abcd', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF CREATE DATABASE A; CREATE DATABASE B; USE A; CREATE TABLE dbo.SPtoUpdate ( ID INT , ILoveFishing VARCHAR(255) ); INSERT INTO dbo.SPtoUpdate ( ID …