PostgreSQL 版本 9.1,
我正在使用默认用户“postgres”登录数据库,我的数据库包含默认角色“public”
我拥有的数据库列表,
1.数据库1
2.数据库2
3.数据库3
现在,我需要创建一个只有“database2”权限的用户“newuser”,它不应该登录到其他数据库。
我试过使用这种语法
create role newuser with login nosuperuser nocreatedb nocreaterole noinherit password 'newpassword';
revoke all privileges on database database1, database3 from newuser;
但“新用户”仍然可以登录到其他数据库(数据库 1/数据库 3)并且它可以从其他模式中选择表。 (未列出公共(public)架构中的表)
请任何人向我解释创建用户并向他们授予权限的正确过程。
我需要一个只能对特定数据库拥有所有权限的用户,他不应该登录到其他数据库:)
最佳答案
您可以通过运行以下命令删除用户对数据库的权限:
REVOKE ALL PRIVILEGES ON DATABASE database_name FROM username;
关于sql - 将用户权限限制为仅对一个特定数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11012441/