我们有很多客户使用db_datawriter和db_datareader角色连接到sql server 到目前为止,我们没有定义灵活的角色。
现在我们的软件新使用了worklfow foundataion持久性存储。
为了像here所描述的那样启用它,我们使用了SQL脚本SqlWorkflowInstanceStoreSchema.sql和SqlWorkflowInstanceStoreLogic.sql,它们创建了一个新的数据库模式System.Activities.DurableInstancing
和3个新角色:
System.Activities.DurableInstancing.InstanceStoreObservers
System.Activities.DurableInstancing.InstanceStoreUsers
System.Activities.DurableInstancing.WorkflowActivationUsers
具有db_datawriter
和db_datawriter
角色的用户只能获得SqlException:
对象'CreateLockOwner'上的EXECUTE权限被拒绝, 数据库'mydatabase',schema'System.Activities.DurableInstancing'。
它发生在store.Execute,如果软件启动:
InstanceHandle handle = store.CreateInstanceHandle();
var createOwnerCommand = new CreateWorkflowOwnerCommand
{
InstanceOwnerMetadata =
{
{ XNWorkflowHostTypePropertyName, new InstanceValue(XNWorkflowHostTypeIdentifierName) }
}
};
InstanceView view = store.Execute(handle, createOwnerCommand, TimeSpan.FromSeconds(30));
我已经尝试过这个:
EXEC sp_addrolemember @rolename = 'System.Activities.DurableInstancing.InstanceStoreObservers' , @membername ='db_datawriter';
EXEC sp_addrolemember @rolename = 'System.Activities.DurableInstancing.InstanceStoreUsers' , @membername ='db_datawriter';
EXEC sp_addrolemember @rolename = 'System.Activities.DurableInstancing.WorkflowActivationUsers', @membername ='db_datawriter';
带有错误消息:错误15405:无法使用特殊主体'db_datawriter'。
Qquestion:
我是否有任何其他可能性忽略了使用脚本向此角色授予权限,而不知道登录名等。
答案 0 :(得分:0)
通常,您不会授予用户对持久性存储的访问权限 应用程序的用户通过工作流引擎使用持久性存储,引擎可以访问商店。
是否有特殊情况需要他们直接访问商店?