微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为非 dbo 用户注册 SQL 表依赖

如何解决如何为非 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 举报,一经查实,本站将立刻删除。