Size: a a a

pgsql – PostgreSQL

2020 June 05

DP

Dmitry Paziy in pgsql – PostgreSQL
попробуй проверить права у юзера
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
Подскажите как это сделать?
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'username';
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
кхм
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
CREATE USER ivanov
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
а на скрине смирнов
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
ERROR:  role "smirnov" already exists

Тоже думал
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
Dmitry Paziy
CREATE USER ivanov
Не-не, я для примера ivanov написал. Используется smirnov, база stickerapp
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
postgres=# CREATE USER smirnov WITH PASSWORD 'password'
postgres-# ;
ERROR:  role "smirnov" already exists
postgres=#
postgres=# GRANT ALL ON DATABASE stickerapp TO smirnov;  
GRANT
postgres=#
postgres=# SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'smirnov';
table_catalog | table_schema | table_name | privilege_type
---------------+--------------+------------+----------------
(0 rows)
источник

V

Victor in pgsql – PostgreSQL
не кидайте камнями, изучаю postgres, в pgadmin выполняю запрос
SELECT * FROM pg_database;
SELECT * FROM pg_stat_replication;
в результате рассчитываю увидеть 2 роусета, как в SSMS но что то не так. что настроить чтоб увидть результаты сразу обоих запросов
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
Скрудж 🥔
postgres=# CREATE USER smirnov WITH PASSWORD 'password'
postgres-# ;
ERROR:  role "smirnov" already exists
postgres=#
postgres=# GRANT ALL ON DATABASE stickerapp TO smirnov;  
GRANT
postgres=#
postgres=# SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'smirnov';
table_catalog | table_schema | table_name | privilege_type
---------------+--------------+------------+----------------
(0 rows)
а так?
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
select relacl from pg_catalog.pg_class where relname='TABLE_NAME';
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
а тебе же на базу надо
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Скрудж 🥔
postgres=# CREATE USER smirnov WITH PASSWORD 'password'
postgres-# ;
ERROR:  role "smirnov" already exists
postgres=#
postgres=# GRANT ALL ON DATABASE stickerapp TO smirnov;  
GRANT
postgres=#
postgres=# SELECT table_catalog, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee = 'smirnov';
table_catalog | table_schema | table_name | privilege_type
---------------+--------------+------------+----------------
(0 rows)
права же разные:
- на подключение к базе
- на доступ в схему
- на SELECT/INSERT/UPDATE/DELETE/etc таблицы
- на последовательности
- и пр.
доку посмотрите по команде GRANT
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
Victor Yegorov
права же разные:
- на подключение к базе
- на доступ в схему
- на SELECT/INSERT/UPDATE/DELETE/etc таблицы
- на последовательности
- и пр.
доку посмотрите по команде GRANT
Просто я делал точно также для себя, на своего пользователя, отдельно создавать его:

CREATE USER stickerappadmin WITH PASSWORD '...';

А затем GRANT ALL ON DATABASE stickerapp TO stickerappadmin;

Все работает, в этом случае не понимаю что конкретно нужно сделать
источник

VY

Victor Yegorov in pgsql – PostgreSQL
если ваш юзер — владелец объектов, то он может делать с ними всё по определению
источник

С🥔

Скрудж 🥔 in pgsql – PostgreSQL
Он никак не был связан с этой базой, т.е. был создан отдельно

Но я также пытался сделать GRANT ALL PRIVILEGES ON SCHEMA public TO smirnov;

Ничего
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
источник

DP

Dmitry Paziy in pgsql – PostgreSQL
я обычно принудительно указываю   WITH LOGIN
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Скрудж 🥔
Добрый день. СУБД postgresql

Коллеге нужно выдать профиль для доступа к базе stapp

Сделал так:

зашел под psql (sudo -u postgres psql)

Создал пользователя
CREATE USER ivanov WITH PASSWORD '123abcdef';

Затем пишу:

GRANT ALL ON DATABASE stapp TO ivanov;

пишет в ответ GRANT, но когда заходишь под этим аккаунтом, ошибка от pycharm Permission Denied (код 42501)

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