This test makes sure that attempts to change the database during private browsing fail.
Setup statement 1 completed successfully
Setup statement 2 completed successfully
Private browsing statement 1 completed with an error
not authorized
Private browsing statement 2 completed with an error
not authorized
Private browsing statement 3 completed with an error
not authorized
Private browsing statement 4 completed with an error
not authorized
Private browsing statement 5 completed with an error
access to PrivateTest1.randomData is prohibited
Test ended

