I have a Virtuoso server running on a remote machine and can access the conductor UI by logging in as dba user. I have created a graph using Linked Data → Quad Store Upload on which I am able to run select SPARQL queries from Linked Data → SPARQL. However, when I run INSERT DATA query I am facing the following error.
Virtuoso RDF02 Error SR619: SPARUL INSERT access denied: database user 108 (SPARQL) has no write permission on graph http://localhost:8890/dummy
I have checked on System Admin → User Accounts that the users SPARQL/dba have SPARQL_UPDATE, SPARQL_SELECT role. I have checked Linked Data → Graphs → Roles Security and it seems fine. I have the same setup on my local machine on which I initially faced a similar permission issue but after granting roles SPARQL_UPDATE, SPARQL_SELECT role it was resolved.
I always install Virtuoso with brew, and did that on the previous laptop, too. And other laptops. Previous laptop had 7.2.6. The one piece of config I have had to do before to make things work is execute “grant SPARQL_UPDATE to “SPARQL”;”
Now suddenly on the new laptop I get this problem (same as OP), which I’ve never seen before. Like OP I checked user accounts and roles security, but everything looks reasonable.
The method used to insert data is HTTP POST to localhost:8890/sparql. First “clear graph”, on a graph that doesn’t yet exist, then “insert into”. It’s the “clear graph” that fails.
Here’s more detailed output:
Virtuoso RDF02 Error SR619: SPARUL CLEAR GRAPH access denied: database user 108 (SPARQL) has no write permission on graph http://psi.garshol.priv.no/2015/neu-responses
define sql:big-data-const 0
clear graph <http://psi.garshol.priv.no/2015/neu-responses>
Virtuoso RDF02 Error SR619: SPARUL INSERT access denied: database user 108 (SPARQL) has no write permission on graph http://psi.garshol.priv.no/2015/neu-responses
This is a known issue development are looking into. The issue being that by default the internal ‘nobody’ user has no permissions to modify graphs by default, and can be worked around by running the command: