postgres分离模式和数据库概念。 如何向数据库中所有表的用户授予选择特权?
postgres=# GRANT ALL on DATABASE dbname to tbdev;
GRANT
太好了,您会想到所有权限吗?除了实际上没有以外,那些不包括任何SELECT
之类的数据库操作。然后尝试:
postgres=# GRANT SELECT on DATABASE dbname to tbdev;
ERROR: invalid privilege type SELECT for database
读取SELECT不是针对数据库的,而是pgs模式的抽象层。因此尝试使用公共模式,但这些都不起作用:
GRANT ALL on SCHEMA public to tbdev;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO tbdev ;
作为该用户,我仍然得到:
ticket_battle=> select * from events;
ERROR: permission denied for table events
那么通常如何使用PG创建用户和数据库?