如何在Virtuoso中编写SPARQL权限授予脚本

时间:2016-09-30 10:39:42

标签: permissions sparql grant virtuoso

我需要在脚本中(不通过Virtuoso Conductor交互式)授予权限,加载RDF数据以及插入,修改和删除一些三元组。

我为Virtuoso版本 7.1.0.3207 授予权限,并且工作正常:

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.SPARQL_MODIFY_BY_DICT_CONTENTS to \"SPARQL\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.SPARQL_MODIFY_BY_DICT_CONTENTS to \"SPARQL_UPDATE\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.SPARQL_DELETE_DICT_CONTENT to \"SPARQL\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.SPARQL_DELETE_DICT_CONTENT to \"SPARQL_UPDATE\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to \"SPARQL\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.SPARQL_INSERT_DICT_CONTENT to \"SPARQL_UPDATE\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.L_O_LOOK to \"SPARQL\";"

isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant execute on DB.DBA.L_O_LOOK to \"SPARQL_UPDATE\";"

但它似乎不适用于版本 7.2.4.2.3217 我通过删除三元组得到了错误消息。

  

Virtuoso 42000 Error CL...:SECURITY: No SPARQL_UPDATE permission to use RDF loader

我该如何解决这个问题?请帮忙。

谢谢,Yan

2 个答案:

答案 0 :(得分:0)

由于此处的信息有限,我认为这可能会解决您的问题 -

 isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant SPARQL_UPDATE to \"SPARQL\";"

如果没有,您可以通过Virtuoso Users mailing list或(对于商业版和/或VOS支持合同)通过OpenLink Support Case获得更快的响应(对于开源版本)。

(ObDisclaimer:OpenLink Software生成Virtuoso,雇用我。)

答案 1 :(得分:-1)

问题的解决方案是同时授予删除权限:

grant execute on DB.DBA.SPARQL_DELETE_DICT_CONTENT to "SPARQL";