首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Postgresql访问控制

Postgresql访问控制
EN

Stack Overflow用户
提问于 2017-02-28 01:36:34
回答 1查看 574关注 0票数 0

我正在尝试创建一个具有新所有者的Postgresql数据库,为此我执行了以下操作:

代码语言:javascript
复制
postgres=# create user saurabhd;

postgres=# CREATE DATABASE test_db OWNER saurabhd;

postgres=# ALTER USER saurabhd PASSWORD 'spassword'

显然,新用户和数据库是从postgres用户(默认用户)创建的。\l命令显示以下内容:

代码语言:javascript
复制
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 
 template0 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 test_db   | saurabhd | UTF8     | en_GB.UTF-8 | en_GB.UTF-8 | 

可以看到,数据库test_db的所有者名称是saurabhd。不过,我仍然可以用'postgres‘用户访问DB test_db并修改数据库。

有没有办法,我可以限制postgres用户(以及除saurabhd之外的所有其他用户)访问DB test_db?

EN

回答 1

Stack Overflow用户

发布于 2017-02-28 01:53:43

更改角色

PostgreSQL中的角色管理允许不同的配置,其中包括:

  • 超级用户/非超级用户。超级用户,创建数据库的权限和users.
  • CREATEDB / NOCREATEDB。创建databases.
  • CREATEROLE / NOCREATEROLE。创建roles.
  • CREATEUSER / NOCREATEUSER。创建用户。
  • 登录/ NOLOGIN。这个属性决定了角色和用户之间的区别。由于用户具有通过client.
  • PASSWORD.访问数据库的权限允许您将password.
  • VALID更改为。用户过期。

要更改用户或角色的配置,我们必须执行以下命令。

代码语言:javascript
复制
ALTE ROLE <nombre del rol> WITH <opciones>

创建具有特定用户作为所有者的数据库我们使用具有CREATEDB权限的用户创建的所有数据库都会自动将该用户分配为所有者。如果我们要创建的是一个受限用户,使用特定数据库创建它的方法将是:

代码语言:javascript
复制
CREATE DATABASE user OWNER saurabhd ;

为用户分配超级用户权限超级用户许可证是最高的。使用此用户,您可以管理数据库引擎的所有对象。

要将此权限分配给某个角色,我们可以使用以下命令:

代码语言:javascript
复制
ALTER ROLE saurabhd WITH SUPERUSER;

将用户的所有权限分配给现有数据库当我们刚刚创建了一个用户,并希望将权限授予现有数据库时,可以使用以下命令:

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON DATABASE nameBase TO saurabhd;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42492233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档