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使用摘要身份验证提供的用户凭据请求。这是可能的吗?我去了手册的这个页面,但它是空的。
OP 的目标在他们最初尝试访问的手册页的新位置中进行了讨论。(更多详细信息在产品网站上,而不是在下面复制。)
Virtuoso
/sparql-auth/为支持经过身份验证的 SPARUL(a/k/a SPARQL-Update)的 SPARQL 服务保留了路径。此端点允许特定 SQL 帐户通过 SPARQL 协议执行 SPARUL。要允许通过 SQL 或 ODBC 登录并更新物理三元组,必须授予用户SPARQL_UPDATE特权。要授予此角色:
转到 Virtuoso 管理用户界面,即,
http://host:port/conductor以用户身份登录
dba转到系统管理员?用户帐户? 用户
点击编辑链接
将用户类型设置为SQL/ODBC Logins 和 WebDAV。
从可用帐户角色列表中,选择
SPARQL_UPDATE并单击>>按钮将其添加到右侧列表中。单击保存按钮。