我需要在脚本中(不通过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
答案 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";