2016-11-30 9 views
0

Я пытался выполнить INSERT заявление для RDF тройная в Виртуоз, используя свой веб-SPARQL конечной точки (http://localhost:8890/sparql/):Аутентификация для Виртуоз HTTP POST/PUT

INSERT DATA 
    { 
     GRAPH <http://my.graph> 
     { 
     <http://test.com/someid> <http://namespace.ref#someVar> 123 
     } 
    } 

, но я получил

Ошибка Virtuoso 42000 SR186: БЕЗОПАСНОСТЬ: нет разрешения на выполнение процедуры DB.DBA.SPARQL_INSERT_DICT_CONTENT с идентификатором пользователя 107, идентификатором группы 107

Я смог запустить тот же оператор через свой редактор БД, который использует драйвер JDBC на порту 1111, используя логин DBA.

Вставка веб-интерфейс/сервис был успешным после того, как я побежал следующее как 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; 

Однако, я хотел бы отменить эти привилегии от пользователя SPARQL, которые я понимаю связан с веб-интерфейс и отправить HTTP POST/PUT/DELETE запросы с предоставленными учетными данными пользователя с использованием дайджест-аутентификации. Это возможно и как? Я пошел в this page of the manual, но он был пуст.

+1

Руководство подвергается некоторой реструктуризации. Раздел, который вы хотели, - [здесь, здесь] (http://docs.openlinksw.com/virtuoso/rdfsparqlprotocolendpoint/#rdfsupportedprotocolendpointurisparqlauthex) (глава теперь разделена на несколько страниц). – TallTed

+0

спасибо. если вы хотите повысить свой рейтинг (и увеличить видимость своего продукта через поисковые системы), подумайте о публикации дайджеста этой страницы, поскольку он относится к моему вопросу в ответе. – amphibient

ответ

0

Эта процедура, которую я взял here, работал для меня:

Зашли как дБА, при System Admin> Учетные записи пользователей,

grant SPARQL_UPDATE to "SPARQL" 
+0

Этот ответ не касается желания OP использовать «предоставленные учетные данные пользователя с использованием аутентификации дайджеста» и просто открывает публичную конечную точку для обновлений от кого-либо. – TallTed

2

Цель OP в обсуждается в the new location of the manual page первоначально они пытались посетить. (Более подробная информация на сайте продукта, чем воспроизводятся ниже.)

Виртуоз оставляет путь /sparql-auth/ для службы SPARQL, поддерживающей аутентификацией SPARUL (а/к/SPARQL-Update). Эта конечная точка позволяет определенным учетным записям SQL выполнять SPARUL по протоколу SPARQL. Чтобы разрешить вход в систему через SQL или ODBC и обновление физических троек, пользователю должны быть предоставлены привилегии SPARQL_UPDATE. Чтобы предоставить эту роль:

  1. Перейти к администрации UI Virtuoso, т.е. http://host:port/conductor

  2. Войти как пользователь dba

  3. Перейти к администратора системыUser AccountsПользователи

  4. Нажмите Редактировать ссылку

  5. типа Set пользователя к SQL/ODBC логины и WebDAV.

  6. Из списка доступных ролей счета, выберите SPARQL_UPDATE и нажмите кнопку >>, чтобы добавить его в список справа.

  7. Нажмите Сохранить button.