我想在PostgreSQL中创建一个只读用户。
目的是创建一个公共可访问的数据浏览器,用户可以编写自定义SQL查询。
以下是创建用户的步骤:
CREATE USER MyReadOnlyUser WITH ENCRYPTED PASSWORD 'MY_WEAK_PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE "MY_DB_NAME" to MyReadOnlyUser;
GRANT ALL ON SCHEMA public TO MyReadOnlyUser;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO MyReadOnlyUser;
意图是给用户对所有表进行SELECT访问,然后在敏感表上撤销SELECT访问权限,然后用户可以使用该db用户运行自定义查询,无需我清理输入。特别地,他不能进行插入、删除、截断、删除表、删除数据库、创建表、创建函数/存储过程、查看/执行/创建/删除存储过程/函数等操作。所以,现在我的问题是:为什么该用户可以访问information_schema?它没有被授予任何视图的访问权限,也没有访问模式information_schema...