我在psql中运行了以下SQL:
CREATE USER bspu LOGIN;
CREATE DATABASE bsp OWNER bspu;
GRANT ALL PRIVILEGES ON DATABASE bsp TO bspu;
\c bsp
CREATE TABLE users (
id SERIAL PRIMARY KEY,
client_id VARCHAR(20) NOT NULL,
api_key VARCHAR(100) NOT NULL,
api_secret VARCHAR(100) NOT NULL,
auth_token VARCHAR(128) NOT NULL
);
当我以身份登录bspu
并尝试查询users
表时,出现错误:
permission denied for relation users
我尝试跑步:
ALTER DEFAULT PRIVILEGES GRANT ALL ON TABLES TO bspu;
但这没有帮助。我究竟做错了什么?为什么数据库所有者没有查询自己数据库的权限?
编辑:我bspu
现在已升级为超级用户,因此我可以继续工作。任何进一步的指导表示赞赏。
@bma仅列出了我的主要帐户。
—
如果__name__为None 2013年
您以什么用户身份运行初始命令?您从
—
Erwin Brandstetter,
SELECT session_user, current_user
脚本顶部得到什么?您的Postgres版本是什么?
如果这些是您运行的确切命令,那么您仍与“主acc”保持连接。因此,降低了您拥有的特权。否则,请参见Erwin的出色答案。(让我承认我很愚蠢,此错误消息没有告诉您哪个角色没有权限。例如,当一个人使用SECURITY DEFINER运行一系列功能时,很快就会弄混谁是谁。)
—
dezso
\dt "users"
show 的输出是什么?