我正在尝试在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。
如何授予自己对服务器的权限?
答案 0 :(得分:2)
您在连接字符串中使用的任何凭据都需要是数据库的db_owner。我将该用户设为db_owner,它对我有用。
答案 1 :(得分:1)
我的问题也是。
当将SqlTableDependency verson从4.6.7.8降级到4.6.7时,我的代码运行良好:)
答案 2 :(得分:0)
请确保执行以下操作:
启用经纪人
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;
我希望有帮助。