【问题标题】:SqlTableDependency Permission IssuesSqlTableDependency 权限问题
【发布时间】:2017-04-12 18:30:07
【问题描述】:

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

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

错误消息指出:

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

我已尝试使用此查询授予自己权限:

GRANT CREATE MESSAGE TYPE TO dbo

但我收到此错误:

"不能授予、拒绝或撤销对 sa、dbo、实体所有者的权限, information_schema、sys 或您自己。”

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

我正在运行 Sql Server 2008 R2。

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

【问题讨论】:

  • 这是你设置的服务器吗?
  • 是的,我自己设置的。
  • 你在安装sql server的时候,是否设置了admin账号?

标签: c# sql-server sql-server-2008 permissions


【解决方案1】:

确保这样做:

启用代理

ALTER DATABASE Your_db_name SET ENABLE_BROKER WITH ROLLBACK IMMEDIATE;
Go

添加到 db_owner

ALTER ROLE db_owner ADD MEMBER Your_user_db_name
GO

设置授权

ALTER AUTHORIZATION ON DATABASE::Your_db_name TO Your_user_db_name;

希望对你有所帮助。

【讨论】:

    【解决方案2】:

    您在连接字符串中使用的任何凭据都必须是数据库的 db_owner。我将该用户设为 db_owner,它对我有用。

    【讨论】:

      【解决方案3】:

      我的问题也是。

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

      【讨论】:

      • 请在评论区发表这些内容
      猜你喜欢
      • 1970-01-01
      • 2011-10-02
      • 2011-06-03
      • 2011-05-12
      • 2020-09-14
      • 2019-05-11
      • 2014-04-20
      • 2011-03-10
      • 2010-10-10
      相关资源
      最近更新 更多