我正在处理一个 amazon RDS postgresql 数据库,我知道公共模式存在一些问题(也许它被删除了)。但显然模式存在,无论如何问题没有解决。这是一个使用新创建的空数据库的示例会话:
mydb=> CREATE TABLE distributors (
mydb(> did integer,
mydb(> name varchar(40) UNIQUE
mydb(> );
ERROR: no schema has been selected to create in
mydb=> show search_path;
search_path
----------------
"$user",public
(1 row)
mydb=> create schema public;
ERROR: schema "public" already exists
Run Code Online (Sandbox Code Playgroud)
任何提示?我应该寻找什么?
解决了。 感谢 Daniel Vérité 的回答,我已经解决了以下问题:
grant usage on schema public to public;
grant create on schema public to public;
Run Code Online (Sandbox Code Playgroud)
这些是公共架构的默认权限吗?
我有一个可以访问数据库的用户,所以我认为这无论如何都不会增加安全风险......
我想我应该对template1进行相同的修改。这是正确的吗?如何检查 template1 中的权限是否正确(例如,默认值)?