Sql 授权选择根本不起作用
我有一个需要允许Sql 授权选择根本不起作用,sql,postgresql,Sql,Postgresql,我有一个需要允许SELECT访问数据库的用户。我已经按照我发现的分散在各处的所有说明进行操作,所以我什么也做不到 我尝试了以下所有链接的所有建议解决方案: …以及更多对PSQL文档、博客和用户组的引用。什么都没用 以下是我最近作为postgres用户用来授予特权的命令: postgres@dev:~$ psql psql (9.1.9) Type "help" for help. postgres=# grant usage on SCHEMA public to proton_read
SELECT
访问数据库的用户。我已经按照我发现的分散在各处的所有说明进行操作,所以我什么也做不到
我尝试了以下所有链接的所有建议解决方案:
…以及更多对PSQL文档、博客和用户组的引用。什么都没用
以下是我最近作为postgres用户用来授予特权的命令:
postgres@dev:~$ psql
psql (9.1.9)
Type "help" for help.
postgres=# grant usage on SCHEMA public to proton_read;
GRANT
postgres=# grant select on all tables in schema public to proton_read;
GRANT
postgres=# alter default privileges in schema public grant select on tables to proton_read;
ALTER DEFAULT PRIVILEGES
以下是用作只读用户的命令:
proton_read@dev:~$ psql proton
psql (9.1.9)
Type "help" for help.
proton=> select * from leads_lead limit 1;
ERROR: permission denied for relation leads_lead
这是踢球的人,我曾经让它工作过一次。我有一个示例数据库转储,用于向业务同事传授基本SQL。我们将介绍一些简单的命令,如SELECT
、orderby
、LIMIT
和JOIN
。我有一个旧的转储文件,可以授予只读访问权限。我删除了数据库,并使用更新版本的数据库进行了pg_还原,现在我无法重新授予SELECT访问权限
任何帮助都将不胜感激。在PostgreSQL中,每个连接都指向一个特定的数据库,您运行的几乎所有操作都只在该数据库中有效。(一个例外是,用户/角色本身的创建对于整个“集群”来说是全局的,即运行Postgres服务器。) 在显示的
psql
命令中,您第一次连接时未指定数据库(psql
),该数据库将您连接到以当前系统用户命名的数据库,即postgres
。这显示在psql
提示符的开头:postgres=#
(#
显示您已作为超级用户连接)
因此,只有该数据库被GRANT
语句更改
第二个示例使用正确的命令连接到特定的数据库,psql-proton
,您可以看到提示反映了这一点:proton=>
(由于您没有以超级用户身份连接,
替换了#
)
因此,您需要做的就是以您的postgres
用户身份运行psql-proton
,并以超级用户身份在特定数据库上运行GRANT
语句。您的提示将显示为proton=#
,以显示您在正确的位置