首页 文章

Virtuoso HTTP POST / PUT的身份验证

提问于
浏览
0

我尝试使用基于Web的SPARQL endpoints (http://localhost:8890/sparql/)在Virtuoso中为RDF三元组执行 INSERT 语句:

INSERT DATA
  { 
      GRAPH <http://my.graph> 
      { 
        <http://test.com/someid> <http://namespace.ref#someVar> 123
      } 
  }

但我明白了

Virtuoso 42000错误SR186:安全:无权执行具有用户ID 107,组ID 107的过程DB.DBA.SPARQL_INSERT_DICT_CONTENT

我能够通过我的DB编辑器运行相同的语句,该编辑器使用 DBA 登录端口 1111 上的JDBC驱动程序 .

在我通过端口 1111 作为 DBA 运行以下后,Web界面/服务插入成功:

grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to "SPARQL";
grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to SPARQL_UPDATE;

但是,我想从用户 SPARQL 撤消这些权限,我理解这些权限与Web界面相关联,并使用摘要式身份验证发送带有提供的用户凭据的HTTP POST / PUT / DELETE 请求 . 这可能吗?怎么样?我去了this page of the manual但它是空的 .

2 回答

  • 3

    OP的目标在他们最初试图访问的_1541352中进行了讨论 . (更多详细信息在产品网站上,而不是在下面复制 . )

    Virtuoso为支持经过身份验证的SPARUL(a / k / a SPARQL-Update)的SPARQL服务保留路径/ sparql-auth / . 此 endpoints 允许特定SQL帐户通过SPARQL协议执行SPARUL . 要允许通过SQL或ODBC登录并更新物理三元组,必须授予用户SPARQL_UPDATE权限 . 要授予此角色:转到Virtuoso管理UI,即http:// host:port / conductor以用户dba身份登录转到系统管理→用户帐户→用户单击编辑链接将用户类型设置为SQL / ODBC登录和WebDAV的 . 从可用的帐户角色列表中,选择SPARQL_UPDATE,然后单击>>按钮将其添加到右侧列表中 . 单击“保存”按钮 .

  • 0

    这个程序,我选择here,对我有用:

    在系统管理>用户帐户下以dba身份登录,

    grant SPARQL_UPDATE to "SPARQL"
    

相关问题