私はポストグルでいくつかのリレーションシップに対するユーザー権限を得るためにすべてを試しました。ここで私が試したものです:関係に関係なくパーミッションを取得できません
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO myuser;
ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES TO myuser;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO myuser;
私はこれに私のpg_hba.cnfを変更しました:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local replication postgres peer
#host replication postgres 127.0.0.1/32 ident
#host replication postgres ::1/128 ident
私はあなたが右の彼らと周りいじるならば、これらのコマンドは何かを確信しているが、なぜこれらのコマンドのいずれも、彼らが言うことに近いところでは何もしませんか?
私が使用しているのpython:もちろんの
ALTER DATABASE mydb OWNER TO myuser;
して再起動し、私も試してみました
>>> cur.execute('select count(*) from public.mytable')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
psycopg2.ProgrammingError: permission denied for relation mytable
:
>>> conn = psycopg2.connect(host="localhost", port="5432", dbname="mydb",user="myuser", password="mypassword")
>>> cur = conn.cursor()
>>> cur.execute('select count(*) from mytable')
これは私が取得していますエラーです。
エラーが発生する前に、どのコマンドを実行しますか? –
スキーマ 'public'のテーブルはありますか? 'psql'で接続すると' myuser'というユーザとしてアクセスできますか? –
明らかに:スキーマ公開では 'mytable'ですか?または、それはおそらくsearch_path上の別のスキーマにありますか? –