我正在尝试创建一个具有新所有者的Postgresql数据库,为此我执行了以下操作:
postgres=# create user saurabhd;
postgres=# CREATE DATABASE test_db OWNER saurabhd;
postgres=# ALTER USER saurabhd PASSWORD 'spassword'显然,新用户和数据库是从postgres用户(默认用户)创建的。\l命令显示以下内容:
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?
发布于 2017-02-28 01:53:43
更改角色
PostgreSQL中的角色管理允许不同的配置,其中包括:
要更改用户或角色的配置,我们必须执行以下命令。
ALTE ROLE <nombre del rol> WITH <opciones>创建具有特定用户作为所有者的数据库我们使用具有CREATEDB权限的用户创建的所有数据库都会自动将该用户分配为所有者。如果我们要创建的是一个受限用户,使用特定数据库创建它的方法将是:
CREATE DATABASE user OWNER saurabhd ;为用户分配超级用户权限超级用户许可证是最高的。使用此用户,您可以管理数据库引擎的所有对象。
要将此权限分配给某个角色,我们可以使用以下命令:
ALTER ROLE saurabhd WITH SUPERUSER;将用户的所有权限分配给现有数据库当我们刚刚创建了一个用户,并希望将权限授予现有数据库时,可以使用以下命令:
GRANT ALL PRIVILEGES ON DATABASE nameBase TO saurabhd;https://stackoverflow.com/questions/42492233
复制相似问题