合 PG和GreenPlum中的create user和create role及有效期的配置
Tags: PGGreenPlumPostgreSQL密码有效期
CREATE USER
CREATE USER — 定义一个新的数据库角色
大纲
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | CREATE USER name [ [ WITH ] option [ ... ] ] 这里 option 可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid |
描述
CREATE USER
现在是 CREATE ROLE
的一个别名。唯一的区别是 CREATE USER
中LOGIN
被作为默认值,而NOLOGIN
是 CREATE ROLE
的默认值。
兼容性
CREATE USER
语句是一种 PostgreSQL扩展。SQL 标准 把用户的定义留给实现来解释。
CREATE ROLE
CREATE ROLE — 定义一个新的数据库角色
大纲
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | CREATE ROLE name [ [ WITH ] option [ ... ] ] where option可以是: SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB | CREATEROLE | NOCREATEROLE | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION | NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | [ ENCRYPTED ] PASSWORD 'password' | PASSWORD NULL | VALID UNTIL 'timestamp' | IN ROLE role_name [, ...] | IN GROUP role_name [, ...] | ROLE role_name [, ...] | ADMIN role_name [, ...] | USER role_name [, ...] | SYSID uid |
描述
CREATE ROLE
向PostgreSQL数据库集簇增加一个新的角色。一个角色是一个实体,它可以拥有数据库对象并且拥有数据库特权。根据一个角色如何被使用,它可以被考虑成一个“用户”、一个“组”或者两者。有关管理用户和认证的信息可以参考第 22 章和第 21 章。要使用这个命令,你必须具有CREATEROLE
特权或者成为一个数据库超级用户。
注意角色是定义在数据库集簇层面上的,并且因此在集簇中的所有数据库中都可用。
参数
name
新角色的名称。
SUPERUSER
NOSUPERUSER
这些子句决定新角色是否是一个“超级用户”,它可以越过数据库内的所有访问限制。超级用户状态很危险并且只应该在确实需要时才用。要创建一个新超级用户,你必须自己是一个超级用户。如果没有指定,默认值是
NOSUPERUSER
。CREATEDB
NOCREATEDB
这些子句定义一个角色创建数据库的能力。如果指定了
CREATEDB
,被定义的角色将被允许创建新的数据库。指定NOCREATEDB
将否定一个角色创建数据库的能力。如果没有指定,默认值是NOCREATEDB
。CREATEROLE
NOCREATEROLE
这些子句决定一个角色是否被允许创建新的角色(也就是执行
CREATE ROLE
)。一个带有CREATEROLE
特权的角色也能修改和删除其他角色。如果没有指定,默认值是NOCREATEROLE
。INHERIT
NOINHERIT
如果新的角色是其他角色的成员,这些子句决定新角色是否从那些角色中“继承”特权,把新角色作为成员的角色称为新角色的父角色。一个带有
INHERIT
属性的角色能够自动使用已经被授予给其直接或间接父角色的任何数据库特权。如果没有INHERIT
,在另一个角色中的成员关系只会把SET ROLE
的能力授予给那个其他角色,只有在这样做后那个其他角色的特权才可用。如果没有指定,默认值是INHERIT
。LOGIN
NOLOGIN
本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!