Virtuoso HTTP POST/PUT 认证

amp*_*ent 1 security rdf http-post virtuoso

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

INSERT DATA
  { 
      GRAPH <http://my.graph> 
      { 
        <http://test.com/someid> <http://namespace.ref#someVar> 123
      } 
  }
Run Code Online (Sandbox Code Playgroud)

但我得到了

Virtuoso 42000 错误 SR186:SECURITY: 无权限使用用户 ID 107、组 ID 107 执行过程 DB.DBA.SPARQL_INSERT_DICT_CONTENT

我能够通过我的数据库编辑器运行相同的语句,该编辑器在 port 上使用 JDBC 驱动程序1111,使用DBA登录名。

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

grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to "SPARQL";
grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to SPARQL_UPDATE;
Run Code Online (Sandbox Code Playgroud)

不过,我想撤消用户的特权SPARQL,我的理解是与网络接口相关联,并发送HTTP POST/ PUT/DELETE使用摘要身份验证提供的用户凭据请求。这是可能的吗?我去了手册的这个页面,但它是空的。

Tal*_*Ted 6

OP 的目标在他们最初尝试访问的手册页的新位置中进行了讨论。(更多详细信息在产品网站上,而不是在下面复制。)

Virtuoso/sparql-auth/为支持经过身份验证的 SPARUL(a/k/a SPARQL-Update)的 SPARQL 服务保留了路径。此端点允许特定 SQL 帐户通过 SPARQL 协议执行 SPARUL。要允许通过 SQL 或 ODBC 登录并更新物理三元组,必须授予用户SPARQL_UPDATE特权。要授予此角色:

  1. 转到 Virtuoso 管理用户界面,即, http://host:port/conductor

  2. 以用户身份登录 dba

  3. 转到系统管理员用户帐户? 用户

  4. 点击编辑链接

  5. 用户类型设置为SQL/ODBC Logins 和 WebDAV

  6. 从可用帐户角色列表中,选择SPARQL_UPDATE并单击>>按钮将其添加到右侧列表中。

  7. 单击保存按钮。