SPARUL INSERT access denied even after granting update permission

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.

Please suggest how can I avoid this error.

What are the versions of the two Virtuoso servers in use here for comparison, as if both are the same version and setup the same then they should exhibit the same behaviour …

I just installed Virtuoso on a new Mac (Monterey), and I suddenly have the exact same problem. This is Virtuoso 7.2.8.

This is quite critical for me, as it means I can’t load any data into Virtuoso, and so am stuck.

What do you mean by suddenly have the exact same problem ? As it seems to be imply this was working and suddenly stopped, or has it not worked at all since it was just installed ?

Please provide details of the specific method being used to perform the data load/insert and any error messages occurring ?

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

SPARQL query:
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

I have been able to recreate this problem with the Virtuoso 7.2.8 macOS installer and have reported to development to look into and fix.

In the meantime you can use the ~/sparql-auth endpoint and login as dba to perform SPARUL operations.

1 Like

Thank you! It took a little while to modify the tooling to support digest auth, but now loading data works fine.

It turns out querying now has the same problem, but I guess I can fix that the same way.

"querying now has the same problem" in what way, as the default ~/sparql endpoint always allows select/read queries by default ?

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. Until this is fixed, it can be worked around by running the following SQL command (via iSQL or any SQL database connection, e.g., ODBC, JDBC, ADO.NET, etc.):

DB.DBA.RDF_DEFAULT_USER_PERMS_SET ('nobody', 7);