SqlTableDependency权限问题

Ric*_*ker 5 c# sql-server permissions sql-server-2008

我正在尝试在C#.Net应用程序中使用SqlTableDependency类,但无法为自己授予所需的所需数据库权限。具体来说,我需要权限:

  • 改变
  • 控制
  • 建立合约
  • 创建消息类型
  • 建立程序
  • 创建队列
  • 创建服务
  • 执行
  • 选择
  • 订阅查询通知
  • 查看数据库状态
  • 查看定义
  • 连接

错误消息指出:

“ TableDependency.SqlClient.dll中发生了'TableDependency.SqlClient.Exceptions.UserWithNoPermissionException类型的未处理的异常。附加信息:没有CREATE MESSAGE TYPE权限的用户”

我尝试使用以下查询向自己授予权限:

GRANT CREATE MESSAGE TYPE TO dbo
Run Code Online (Sandbox Code Playgroud)

但是我得到这个错误:

“无法授予,拒绝或撤消对sa,dbo,实体所有者,information_schema,sys或您自己的权限。”

我已经确认dbo是我的数据库的所有者。

我正在运行Sql Server 2008 R2。

如何授予自己对服务器的权限?

Ken*_*sta 5

确保执行以下操作:

启用经纪商

ALTER DATABASE Your_db_name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
Go
Run Code Online (Sandbox Code Playgroud)

添加到 db_owner

ALTER ROLE db_owner ADD MEMBER Your_user_db_name
GO
Run Code Online (Sandbox Code Playgroud)

设置授权

ALTER AUTHORIZATION ON DATABASE::Your_db_name TO Your_user_db_name;
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。


小智 1

我的问题也是。

当将 SqlTableDependency 版本从 4.6.7.8 降级到 4.6.7 时,我的代码运行良好:)