首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Virtuoso HTTP POST/PUT的身份验证

Virtuoso HTTP POST/PUT的身份验证
EN

Stack Overflow用户
提问于 2016-11-30 20:12:47
回答 2查看 1.1K关注 0票数 2

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

代码语言:javascript
复制
INSERT DATA
  { 
      GRAPH <http://my.graph> 
      { 
        <http://test.com/someid> <http://namespace.ref#someVar> 123
      } 
  }

但我有

Virtuoso 42000错误ID 186:安全性:没有使用用户ID 107、组ID 107执行过程DB.DBA.SPARQL_INSERT_DICT_CONTENT的权限

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

web接口/服务插入在我通过端口DBA运行了下面的1111之后就成功了

代码语言:javascript
复制
grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to "SPARQL";
grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to SPARQL_UPDATE;

但是,我想从用户POST/PUT/DELETE (据我理解为与web接口相关联)中撤销这些特权,并使用摘要身份验证发送具有提供的用户凭据的HTTP请求。这有可能吗?怎么可能?我去了手册的这一页,但那里是空的。

EN

回答 2

Stack Overflow用户

发布于 2017-10-17 16:22:02

OP的目标在他们最初试图访问的手册页的新位置中进行了讨论。(在产品网站上有更多的详细信息,转载如下。)

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

  1. 转到Virtuoso管理UI,即http://host:port/conductor
  2. 以用户dba身份登录
  3. 转到系统管理用户帐户User
  4. 单击编辑链接
  5. 用户类型设置为SQL/ODBC登录名和WebDAV
  6. 从可用的>>帐户角色列表中,选择SPARQL_UPDATE并单击SPARQL_UPDATE按钮将其添加到右侧列表中。
  7. 单击保存按钮。
票数 6
EN

Stack Overflow用户

发布于 2017-10-09 01:36:57

我学到了这里的这个程序,它为我工作:

作为dba登录,在系统管理>用户帐户下,

代码语言:javascript
复制
grant SPARQL_UPDATE to "SPARQL"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40897307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档