led*_*sma 6 postgresql postgresql-9.2
我试图撤销用户对数据库的所有权限,但我无法让它工作。
我在做:
REVOKE ALL PRIVILEGES ON DATABASE db1 FROM user1;
Run Code Online (Sandbox Code Playgroud)
REVOKE ALL
指的是一个对象的所有权限,而不是任何相关对象的权限。在这种情况下,您所说的是“作为单个对象应用于数据库的所有权限”。数据库级别存在的唯一权限是CONNECT
,默认情况下,该权限被授予特殊角色Public
,所有其他角色都是该角色的成员。
因此,要以这种方式拒绝用户的访问,您必须从 Public 撤销 CONNECT 权限,然后将其显式授予您确实想要授予访问权限的角色。
我想到了其他一些选择:
public
架构已将其授予公共角色,因此您需要像 CONNECT 一样首先撤销REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA foo FROM somebody
针对不同的对象类型。您还应该使用它ALTER DEFAULT PRIVILEGES
来确保您从现在开始创建的对象将无法访问。 归档时间: |
|
查看次数: |
10873 次 |
最近记录: |