sql - 将用户权限限制为仅对一个特定数据库

标签 sql postgresql privileges createuser

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/

相关文章:

sql - 就速度而言,SQL 数据库中的主键查询是否类似于 NoSQL 数据库中的键查询?

file - Win32 - 获取将文件保存到C盘的权限

sql - 如何将默认系统日期从 ymd 更改为 dmy

java - 使用 SQL Server 方言将 Hibernate 配置为转义 LIKE 子句中的下划线

mysql - SQL查询返回所有没有特定值的id

具有从 '%' 登录权限的 Mysql 用户无法从 'localhost' 登录

php - JS(Angular) 前端用户权限与 PHP + MySQL 后端

sql - 如何将日期/时间安排为上午输入/输出和下午输入/输出

存储在表中的类型的 Postgresql 返回变量

sql - 使用 postgresql 连接一对多表时如何使用 LIMIT 和 OFFSET?