2016-08-22 1 views
1

Это мой init.sql файл:Почему я не могу получить доступ к любой функции БД в PSQL?

DROP DATABASE IF EXISTS my_data; 
CREATE DATABASE my_data; 

DROP USER IF EXISTS u; 
CREATE USER u WITH PASSWORD 'secret'; 

GRANT ALL ON ALL TABLES IN SCHEMA public TO u; 
GRANT ALL ON ALL SEQUENCES IN SCHEMA public TO u; 
GRANT ALL ON ALL FUNCTIONS IN SCHEMA public TO u; 

\c my_data; 

CREATE TABLE users (
    ID SERIAL PRIMARY KEY NOT NULL, 
    email VARCHAR NOT NULL DEFAULT '', 
    password VARCHAR NOT NULL DEFAULT '', 
    active SMALLINT NOT NULL DEFAULT '1', 
    created TIMESTAMP NOT NULL, 
    modified TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    salt VARCHAR NOT NULL DEFAULT '' 
); 

Тогда, если я:

psql -f init.sql 

И ..

psql -d my_data -U u 

my_data=> select * from users; 

ERROR: permission denied for relation users 

Почему это разрешение может быть отказано, если я получил это?

Подробнее

my_data=> \z users 
         Access privileges 
Schema | Name | Type | Access privileges | Column access privileges 
--------+-------+-------+-------------------+-------------------------- 
public | users | table |     | 
(1 row) 

ответ

3

Вы только дали разрешение на схеме, которая отделена от таблиц. Если вы хотите дать разрешения на столах также можно использовать

GRANT ALL ON ALL TABLES IN SCHEMA public TO u; 

Обратите внимание, что если у вас есть последовательности или другие объекты, они также нужны отдельные разрешения.

Это должно быть установлено после таблицы были созданы, поскольку для существующих объектов установлены разрешения.

Если вы хотите установить права доступа по умолчанию для новых объектов, которые можно использовать

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO u; 
+0

Хм .. обновил свой пост в связи с вашим ответом, чтобы добавить все гранты, но все еще такую ​​же ошибку. – Trip

+0

Что говорит '\ z users'? Также в какой момент вы создаете таблицу, так как она не показана в скрипте. –

+0

Обновлено с ответом '/ z users 'и моими данными о создании таблицы в OP – Trip

Смежные вопросы