0


PostgreSQL用户和角色的创建和管理

1. 创建和管理PostgreSQL用户和角色

在PostgreSQL中,用户和角色是用于对数据库进行权限管理的重要概念。用户是数据库系统中的实体,可以登录数据库并执行操作,而角色是一组权限的集合,可以被授予给多个用户。本章将详细介绍如何创建和管理PostgreSQL用户和角色。

1.1 创建用户

在PostgreSQL中,可以使用CREATE USER语句创建新用户。CREATE USER语句的语法如下:

CREATEUSER user_name [WITH [SUPERUSER | NOSUPERUSER] [CREATEDB | NOCREATEDB] [CREATEROLE | NOCREATEROLE] [INHERIT | NOINHERIT] [LOGIN | NOLOGIN] [CONNECTION LIMIT connlimit] [PASSWORD 'password'] [VALID UNTIL 'expiration']];

参数说明:

  • user_name:要创建的用户的名称。
  • SUPERUSER/NOSUPERUSER:指定用户是否具有超级用户权限。
  • CREATEDB/NO CREATEDB:指定用户是否有创建数据库的权限。
  • CREATEROLE/NO CREATEROLE:指定用户是否有创建角色的权限。
  • INHERIT/NOINHERIT:指定用户是否能够继承其所属角色的权限。
  • LOGIN/NOLOGIN:指定用户是否允许登录到数据库。
  • CONNECTION LIMIT connlimit:指定用户的并发连接数限制。
  • PASSWORD 'password':指定用户的密码。
  • VALID UNTIL 'expiration':指定用户的密码有效期。

下面是一个示例,演示如何创建一个名为"john"的用户:

CREATEUSER john WITH PASSWORD 'password';

1.2 创建角色

在PostgreSQL中,可以使用CREATE ROLE语句创建新角色。角色可以用于对数据库进行更细粒度的权限管理。CREATE ROLE语句的语法如下:

CREATE ROLE role_name [WITH [SUPERUSER | NOSUPERUSER] [CREATEDB | NOCREATEDB] [CREATEROLE | NOCREATEROLE] [INHERIT | NOINHERIT] [LOGIN | NOLOGIN] [CONNECTION LIMIT connlimit] [PASSWORD 'password'] [VALID UNTIL 'expiration']];

参数说明与创建用户相同。

下面是一个示例,演示如何创建一个名为"admin"的角色:

CREATE ROLE admin WITH LOGIN PASSWORD 'password' CREATEDB;

1.3 管理用户和角色

在PostgreSQL中,可以使用ALTER USER和ALTER ROLE语句来修改用户和角色的属性。例如,可以使用ALTER USER语句修改用户的密码:

ALTERUSER john WITH PASSWORD 'new_password';

可以使用ALTER ROLE语句修改角色的属性,例如:

ALTER ROLE admin NOCREATEDB;

可以使用DROP USER和DROP ROLE语句删除用户和角色。例如,可以使用DROP USER语句删除用户:

DROP USER john;

可以使用DROP ROLE语句删除角色:

DROP ROLE admin;

1.4 授权和撤销权限

在PostgreSQL中,可以使用GRANT和REVOKE语句授予用户和角色权限,并撤销已授予的权限。

GRANT语句的语法如下:

GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }

[, ...] | ALL [ PRIVILEGES ] }

ON [ TABLE ] table_name [, ...]

TO { [ GROUP ] role_name | PUBLIC } [, ...] [ WITHGRANT OPTION ]

REVOKE语句的语法如下:

REVOKE { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }

[, ...] | ALL [ PRIVILEGES ] }

ON [ TABLE ] table_name [, ...]

FROM { [ GROUP ] role_name | PUBLIC } [, ...]

[ CASCADE | RESTRICT ]

例如,可以使用GRANT语句将SELECT权限授予用户:

GRANTSELECTON

 table_name 

TO

 john;

可以使用REVOKE语句撤销权限:

REVOKESELECTON

 table_name 

FROM

 john;

****1.5 查看用户和角色

可以使用以下查询语句来查看数据库中的用户和角色:

*-- *查看所有用户

SELECT * FROM pg_user;

*-- *查看所有角色

SELECT * FROM pg_roles;

以上是创建和管理PostgreSQL用户和角色的详细介绍。通过使用CREATE USER和CREATE ROLE语句创建用户和角色,使用ALTER USER和ALTER ROLE语句修改用户和角色的属性,使用GRANT和REVOKE语句授予和撤销权限,可以灵活地管理数据库的访问和权限。


本文转载自: https://blog.csdn.net/weixin_43871785/article/details/133458059
版权归原作者 研发咨询顾问Link348 所有, 如有侵权,请联系我们删除。

“PostgreSQL用户和角色的创建和管理”的评论:

还没有评论