[ckan-dev] datastore: permission denied Schema public

Dominik Moritz dominik.moritz at okfn.org
Thu Mar 28 11:29:55 UTC 2013


Hi,

We are currently working on a different approach to the permissions check which should solve all problems. Can you wait for the merge of https://github.com/okfn/ckan/pull/642? It will probably be ready some time next week. 

I assume that the table is not created because some checks do not return the expected results. 

Cheers,
Dominik

On 28 Mar 2013, at 12:06, User66 <user66 at arcor.de> wrote:

> Hi again,
> 
> I have seen some commits according these permission problems and replaced the two files regarding pull request #642, see https://github.com/okfn/ckan/commit/302a9ff87780ce6653f16fd77bf25496b586a9e2
> 
> Well, the permission problem seems now to be solved, I don't get internal server errors or exceptions any more.
> 
> But the alias table "_table_metadata" is not created. All the API checks using curl fail.
> 
> Cheers
> Ralf
> 
> ----------------ursprüngliche Nachricht-----------------
> Von: "User66" user66 at arcor.de 
> An: "CKAN Development Discussions" ckan-dev at lists.okfn.org 
> Datum: Wed, 27 Mar 2013 09:46:12 +0100
> -------------------------------------------------
> 
> 
>> Hi,
>> 
>> unfortunately the error has not gone. It now complains that the readonlyuser has 
>> write permissions.
>> 
>> What I did:
>> - Switched postgresql locale to "en_US.UTF-8"
>> - Re-Initialized the complete postgresql databases
>> - Installed CKAN databases "ckandb" and "datastore"
>> - Did a "git pull" to update to latest master branch
>> - Set permissions regarding "Option 1: Paster command" - all commands succeed
>> 
>> I am using both DBs on the same server and "ckanuser" as write user for both.
>> 
>> The users in set_permissions.sql are:
>> #######################
>> -- name of the main CKAN database
>> \set maindb 'ckandb'
>> -- the name of the datastore database
>> \set datastoredb 'datastore'
>> -- username of the ckan postgres user
>> \set ckanuser "ckanuser"
>> -- username of the datastore user that can write
>> \set wuser "ckanuser"
>> -- username of the datastore user who has only read permissions
>> \set rouser "readonlyuser"
>> #######################
>> 
>> The error is:
>> #######################
>> (pyenv)ckan at www :~/pyenv/src/ckan> paster --plugin=ckan db init
>> 2013-03-27 09:12:25,893 INFO [ckanext.datastore.plugin] Connection url 
>> postgresql://readonlyuser:xxx@localhost /datastore
>> Traceback (most recent call last):
>> File "/opt/ckan/pyenv/bin/paster", line 8, in <module>
>> load_entry_point('PasteScript==1.7.5', 'console_scripts', 'paster')()
>> File 
>> "/opt/ckan/pyenv/lib/python2.7/site-packages/paste/script/command.py
>> ", 
>> line 104, in run
>> invoke(command, command_name, options, args[1:])
>> File 
>> "/opt/ckan/pyenv/lib/python2.7/site-packages/paste/script/command.py
>> ", 
>> line 143, in invoke
>> exit_code = runner.run(args)
>> File 
>> "/opt/ckan/pyenv/lib/python2.7/site-packages/paste/script/command.py
>> ", 
>> line 238, in run
>> result = self.command()
>> File "/opt/ckan/pyenv/src/ckan/ckan/lib/cli.py", line 124, in command
>> self._load_config()
>> File "/opt/ckan/pyenv/src/ckan/ckan/lib/cli.py", line 86, in _load_config
>> load_environment(conf.global_conf, conf.local_conf)
>> File "/opt/ckan/pyenv/src/ckan/ckan/config/environment.py", line 349, in 
>> load_environment
>> plugin.configure(config)
>> File "/opt/ckan/pyenv/src/ckan/ckanext/datastore/plugin.py", line 66, in 
>> configure
>> self._check_read_permissions()
>> File "/opt/ckan/pyenv/src/ckan/ckanext/datastore/plugin.py", line 175, 
>> in _check_read_permissions
>> raise Exception("We have write permissions on the read-only database.")
>> Exception: We have write permissions on the read-only database.
>> #######################
>> 
>> Output from "psql -l":
>> #######################
>> postgres at www :~> psql -l
>> List of databases
>> Name | Owner | Encoding | Collate | Ctype | Access privileges 
>> 
>> -----------+----------+----------+-------------+-------------+------
>> -------------------
>> ckandb | ckanuser | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/ckanuser +
>> | | | | | ckanuser=CTc/ckanuser
>> datastore | ckanuser | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/ckanuser +
>> | | | | | ckanuser=CTc/ckanuser +
>> | | | | | readonlyuser=c/ckanuser
>> postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | 
>> template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
>> | | | | | postgres=CTc/postgres
>> template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
>> | | | | | postgres=CTc/postgres
>> (5 rows)
>> #######################
>> 
>> It seems that the readonlyuser really still has write permissions, because I am 
>> also able to execute the "create table" command within a psql shell.
>> I am not really familiar with postgresql, but could it be that basic permission 
>> settings have changed in postgresql 9.2.3?
>> 
>> Any other hints?
>> 
>> Cheers
>> Ralf
>> 
>> 
>> ----------------ursprüngliche Nachricht-----------------
>> Von: "User66" user66 at arcor.de 
>> An: ckan-dev at lists.okfn.org 
>> Datum: Tue, 26 Mar 2013 15:13:16 +0100
>> -------------------------------------------------
>> 
>> 
>>> Hi Dominik,
>>> 
>>> thanks for the tip.
>>> 
>>> After looking into the code your explanation sounds reasonable. I will
>>> switch the postgresql language to English. If you don't hear from me
>>> again, this issue is fixed (I can test it not before this evening).
>>> 
>>> Cheers
>>> Ralf
>>> 
>>> 
>>> Am 26.03.2013 11:06, schrieb Dominik Moritz:
>>>> Hallo Ralf,
>>>> 
>>>> We expect a permission error because there should be a connection that is 
>>>> not
>>>> allowed to write. However, the check only works if the error message is in
>>>> english, otherwise an exception is raised. 
>>>> 
>>>> There is an issue and a pull request at 
>>>> https://github.com/okfn/ckan/pull/642.
>>>> 
>>>> Until this fix is in the release branch, you could set the language of your
>>>> postgres installation to english. 
>>>> 
>>>> Best wishes,
>>>> Dominik
>> 
>> 
>> 
>> _______________________________________________
>> ckan-dev mailing list
>> ckan-dev at lists.okfn.org 
>> http://lists.okfn.org/mailman/listinfo/ckan-dev
>> Unsubscribe: http://lists.okfn.org/mailman/options/ckan-dev
>> 
> 
> 
> 
> _______________________________________________
> ckan-dev mailing list
> ckan-dev at lists.okfn.org
> http://lists.okfn.org/mailman/listinfo/ckan-dev
> Unsubscribe: http://lists.okfn.org/mailman/options/ckan-dev





More information about the ckan-dev mailing list