#permissions #sparql #grant #virtuoso
#разрешения #sparql #sql-грант #виртуоз
Вопрос:
Мне нужно предоставить разрешения, загрузить данные RDF и вставить, изменить и удалить некоторые из троек в скрипте (не в интерактивном режиме через Virtuoso Conductor).
Я предоставляю разрешения для 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
Как я могу решить эту проблему? пожалуйста, помогите.
Спасибо, Ян
Ответ №1:
Учитывая ограниченную информацию здесь, я думаю, это может решить вашу проблему —
isql VERBOSE=$VERB ERRORS=stdout ECHO=$VERB "exec=grant SPARQL_UPDATE to "SPARQL";"
В противном случае вы можете получить более быстрый ответ (для версии с открытым исходным кодом) через список рассылки Virtuoso Users или (для коммерческой версии и / или контракта на поддержку VOS) через обращение в службу поддержки OpenLink.
(ObDisclaimer: программное обеспечение OpenLink производит Virtuoso и нанимает меня.)
Ответ №2:
Решение проблемы заключается в предоставлении привилегий при удалении также:
grant execute on DB.DBA.SPARQL_DELETE_DICT_CONTENT to "SPARQL";
Комментарии:
1. В другом случае
grant "SPARQL_UPDATE" to "SPARQL"
было решение.