相关疑难解决方法(0)

sa 没有通过与 Service Broker 同义词访问其他数据库的权限

我一直在尝试让这个 Service Broker 和计时器的东西连续工作一个多星期,所以如果这看起来像……呃……愤怒,请耐心等待。在 SQL Server 方面,我也相当缺乏经验。

我已经建立了两个数据库来处理非常大量的数据。第一个数据库用于暂存,表没有参照完整性,我的应用程序将重磅这些表只是为了将数据放入数据库中。这很好用。第二个数据库用于生产就绪数据,具有完整性约束等......我已经设置了指向Production的表的同义词Staging

我已经设置了一个 Service Broker 计时器队列/服务,每隔几秒钟执行一次,以将数据从已完成的临时表迁移到生产中。其 SQL 如下:

IF EXISTS (SELECT * FROM sys.services WHERE name = 'My_MigrationService')
BEGIN 
    DROP SERVICE My_MigrationService
END 
GO

IF EXISTS (SELECT * FROM sys.service_queues WHERE name = 'My_MigrationQueue')
BEGIN 
    DROP QUEUE My_MigrationQueue
END 
GO

CREATE QUEUE My_MigrationQueue
GO

CREATE SERVICE My_MigrationService ON QUEUE My_MigrationQueue ([DEFAULT])
GO

ALTER QUEUE My_MigrationQueue 
WITH ACTIVATION (
    STATUS = ON
    , MAX_QUEUE_READERS = 1
    , EXECUTE AS OWNER
    , …
Run Code Online (Sandbox Code Playgroud)

sql-server permissions service-broker sql-server-2014

5
推荐指数
1
解决办法
1456
查看次数