如何解决如何为非 dbo 用户注册 SQL 表依赖
我们正在尝试使用非 DBO sql 用户从 .Net 代码启用 sqlTableDependency,目前,它抛出权限异常“指定的架构名称“dbo”不存在或您无权使用它“。
var connectionString = dataAccessManage.ConnectionStringTobroker;
_tableDependency = new sqlTableDependency<Plan>(connectionString,schemaName : "",executeUserPermissionCheck: false); ;
try
{
_tableDependency.OnChanged += Plan_OnChanged;
_tableDependency.Start();
Console.WriteLine("Waiting for receiving notifications...");
}
catch (Exception ex)
{
LogsWritter.SendErrorToText(ex,errorLogConfiguration);
_tableDependency.Stop();
throw;
}
我们进行了一些故障排除,发现如果我们为非 DBO 用户授予以下权限,它会正常工作。
权限 -
ALTER
CONNECT
CONTROL
CREATE CONTRACT
CREATE MESSAGE TYPE
CREATE PROCEDURE
CREATE QUEUE
CREATE SERVICE
EXECUTE
SELECT
SUBSCRIBE QUERY NOTIFICATIONS
VIEW DATABASE STATE
VIEW DEFinitioN
问题是这些权限声明不会通过我们的安全审查。我们不能授权db_owner权限,也不能授予整个数据库的ALTER、CONTROL、EXECUTE、SELECT(基本上就是db_owner权限)。
所以需要知道为受限权限用户启用sqlTableDependency的解决方案,通过我们的安全审查。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。