我尝试使用基于web的SPARQL端点(http://localhost:8890/sparql/)为Virtuoso中的RDF三元组执行一条INSERT语句:
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之后就成功了
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请求。这有可能吗?怎么可能?我去了手册的这一页,但那里是空的。
发布于 2017-10-17 16:22:02
OP的目标在他们最初试图访问的手册页的新位置中进行了讨论。(在产品网站上有更多的详细信息,转载如下。)
Virtuoso为支持经过身份验证的SPARUL的SPARQL服务保留路径
/sparql-auth/(a/k/a SPARQL)。这个端点允许特定的SQL帐户在SPARQL协议上执行SPARUL。要允许用户通过SQL或ODBC登录并更新物理三元组,必须授予用户SPARQL_UPDATE权限。为了赋予这一作用:
http://host:port/conductordba身份登录>>帐户角色列表中,选择SPARQL_UPDATE并单击SPARQL_UPDATE按钮将其添加到右侧列表中。发布于 2017-10-09 01:36:57
https://stackoverflow.com/questions/40897307
复制相似问题